一 什么是网络,网络能干什么

 网络出现的主要目的就是实现主机和主机之间的通信,而互联网协议(Internet Protocol Suite)就是连接两台计算机之间的internet一系列统一的标准。互联网本就是一系列的协议。

互联网协议是为了定义计算机如何接入internet,以及接入internet的计算机通信的标准而存在的。

  如何实现主机和主机之间的通信:

   主要使用网线,光纤,wifi传输物质,需要拥有传输的介质。

   系统可以识别二进制,传输介质能识别的是电信号

   利用硬件网卡,进行数字和电信号之间的转换。接收时识别电信号转换为数字信号,将低电压转成0,高电压转成1。

    数字----->电信号  网卡的调制过程

    电信号----->数字  网卡的解调过程

   利用数据包传输的时间,进行数据包传输进行协商统计

    网课参数:xx bps  == 每秒钟接受多少个bit(0或1) 1Mbps 1Gbps

 多台主机之间的通信:

  每一台主机上面都会有一个身份标识:mac地址(物理地址 采用的是16进制)

  一个交换网络中,新加入的主机,想要和其他的网络进行通信,就得靠吼。主要采用广播的方式进行通信

  在多台主机在一个交换网中,利用广播通信容易造成广播风暴,所有主机都在发广播报文

  将一个大的交换网络进行切割,可以有效的降低广播风暴问题

  交换机的每一个接口同处于相同的广播域内

 交换机的作用:主要实现多台主机的通讯需求

 身份标识:mac地址,属于物理地址,不能改变,全球唯一

 路由器:

  主要实现不同交换网络之间主机的通信(实现不同网段之间主机之间的通信)

  路由器默认不关心主机地址信息,只关心网络地址

  路由器中有路由表,记录端口和网段地址的对应信息

  身份识别:IP地址(逻辑地址,可以改变,是否全球唯一???)

  Ip地址主要由两个部分组成:网络地址部分(局域网标识)+主机地址部分

 施乐公司最先提供了网络,主要用于家用

二 七层协议

 应用层:

  为应用软件提供接口,使应用程序能够使用网络服务

  协议:http,dns  telnet,ftp等等

 表示层:

  对象护具进行解码和编码

  数据的加密和解密

  数据的压缩和解压

 会话层:

  建立,维护管理应用程序之间的会话

  功能就是对话控制,同步

 传输层:

  负责建立端到端的链接,保证报文在端到端之间的传输

  一一对应设备:防火墙

  功能:服务点编址,分段与重组,连接控制,流量控制,插座控制

  协议:TCP,UDP

 网络层:

  负责将分组数据从源端传输到目的端

  为网络设备提供逻辑地址

  进行路由的选择,分组转发

  ip地址=网络位+主机位,ip地址是三层地址

 数据链路层:

  在局域网内实现主机与主机之间的通信

 物理层:

  作用:负责把逐个的比特从一个节点移动到另一个节点

  功能:

   定义街接口和媒体的物理特性

   定义比特的表示,数据传输速率,信号的传输模式

   定义网络物理拓扑

 TCP/IP模型  4部分

  接入层:物理层和数据链路层

  因特网层:网络层

  主机到主机层:传输层

  应用层

 smtp:跟邮件相关

 NFS:网络文件传输,ftp是比较老的文件传输协议

 DHCP服务:

  方式一:

   广播的方式获取ip地址

   谁都给不了的时候由系统自动分配地址

  方式二:

   如果有DHCP服务器

   DHCP服务器会从本地地址池中选出一个没有分配的地址

   主机获取到地址后需要进行确认

   服务器会给已经分配出去的地址设置有效的时间

  过期就要重新申请地址

 可用端口号:1--65536,0端口是TCP和UDP都不能用,1--10024是著名的端口号的范围

三 数据包的封装过程

 原始数据 (单元)-- TCP头部 -- IP头(段) -- mac头 -- 二进制信息 (包)-- 高低电平(帧)

  数据链路层中以太网的帧结构

  1)mac地址就是二层地址,全球网络设备唯一的地址

2)根据作用的域不同:IP作用在不同的网络之间,MAC地址作用在相同的网络内部

3)MAC地址48位的地址,采用16进制进行表示,MAC地址是硬件地址

4)IP地址会被是逻辑地址

 首先将自己想要封装的数据嵌入到TCP数据包中,在位TCP数据包设置一个端口

 再将数据嵌入到IP数据包中,ip地址会设置发送方呵呵接收方的IP地址

 最后将 ip的数据包嵌入到以太网数据包,然后以太网在设置发送方和接收方的mac地址。

 经过多个网关的转发,发送到了接收方。然后接收方在按照顺序依次反向解包。

 不同的局域网之间的通信必须经过网关,不同的局域网之间的通信不能够依赖mac地址,要依赖ip地址

 完整 的网络通信过程:有去必有回。

 端口号范围:可用的随机的端口号的范围。

四 基础命令

netstat -lntup:查看当前网络的端口信息

 netstat -an  :查看链接状态

 netstat-lntup|grep sshd:查看条目信息

 dig  网址  :查看某个网址的解析记录    dig  网址 +trace

五 三次握手和四次挥手

 TCP报文结构:

  16位源端口,16位目的端口

  确认控制字段:ack

  请求建立 链接控制字段:syn

  请求断开连接 控制字段:fin

 TCP的三次握手:

  A给B发送syn字段设置为1的建立请求链接

  B个A发送ack字段设置为1的确认建立连接请求

  同时B给A发送syn字段设置为1的连理请求链接

  A给B发送ack字段设置为1的确认建立连接请求

 tcp:面向连接的网络协议,可靠,但是速度很慢,数据传输过程中始终会带着ack确认信息,所以说TCP是可靠协议

 三次握手中,还会发送序列号seq,接收到过后才会发送确认号ack

  序列号的作用:把所有的数据按照顺序拆分,再一个个按照顺序组装起来

  确认号的作用:接收到后会发送一个确认号,告诉发送端下次发送哪个包

 四次挥手过程:必须在已经建立连接的基础上

  A会发送FIN设置为1断开请求的链接

  B会接收到后发送ack设置为1的确认断开连接连接请求

  B然后又会发送FIN设置为1的端口请求链接

  A接收到后会发送设置为1的确认断开连接的请求

 为什么是三次握手 四次挥手:实际上断开链接请求的是会话层控制的,TCP层没有权力控制,所以端开链接必须是四次挥手

 socket条目是由五元组的概念组成的:

  协议,目标ip,目标端口,原IP,源端口

 tcp的状态集转换详细信息:http://blog.51cto.com/13055758/2062194

  udp:无连接的网络协议,不可靠,但是速度快,udp报文没有序列号和确认号,只管发送数据,不管对方有没有接收到。

 DNS协议:主要叫做域名解析协议

  将域名转换成对应的ip地址

  DNS主要作用:实现域名和ip之间的转换uocjgenc

 全球有13个根域名服务器

六 ip地址分类和子网划分

 什么是ip地址:

  ipv4的地址一共有2的32次方个,有32位二进制组成,采用点分十进制分为4段,每段为8位二进制

  ipv6的地址一共有2的128次方个

 二进制和十进制之间的转换:

  128 64 32 16 8 4 2 1 代表8位每一位是1时对应十进制数

  二进制--十进制  求和

  十进制--二进制  求差

 ip的分类:

 按ip的数值 范围划分5个类:

  常用地址为ABC三类地址:

  A类地址==网络位+主机位+主机位+主机位:前8位不能动(网络位),后24位随便动,是主机位,运营商能动的就是前8位的后7位,0开头

  B类地址==网络位+网络位+主机位+主机位:前16位是网络位,10开头

  C类地址==网络位+网络位+网络位+主机位:前24位是网络位,101开头

  D类地址为组播地址:每一个地址都作为一个网段:组播地址

  E类地址为科学研究使用:研究使用,预留的

 按IP地址的用途分类:公网地址,私网地址

  私网地址:每个局域网都可以使用的地址信息,并局域网内唯一,跨越不同局域网可以重复

  使用,因此私网地址有效缓解了地址枯竭问题

  私网地址的范围:

   A类:10.0.0.0  —— 10.0.0.255

   B类:172.16.0.0 —— 172.31.255.255

   C类:192.168.0.0 —— 192.168.2

   

 公网地址:是互联网上可以识别的地址信息,并且是全球唯一

 网络通讯类型

  

 主机位全为0的是网络地址,不能分配分配给主机

 正常的一个C类地址可以部署2的8次方-2=253-1=252太服务器,减2是减去网络地址和广播地址,再减去一个网关

 127.0.0.1:特殊的ip地址,本地地址,也叫回环地址

 子网划分:

  原因:

   避免网络资源的浪费,因为不可能部署到所有的主机数

   广播风暴问题

   避免网关设备的负载过高

  ip掩码:32位的二进制数

   A类地址掩码信息:255.0.0.0
      B类地址掩码信息:255.255.0.0
      C类地址掩码信息:255.255.255.0
      A :/8  B: /16 C:/24

   掩码作用:

  1)利用掩码快速得知是A类地址,还是B类,C类?

  2)利用掩码定位网络位信息

 子网划分计算过程:

七 主机克隆

 准备工作:一清空两删除
    cat /etc/sysconfig/network-scripts/ifcfg-eth0
    删除 sed -ri '/HWADDR|UUID/d' /etc/sysconfig/network-scripts/ifcfg-eth0
    清空 >/etc/udev/rules.d/70-presistent-net.rules
    echo '>/etc/udev/rules.d/70-presistent-net.rules' >>/etc/re.local(系统启动时会执行这个文件中命令)
关闭虚拟机
右键--管理--克隆
当前状态--创建链接克隆--可以改一下虚拟机名称--完成
修改ip地址信息:
    sed -i "s#200#10#g" /etc/sysconfig/network-scripts/ifcfg-eth0
重启网卡
    /etc/init.d/network restart

八 osi的五层模型。

第一层是物理层:就是链接两台计算机之间的组网。主要的功能是基于电器特性发送高低电压(电信号),高电压对应数字1,低电压对应数字0。

第二层是数据链路层:是为了规定电信号多少位一组,每组什么意思。主要的功能是定义了电信号的分组方式,【1  以太网协议(ethernet)是早期各个公司的分组方式,后期形成了统一的标准。一组电信号构成了一个数据包,叫做“帧”。每个帧又被分为报头(head)和数据(data)。每个head又被分别为18个字节,每6个字节为一组:(发送者?源地址6个字节;接收者/目标地址6个字节;数据类型6个字节)。而data最短46个字节,最长1500个字节。属于数据包的具体内容。head+data=最短64个字节;最长1518个字节(超过最长字节就会分片发送。2  mac地址发送端和接收端的网卡地址。每块网卡出场时都会有一个世界唯一的mac地址,长度为48位二进制。3  广播是两台计算机之间的通信方式。而计算机的通讯基本是靠吼。一台计算机用广播将数据包发给另外几台计算机,而每台计算机都会查看目标mac。发现不是自己的就会丢弃,是自己的就会响应的。】

第三层是网络层;是隔离每个小小的局域网。功能是用一套新的地址来区分不同的广播域或子网。这样就不会导致一台计算机发送的数据包让全世界的计算机都会收到。

第四层是传输层:是两台计算机之间端口和端口的通信(端口范围0-65535,0-1023为系统占用端口)。

第五层是应用层:不同的应用程序有着不同的协议,而这些而这些应用程序协议就构成了应用层。

九 用户的上网流程

1  本机获取本机的IP地址,子网掩码,网关的IP地址和DNS的IP地址。

2  打开浏览器,在网址栏输入自己想要访问的网址。

3  用DNS找到自己想要访问网址的IP地址。

4  自己将要发送的HTTP内容会被嵌入TCP数据包当中。

5  为TCP数据包设置一个端口,而接收方的HTTP端口默认为80,(而发送方的数据端口是1024~65535之间随机生成的)。

6  TCP数据再次被嵌入IP数据包,然后IP地址会设置发送方和接收方的IP地址。

7  最后TP数据包嵌入以太网数据包,然后以太网设置发送方和接收方的MAC地址。以太网的数据包最长为1500字节,加入IP包超过了1500,会自动生成多个包而且是每个包都是由IP的20字节开头的1500字节以太网包(最后余下的数据字节再加上IP的20字节会生成一个以太网包)。

8  经过多个网关的转发,接收方收到了以太网的数据包。经过IP字节标头的序号,接收方将几个包拼起来,取出完整的TCP数据包,读出数据的内容,根据内容做出相应的响应,然后再用TCP协议发送回来。本机接收到了相应的响应,就可以将自己想要访问的网址显示出来,这样就完成了一次网络通信。

linux之网络的更多相关文章

  1. Linux内核--网络栈实现分析(十一)--驱动程序层(下)

    本文分析基于Linux Kernel 1.2.13 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7555870 更多请查看专栏,地 ...

  2. Linux内核--网络栈实现分析(七)--数据包的传递过程(下)

    本文分析基于Linux Kernel 1.2.13 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7545855 更多请查看专栏,地 ...

  3. Linux内核--网络栈实现分析(三)--驱动程序层+链路层(上)

    本文分析基于Linux Kernel 1.2.13 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7497260 更多请看专栏,地址 ...

  4. Linux下网络流量实时监控工具

    Linux下网络流量实时监控工具大全 在工作中发现,经常因为业务的原因,需要即时了解某台服务器网卡的流量,虽然公司也部署了cacti软件,但cacti是五分钟统计的,没有即时性,并且有时候打开监控页面 ...

  5. Linux内核--网络栈实现分析(一)--网络栈初始化

    本文分析基于内核Linux Kernel 1.2.13 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7488828 更多请看专栏, ...

  6. 安装Kali Linux操作系统Kali Linux无线网络渗透

    安装Kali Linux操作系统Kali Linux无线网络渗透 Kali Linux是一个基于Debian的Linux发行版,它的前身是BackTrack Linux发行版.在该操作系统中,自带了大 ...

  7. Linux 系统 网络配置

    Linux 系统 网络配置 配置Linux系统网络的方法有几种,这里介绍本人常用的两种. 第一种:使用命令ifconfig配置,具体用法:Ipconfig  ethx   x.x.x.x    net ...

  8. Linux内核--网络栈实现分析(二)--数据包的传递过程--转

    转载地址http://blog.csdn.net/yming0221/article/details/7492423 作者:闫明 本文分析基于Linux Kernel 1.2.13 注:标题中的”(上 ...

  9. Linux内核--网络栈实现分析(一)--网络栈初始化--转

    转载地址 http://blog.csdn.net/yming0221/article/details/7488828 作者:闫明 本文分析基于内核Linux Kernel 1.2.13 以后的系列博 ...

  10. linux虚拟机网络连接模式 bridged, host-only, NAT

    最近安装了fedora9.0,却一直不能连接到外网,我用的是3G无线网卡上网的,起初以为是linux不支持3G无线方式的,可后来装了虚拟机ubuntu却可以上网,在后来用有ADSL网络连接的电脑安装f ...

随机推荐

  1. poj2970 The lazy programmer 【优先队列】

    A new web-design studio, called SMART (Simply Masters of ART), employs two people. The first one is ...

  2. LibreOJ 6280 . 数列分块入门 4

    题目链接:https://loj.ac/problem/6280 加一个数组保存块的和. 代码: #include<iostream> #include<cstring> #i ...

  3. TOJ3112: 单词串串烧(回溯)

    传送门(<--可以点击的) 时间限制(普通/Java):1000MS/3000MS     内存限制:65536KByte 描述 “单词串串烧”是一款拼词智力游戏,给定4*4的方格,随机取16个 ...

  4. 删除sslvpn用户

    config user localedit xinghen unset two-factornextend config user groupedit vpngroup unselect member ...

  5. Django的rest_framework的序列化组件之serializers.ModelSerializer介绍

    这里的介绍的serializers.ModelSerializer就和我们之前学习的modelform一样 serializers.ModelSerializer如下几个功能 1.序列化queryse ...

  6. 管道分隔符Split

    string[] areaID = area1Id.Split(new char[] { ',' });

  7. linux下Redis主从复制

    Redis的主从配置比起MySQL主从配置简单多了,而且Redis主从复制中一个主服务可以有多个从服务,一个从服务又可以有多个从服务. MySQL主从配置http://www.cnblogs.com/ ...

  8. Bootstrap(2) 排版样式

    1.页面主体,Bootstrap 将全局 font-size 设置为 14px,line-height 行高设置为 1.428(即20px):<p>段落元素被设置等于 1/2 行高(即 1 ...

  9. vue的通讯与传递props emit (简单的弹框组件)

    props父把信息传递给子组件 1父组件 <template> <div class="hello"> <div id="app-3&quo ...

  10. c# 运行大运算程序主窗体卡掉的解决

    写了一个运算过滤大文本的程序, 其中方法里边使用了多线程,并行线程等方法.  但主窗体控件直接使用此方法时,页面卡顿.所以主线程被堵塞. 代码如下, splitfile 这个方法运行时页面卡顿,阻塞了 ...