没有合适的资源?快使用搜索试试~ 我知道了~
1. IP地址扩大,路由控制表聚合 2. 性能提升 3. 支持即插即用,即使没有DHCP 4. 采用认证与加密功能,应对伪造
资源详情
资源评论
资源推荐
TCP/IP:TCP/IP属于协议簇,包含IP或ICMP,
TCP或UDP,TELNET或FTP、以及HTTP等
OSI网络模型
应用层:针对特定应用的协
议
表示层:设备固有数据格式
和网络标准数据格式的转换
会话层:通信管理。负责建
立和断开通信连接,管理传
输层以下的分层。
传输层:管理两个节点之间
的数据传输。负责可靠传
输。
网络层:地址管理和路由选
择。
数据链路层:互连设备之间
的传送和识别数据帧。
物理层:比特流和电信号的
转换,连接器和网线的规
格。
设备
网卡:使计算机联网。
网络接口卡(NIC),也叫网络
适配器、网卡、LAN卡,
中继器:从物理层延长设
备。
位于物理层,电缆传过来的
电信号和光信号经过中继器
的波形调整和放大后传给另
一个电缆。只负责将电信号
转换为光信号,集线器可以
看作是多个中继器。不能连
接传输速度不同的媒介。
网桥/2层交换机:从数据链
路层上延长网络。
位于数据链路层,连接两个网
络,能识别数据链路层中的数
据帧,并将数据帧临时存在内
存中,再重新生成信号作为一
个全新帧转发给另一个网段。
由于能够存储数据帧,因此可
以连接传输速率不同的数据链
路,不限制连接的网段个数。
网桥通过CRC(循环冗余校验
码)方式校验数据帧中叫FCS的
数据位,若数据帧破坏,则将
损坏数据丢弃,网桥还能通过
地址自学机制和过滤功能控制
网络流量。
MAC地址、硬件地址、物理地
址、适配器地址都是针对NIC分
配的具体地址。
网桥也称为2层交换机。有些网
桥能判断是否将数据报文转发
给相邻的网段,这种网桥叫自
学式网桥,它会记住转发的所
有数据帧的MAC地址,并保存
到自己的内存表。
交换集线器也属于网桥的一
种,它每个端口都能提供网桥
的功能。
路由器/3层交换机:从网络
层转发分组数据。
位于网络层,连接两个网
络,并对分组报文进行转
发。网桥根据MAC地址进行
处理,路由器则根据IP地址
进行处理。路由器可以分担
网络负荷,有的还有网络安
全功能。
4-7层交换机:处理传输层
以上各层网络传输的设备。
负责从传输层到应用层的数
据,如负载均衡器,可以将
访问分发到不同服务器,还
有宽带控制功能,优先传输
优先级较高的通信请求。还
有如广域网加速器,特殊应
用访问加速以及防火墙等。
网关:转换协议。
网关负责传输层到应用层的
数据转换和转发,与4-7层
交换机一样转发传输层以上
的数据,但是同时还对数据
进行转换。如代理服务器,
防火墙等。
分层中数据包的结
构
发送数据包(自顶
而下)
应用层处理:由协议决定编
码规则,相当于OSI的表示
层,定义“目的地址”,不一
定发送端确认发送后就会立
即发送,有些通信的建立还
需要接收端的确认,如有些
邮件可能要用户点击收信。
宽泛来说属于OSI的会话
层。应用在触发“连接”的功
能后,建立起TCP连接,这
时将应用层封装好的“数据”
送到传输层的TCP。
传输层:TCP根据应用的指
示(会话层)建立连接,发
送数据以及断开连接。TCP
提供将应用层封装的数据发
送到对端的可靠传输。
在应用层数据前端附加一个
TCP首部,TCP首部包括源
端口号和目标端口号(识别
发送主机和就收主机的应
用),序号(用以发送的包
中哪部分是数据)以及校验
和(判断数据是否损坏),
附加了TCP首部的报文段发
送给IP。
网络层:IP将包含TCP首部
和TCP数据的当作自己的数
据,在TCP首部的前端加上
IP首部。
IP首部包含接收端IP地址,
发送端IP地址,还有协议类
型用来判断后面的时TCP还
是UDP信息。
IP包生成后,参考路由控制
表决定接受此IP包的路由或
者主机,如果不知道接收端
的MAC地址,则利用ARP协
议查询,然后将MAC地址和
IP地址交给以太网的驱动程
序。
数据链路层:将IP包看作数
据,给数据前端附上以太网
首部,包括接收端MAC地
址,发送端MAC地址以及标
志以太网类型的以太网数据
的协议,FCS位由硬件计算
添加到包最后。FCS可以用
CRC检测数据包是否因为噪
声损坏。
接受数据包(自下
而上)
数据链路层:从以太网包首
部找到MAC地址,判断是否
时发给自己的包,如果不是
则丢弃数据。如果是,则查
找首部中的以太网类型域,
确定传送过来的数据类型是
IP还是ARP等,传给对应的
协议处理,如果无法识别协
议类型则丢弃数据,
网络层:IP模块(例)收到
IP包首部和后面的数据部
分,判断IP地址和自己的地
址是否匹配,匹配则传输给
上一层,根据协议类型判断
传输给什么协议,有路由器
的情况下,往往IP地址不是
自己的地址,这个时候就要
根据路由控制表判断应该送
达的主机或者路由器。
传输层:TCP模块中(例)
首先计算校验和,判断数据
是否损坏,然后检查序号,
判断是否按照序号接收数
据,最后检查端口号,确定
程序。数据接收完成后,接
收端会发送一个确认回执给
发送端,如果确认回执没到
达发送端,发送端会认为接
收端没有接收到该数据而重
复发送。
应用层:接收到应用层协议
对应编码方式的数据,根据
协议解码,转换成可以被后
台应用或者其他应用处理的
格式,显示给用户。
数据链路层是对同一个数据
链路中的节点进行包传递,
而网络层可以跨越不同的数
据链路,实现不同链路上的
包传递。
MTU(最大传输单位):不同的数据链路具有不同的
MTU,因此网络层协议会对传输层数据进行分片,以满
足不同数据链路的要求。
TCP/IP各层对邮
件的收发
IPv6:为了根本上解决IPv4地址耗尽问题。IPv4地址
长度为4个八位字节,即32比特。而IPv6为IPv4的4
倍,即128比特。一般写成8个16位字节。IPv6标准化实
现了很多IPv4需要管理员实现的地方。
特点:
1. IP地址扩大,路由控制表聚合。
2. 性能提升。包首部长度采用固定
值(40字节),不用使用首部检验
码。简化首部结构,减轻路由器负
荷,路由器不再分片处理。(通过
路径MTU发现只由发送端主机进行
分片处理)。
3. 支持即插即用,即使没有DHCP
服务器也可以实现IP自动分配。
4. 采用认证与加密功能,应对伪造
IP地址的网络安全功能以及防止线
路窃听的功能。
5. 多播、Mobile IP被定义为IPv6
扩展功能。
IPv6中IP地址的标记方法。
IPv6地址结构:互联网通信中使用全局单播地址,也是互联网中唯一地址,不需要正是分配
IP地址。
私有网络中,可以使用唯一本地地址,像IPv4私有地址一样。
同一个以太网网段中可以使用链路本地单播地址。
构建多种类型IP地址的网络中,同一个链路中可以使用全局单播地址以及唯一本地地址。
IPv6环境下可以将这些IP全部配置在一个NIC上。
全局单播地址:世界唯一一个的地址,是通信中最为常用的一个IPv6
地址。前64比特为网络标识,后64比特为主机标识。
链路本地单播地址:同一个数据链路中唯一的地址,不经过路由器。接
口ID通常是MAC地址。
唯一本地地址:不进行互联网通信时的地址,企业内部网络与互
联网通过NAT或网关(代理)通信。唯一本地地址会尽可能随机
生成一个唯一全局ID。
IPv6分段处理:IPv6分片处
理旨在发送端主机进行,路
由器不参与分片,减少了路
由器负荷,提高了网速。对
于有资源限制的设备,可以
直接以IPv6的最小MTU发
送。
IPv4首部
版本:4比特,表示IP版本
号,IPv4就是4。
首部长度:4比特,单位是4
字节,表示首部大小,如首
部长度设置为“5”,IP首部长
度为20字节。
区分服务(TOS):值通常由应用指定,由于
TOS实现复杂困难,因此不怎么投入使用。
总长度:IP首部和数据部分
合起来的总字节数,字段长
16比特,因此IP包最大为
标识:16比特,用于分片重
组,同一个分片的标识相
同,不同的分片标识不同。
即使ID相同,目标地址,源
地址或者协议不同的话,也
会认为是不同分片。
标志:3比特,表示分片相关信息。
片偏移:13比特,每一段对
于原始数据的位置,第一个
分片对应的值为0.可最多表
示8192个相对位置。
生存时间(TTL):8比特,
被路由转发一次,TTL减少
1,直到变成0则丢弃该包。
首部校验和:16比特(2字
节)只校验首部,不校验数
据,防止IP数据报被破坏,
校验和的计算方式是以16比
特为单位换份IP首部,用1补
数计算所有16位字的和,最
后将这个和的1补数付给首部
校验和字段。
1补数:0和正数的1补数就是
其本身的二进制数,负数的1
补数是其有符号数除符号位
外的反码。
源地址:发送端IP,32比
特。
目标地址:接收端IP,32比
特。
可选项:长度可变,实验或
诊断用,包含安全级别、源
路径、路径记录、时间戳。
填充:首部长度需要时32比
特的整数倍,因此填充字段
填0补充长度。
数据:上层协议包数据。
IPv6首部:与IPv4相比省去了首部校验和字段,路由器不需
要计算校验和,提高了包的转发效率,分片处理识别码称为
可选项。
版本:4比特,IPv6为“6”.
通信量:8比特,相当于
IPv4的TOS字段。
流标号,20比特,用于服务
质量(QoS)控制,不使用
时全部置0。用于采用QoS
的路由器,根据RSVP协议
对流标号设置,若需要QoS
则路由器将流标号作为查找
关键字,迅速从服务质量控
制信息中查找并做处理。只
有流标号、源地址、目标地
址完全一致才是一个流。
有效载荷长度:有效载荷是
指包的数据部分,IPv4的TL
指包的总长,IPv6的这个PL
不包括首部,指标是数据部
分长度(包含可选项)。
下一个首部:相当于IPv4中
的协议字段,8比特,表示
后一个协议类型(后面是扩
展首部则是第一个扩展首部
的协议类型)。
跳数限制:8比特,与TTL意
思相同。
源地址:128比特,发送端
地址。
目标地址:128比特,接收
端地址。
IPv6扩展首部:位于IPv6首
部和TCP/UDP首部之间,
ARP:用来以目标IP地址为
线索,定位下一个应该接受
数据分包的网络设备的MAC
地址。如果目标主机不在同
一个链路,ARP可以查找下
一跳路由器的MAC地址。只
适用于IPv4,不能用于
IPv6。IPv6用ICMPv6代替
ARP发送邻居探索消息。
同一链路下,已知对方的IP地址,主机A为了获取主机B的
MAC地址,先通过广播发送一个ARP包,包中包含了主机
A想要直到的主机B的IP地址,广播的包可以被同一链路下
的所有设备接收到解析,若ARP包中的IP地址和自己的IP
地址一致,那么就将自己的MAC地址塞入ARP响应中返给
主机A。主机A收到主机B的ARP响应中的MAC地址后,将
这个MAC地址缓存一段时间,放到ARP缓存表中。下次向
这个IP地址发送IP包就不用发送ARP请求了。同时接受
ARP请求的主机B也会把发送端主机A的MAC地址信息缓存
起来,根据MAC地址返回ARP响应。MAC地址的缓存有有
效期,超过就会清除,这样可以避免MAC和IP地址的对应
关系发生变化。
不同链路下,ARP包被广播,路由器C和D都会收到ARP消息,
路由器C判断可以发送IP包,而路由器D会判断没法送到主机B,
因此路由器D不会响应ARP请求,且不会对广播的MAC地址进行
转发,那么主机A和C就会在ARP缓存表中记录互相的IP地址,
由此可以进行跨链路的转发。
如果没有IP地址只有MAC地址,那么就无法知道一个机器的位
置,自学式网桥就需要向全世界发送包,这肯定不行,所以必须
有IP地址确定位置减少不必要的记录。
RAPP:ARP协议反过来,从
MAC地址定位到IP地址,个
人电脑可以设置IP地址也可
以通过DHCP协议自动分配
IP地址,但是对于嵌入式设
备,会有没有任何输入接口
或无法通过DHCP动态回去
IP地址的情况。
RARP服务器:负责注册设备的MAC地址和IP地址。
代理ARP:ARP包因为是广
播的形式,所以一般被路由
器隔离,采用代理ARP的路
由器可以将ARP请求转发到
邻近的网段。
NAT-PT:将IPv6首部转换成,解决了IPv4和IPv6的通信问题。
NAPT,对带端口号的IP地址进行转换。在TCP首次握手的SYN包发出
后,生成表,发出关闭连接的FIN包删除表中记录。
NAT的潜在问题:
无法从NAT的外部向内部服务器建立连接。
转换表的生成与转换操作都会产生一定的开
销。
通信过程中一旦NAT遇到异常重启,所有TCP
连接都会重置。
即使两台NAT做容灾备份,TCP还是会断开。
解决NAT潜在问题:
1. 改用IPv6,所有设备都用全局IP。
2. 在NAT内侧主机上运行NAT友好的应用程
序(发虚拟网络包给NAT外侧,NAT不知道这
个虚拟包是什么)让转换表生成的合理,就能
够实现外侧与内侧主机的通讯,应用与NAT路
由器通信生成NAT表,通过一定方法将NAT路
由器附属全局IP地址传给应用。
一个通信通过“源IP地址”,“
目标IP地址”,“协议号”,“
源端口号”,“目标端口号”5
个信息来识别。
适用方面:
包总量较少的通信(DNS,SNMP等)
视频、音频等多媒体通信
限定于LAN等特定网络
广播通信(广播,多播)
包的序列号用来让客户端避
免接收到重复的包。
重发超时间隔确定:计算往返时间(RTT),在Unix和Windows系统中,超时都以0.5秒
为单位进行控制,因此重发超时都是0.5的整数倍。由于最初的数据包不知道往返时间,一
般设置为6秒左右。重发后若还是收不到应答,则确认应答的时间以2倍,4倍指数函数增
长。重发达到一定次数后,则判断接收端异常,强制关闭连接。并通知应用通信异常而终
止。
通信连接管理(三次握手,四次挥手):UDP是
无连接的,所以不用管理连接。TCP通过TCP首部
发送SYN包作为建立连接的请求等待确认应答。
此外在结束通信时,客户端会发送通知断开连接
的FIN包。TCP连接的建立和断开要来回发送7个
包完成。
为什么要三次握手,四次挥手?
第一次握手:服务端确认客户端的发送能力,服务端确认自己的接受能力。
第二次握手:客户端确认服务端的发送和接受能力,客户端确认自己的接受和发送能力。
第三次握手:服务端确认客户端的接受能力。
三次握手让服务端和客户端确认了自己和对方的接收发送能力。
四次挥手:建立连接的时候, 服务器在LISTEN状态下,收到建立连接请求的SYN报文后,把
ACK和SYN放在一个报文里发送给客户端。
而关闭连接时,服务器收到对方的FIN报文时,仅仅表示对方不再发送数据了但是还能接收数据,
而自己也未必全部数据都发送给对方了,所以己方可以立即关闭,也可以发送一些数据给对方
后,再发送FIN报文给对方来表示同意现在关闭连接,因此,己方ACK和FIN一般都会分开发送,
从而导致多了一次。在客户端发送ACK后还要等待2MSL(Maximum Segment Lifetime)是为
了避免ACK包丢失的情况下,服务端不知道客户端已确认关闭连接而重复发FIN包。
通过ACK(确认应答)来实现可靠
的数据传输。
发送成功,确认应答
发送失败,重传
确认应答发送失败,重传
MSS:TCP在建立连接的同时,可以确定发送数据包的单位,“最大消息长度”(
MSS:Maximum Segment Size),理想情况下最大消息长度正好是IP中不会
被分片处理的最大数据长度。TCP在传输大量数据时,是以MSS的大小将数据进
行分割发送的,进行重发时也是以MSS为单位,MSS在三次握手时,在两端主机
计算出,在发出建立连接请求时,TCP首部会写入MSS选项,告诉对方自己的接
口能够适应的MSS大小,然后在两者之间选择较小的值投入使用(如果某一方
MSS被省略则选择默认IP包不超过576字节的值即576-20(IP首部)-20(TCP
首部)=536字节)。
TCP滑动窗口:由于TCP是将一个报文分为报文段后发送的,那么必然存在多次发送才能
发完一个报文的情况。如果每一次发送TCP包都需要一个确认应答,那么网络的吞吐量就
会大程度上受往返时间的影响,因此要有发送方和接收方都要一个缓存来确保多次发送包
的可靠性同时增加了TCP连接的数据吞吐量以及网络利用率。
发送窗口的大小取决于接收方的大小(流控制)。TCP 头里有一个字段
叫 Window,也就是窗口大小。这个字段是接收端告诉发送端自己还有
多少缓冲区可以接收数据。于是发送端就可以根据这个接收端的处理能
力来发送数据,而不会导致接收端处理不过来。发送方发送的数据大小
不能超过接收方的窗口大小,否则接收方就无法正常接收到数据。由于
网络时延的存在,接收窗口和发送窗口的大小关系是约等于的。
发送端的报文段分为:
已发送并收到ACK的、已发送未收到ACK的、未发送可发送的(即在对方接收窗口大小内
的)、未发送不可发送的(即超出对方接收窗口大小了)
可发送的报文段全部发送了,可用窗口为0
收到ACK=36,表示前面36个序号的包全部确认接受了,因此发送窗口向右滑动5个字节,接收端发送确
认序号必须是按照顺序发的,这样才能保证发送窗口顺序滑动。长时间收不到确认应答则会重发报文段。
不需要等待确认应答,一次发送多条消息,而这个“多条消息”的上限,由滑动窗
口机制决定。
窗口控制和重发控制:接收端就算收到的序号不连续,也不会丢弃,而是会不断给
发送端发送确认收到的序号确认应答,接收端收到三次这样的确认应答后就会重发
没有发送成功的报文段。
即使收不到确认应答,也不影响后续的报文段发送,除非收到三次相同的确
认应答,那么才会重传发送失败的报文段。
拥塞控制:TCP滑动窗口控制是以连接为单位,顾好连接的发送端
和接收端之间的数据收发,保证可靠性,吞吐量和利用率。但是网
络是一个共享的环境,因此会出现某个时刻有大量的通信使网络拥
堵。为了防止在通信刚开始就发送大量数据,使得本来就拥堵的网
络瘫痪。TCP在通信开始会通过慢启动算法计算出数值。对发送数
据量进行控制。
拥塞窗口:在慢启动最开始,也就是
连接建立后刚开始发送消息时,拥塞
窗口的大小设置为一个报文段(
1MSS),之后没收到一次确认应答
ACK,拥塞窗口的值就+1.发送数据包
时,将拥塞窗口和接收端的接收端口
大小比较,取较小的值,发送比其更
小的数据量。
拥塞窗口以指数增长为了避免拥堵激
增,引入了慢启动阈值。
拥塞窗口越大,确认应答的数目就会增加,没收到一个确认应答,窗口涨
幅就减少,当刚开始通信时,并不会设置慢启动阈值,因此以拥塞窗口指
数增长,在超时重发时(一般是拥堵了)设置慢启动阈值为此时拥塞窗口
大小的一半,与高速重发不同(三次确认应答则重发发送失败的报文
段),触发超时重发机制的拥堵要更轻一些。触发高速重发机制后,慢启
动阈值被设定为当时窗口的一半,然后将窗口大小设置为该慢启动阈值+
3个数据段的大小。
提高网络利用率:
1. Nagle算法:延时发送少
部分数据,只有满足①已发
送的数据都已经收到确认应
答,②可以发送最大段长
度(MSS)的数据。但是由
于可能造成延时,因此往往
不使用。
2. 延时确认应答:避免每次
都立刻进行确认应答造成,
发送端接收到一个小的接收
窗口上限,但可能接收端已
经处理好了数据因此实际的
接收窗口会大一些。这就降
低了网络利用率。因此没有
收到两个包(或者有的是没
有收到2*MSS)前不做应
答,其他情况下最大延时0.5
秒(有的操作系统为0.2
秒)。
3. 捎带应答:在根据应用层
将TCP确认应答放在应用层
响应一起,这样可以使收发
数据量减少。但是这导致接
受数据后无法立刻返回应
答,而是要等应用层程序处
理完成。
延时应答
流控制:Window字段由接收端返回,告诉发送端自己还能接受的窗口大
小,当窗口为0,过了重发超时时间后,还没收到确认应答更新窗口大小的
话,发送端会发送窗口探测的数据包。
校验和的目的(扩展):数
据链路层中使用FCS位可以
用CRC检查噪声干扰出现的
位错误。但是无法检查路由
器(网络层)内存故障或程
序漏洞导致的数据破坏。
TCP首部
源端口号:发送端端口号:
长16位。
目标端口号:接收端端口
号,长16位。
序列号:长32位,指发送数
据的位置。每发送一次,就
累加一次该数据字节数的大
小。由随机数为初始值,
SYN包和FIN包都会增加序
列号。
确认应答号:长32位,下一
次应该收到的数据的序列
号。指已经确认收到的应答
号减一为止的所有数据。
数据偏移:可以看作TCP首
部的长度,长4位,单位4字
节。(如5,表示20字
节)。
保留:以后扩展使用。长4
位。
控制位:长8位。
CWR,ECE用于IP包的ECN字段,ECE置1则代表网络拥塞,通知
对方拥塞窗口缩小。
URG为1表示有紧急处理的数据。
ACK确认应答,TCP规定除了最初建立连接时的SYN包以外该
位必须置1.
PSH为1,表示需要将收到的数据立刻传给上层应用协议,为0则
不需立刻传,先进行缓存。
RST为1表示TCP连接中出现异常必须强制断开连接。
SYN用于建立连接,为1表示希望建立连接,并初始化序列号。
FIN表示不会有数据再发送,希望断开连接。收到FIN包不用立
刻回复FIN包(四次挥手),等缓冲区所有数据发送成功被自动
删除后再发。
窗口大小:长16位,表示从
相同TCP首部确认应答号所
指位置开始能接受的数据大
小。窗口为0,则发送窗口
探测,了解最新窗口大小,
但是数据必须是一个字节。
校验和:TCP校验和无法关
闭,和UDP一样使用伪首
部,在数据部分最后填充0.
将TCP校验和字段设置为
0,然后以16位为单位进行1
的补码和运算,再将它们综
合的1的补码和放入校验和。
紧急指针URG:长16位,
URG控制位为1,则该字段数
值表示报文段中紧急数据的
指针。
选项:类型2,MSS用于在
建立连接时确定最大段长
度。
类型3,窗口扩大,改善
TCP吞吐量。因为TCP首部
的窗口字段只有16位,在一
个RTT内,最大只有64K字
节的数据发送,采用该选项
可以扩展到1G字节。
类型8:时间戳,区分新老
序列号。
类型4,5选择确认应答(
SACK)
NAT:在本地网络中使用私有地址,在连接互联网时使用全局IP
地址。可以缓解IPv4地址枯竭的问题。NAT路由器内部有一张自
动生成的转换地址的表,当发送端主机发送第一个包时生成表记
录,之后按照映射关系处理。
IP多播相关技术:IGMP(MLD)向路由器表明想
要接受多播消息,并告知想接受多播的地址,
向交换集线器通知想要接受多播的地址。
IP任播相关技术:最典型的就是DNS根服务
器。
UDP首部
源端口号:字段长16位,也
可以没有端口号,可选项,
没有源端口号则置0.
目标端口号:接收端端口,
长16位。
包长度:UDP首部长度和数
据长度之和。单位字节。
校验和:计算方式为将校验
和字段全部设为0,然后以
16比特为单位进行1的补码
和,将所得到的1的补码和写
入校验和字段。
广播地址:广播分为本地广播和直接广播。
本地广播:在本网络内的叫本地广播,即网络地址为192.168.0.0/
24的情况下,广播地址为192.168.0.255,广播地址的IP包会被路
由器屏蔽,因此不会到达到192.168.0.0/24以外的链路上。
直接广播(有安全问题,一般路由器设置为不转发):不同网络之
间的广播叫做直接广播,从192.168.0.0/24的主机向192.168.1.
255/24发送IP包,收到这个包的路由器会直接将数据发给192.
168.1.0/24从而使192.168.1.1~192.168.1.254的主机都收到这个
包。
多播用于将包发送给特定组内的所有主机。多播使用D类地址,
DHCP协议
DHCP中继代理:用于大型网络中(多个以太网)。
工作机制:DHCP服务器上配置需要分配的IP地址,还有
相应的子网掩码,路由控制信息和DNS服务器地址。为了
避免分配的IP地址冲突:
DHCP服务器在分配IP地址前发送ICMP回送请求包,确
认没有返回应答。
DHCP客户端针对获得的IP地址发送ARP请求包,确认没
有返回应答。
ICMPv6:ICMP仅
作为辅助作用支持
IPv4,IPv6没有
ICMPv6无法通
信。融合了ARP,
ICMP重定向,
ICMP路由器选择
消息,自动设置IP
地址等功能。
邻居探索:邻居请求消息用于查询IPv6地址和MAC地址的对应关
系,利用IPv6多播实现传输。IPv6由于实现了即插即用功能,没有
DHCP服务器的环境也能实现IP地址获取,如果是一个没有路由器的
网络,就是用MAC地址作为链路本地单播地址。如果有路由器,可
以从路由器获得IPv6地址的前面部分,后面部分由MAC地址设置。
ICMP协议:基于
IP协议工作,提供
尽力而为的服务。
功能:确认IP包是否成功送
达目标地址,通知在发送过
程中IP包被废弃的具体原
因,改善网络设置。这样就
可以获得网络是否正常,设
置是否有误,设备有何异常
的信息。所以说ICMP协议用
于实验和诊断错误。
通过IP协议,返回ICMP包给主机A。
ICMP消息类型:
目标不可达:错误代码是1,指路由表中没有该主机或者主机未联网。
错误代码4用来路径MTU发现。
重定向:ICMP会告诉发送端一个更优的路径。
超时消息:IP包中的TTL减到0时,IP包被丢弃,路由器发送ICMP超时
消息给发送端,主要用于避免循环转发。
回送消息:ping依靠回送消息实现。判断数据包是否到达对端。
原点抑制:缓和拥堵情况,当发生拥堵时,回发该类ICMP消息,打开
IP包传输间隔,但可能引起不公平网络通信,一般不使用。
路由器探索消息:用于发现与自己相连的网络中的路由器。
地址掩码消息:获取子网掩码信息。
重定向
通信质量控制协议
IntServ:在有必要的时候通
过路由器设置,对传送的包
进行质量控制,很复杂。通
过RSVP协议实现。
DiffServ:针对特定的网络进行粗粒度的质量控制,通过IP中的
DSCP字段实现,设定IP包的优先顺序
ECN:实现显式拥塞通知。
数据链路层
MAC地址:长度48比特,
第1位:单播地址(0)/多播
地址(1)
第2位:全局地址(0)/本
地地址(1)
第3-24位:由IEEE管理保证
各厂家之间不重复。
第25-48位:由厂商管理保
证产品之间不重复。
MAC地址可以保证同一数据
链路下的寻址。
根据MAC地址转发:以太网交换机就是持有多个端口的网桥,其
内部有一个用来记录对应端口和发送目的地MAC地址的转发表,
这个表不是设置的,而是自学生成的,类似于缓存。如果收到的
MAC地址由对应的端口转发记录,那么就交由那个端口直接转
发,如果没有记录,则将“未知”的MAC地址交由所有端口转发,
由响应可以得知MAC地址和端口的对应关系,于是自学到了记
录,下次再收到这个MAC地址,便直接由对应端口转发。
交换机转发方式:
1. 存储转发:接受完整个帧后,检查数据帧末尾的FCS位后再转
发,可以避免错误帧的发送。
2. 直通转发:不需要接受整个帧再转发,只需要得知目标地址就
可以开始转发,因此有延迟短的优势,但是可能转发错误帧。
帧:帧本体的前端是以太网的首部,后面是帧的数据,帧的尾
部是FCS位。。
帧头部:总共有14个字节,分别是6个字节目标MAC地址,6个
字节源MAC地址,2个字节上层协议类型,以编号标志协议类
型。
数据:能容纳46-1500个字节,即网络层数据报。
帧尾:FCS(帧检验序列)4个字节。检验帧是否在传输中受噪
声干扰损坏是存储转发避免错误帧发送的关键。
前导码:在一个帧的前端有一个叫做前导码的部分,前导码由
8个8位字节组成,末尾两位是叫SFD的域,值是“11”,除了SFD
外,前导码由1和0交替组成,告诉对端网卡这是一个帧的开
始。
UDP协议的区别:区别在于UDP不会重发,下一个消息会分片
路径MTU发现:分片机制有它的不足,它加重了路由器的负担,因此
要尽可能在发包的时候就避免IP包被分片,其次分片后一旦某个分片丢
失,那么整个IP报就要作废。为了避免这些问题,就有了路径MTU发
现方法,路径MTU发现是指从发送端主机到接收端主机,不需要分片
时最大MTU的大小,即整个通路上最小的MTU的大小。在主机就按照
路径MTU的大小对数据包进行分片,就可以避免中途路由器的分片处
理,分担了路由器的压力,TCP也可以发更大的包。
也可以在TCP协议中应用路径MTU方法找到最大段长度MSS,这样IP
层就不会再进行分片。如上图TCP情况下的路径MTU发现。
工作原理:首先在发送端主机发送的IP数据报首部的分片禁止标志位设
置为1,这样需要分片的大包也不会去分片,而是直接被路由器丢弃。
通过ICMP的不可达消息将整个数据链路上的最小MTU发送回发送端主
机。下一次,发送给同一目标地址的IP数据报就会设置这个MTU为当
前MTU,按照这个MTU对数据报进行分片,如此反复,直到数据报被
发送后发送端不再受到ICMP位置,就认为最后一次ICMP带回来的
MTU大小为最终大小,在MTU缓存较多的时候,MTU最少缓存10分
钟。过了十分钟后必须再次进行路径MTU发现。
IP报文分片和重组:路由器进行分片但不会进行重组。
传输层
定义:由IP协议传输到目标
IP地址后,解包IP数据报,
可以知道用的什么传输层协
议,由传输层协议包含的信
息(端口号)判断接受的应
用程序。
通信:服务端程序在UNIX系统中称为守护进程,例如HTTP服务端程序是httpd(HTTP守护进程),
ssh服务端程序是sshd。在UNIX中不用挨个启动,而是启动一个inetd服务程序,它可以在收到客户端
请求后创建新进程转换成sshd等各守护进程。通过端口号可以判断是发给的哪个守护进程。
TCP:面向连接的,可靠的
流协议。流就是指不间断的
数据结构,提供可靠性传
输,实行“顺序控制”和“重发
控制”机制,提供“流控制”,
“拥塞控制”,、提高网络利
用率等众多功能。
UDP:不可靠的数据报协
议,可以确保发送消息的大
小,但是不保证一定到达。
因此应用有时会根据需要重
发。
端口号(port):数据链路
依赖MAC地址寻址,网络层
依赖IP地址,前者用来识别
同一链路的不同计算机,后
者用来识别TCP/IP网络中的
计算机和路由器。而传输层
对应的“地址”就是端口号,
它用来识别同一台计算机中
通信的不同应用程序,也称
为程序地址。
端口号的分配:
静态分配:每个应用程序有
指定的端口号。
动态分配(时序分配):客
户端应用程序没必要确定端
口号,因此可以交给操作系
统分配。(49152-65536之
间)
网络层
数据链路层和物理层的设备
不具有IP地址,也就是网桥/
2层交换机,中继器等不具IP
地址,路由器及以上的设备
具有IP地址。
路由控制
跳:一跳指的是在数据链路层以下分层的传输的一个区
间,即路由或主机到路由或主机为一跳。
多跳路由:指路由器或主机转发IP数据报时只指定下一个
路由或者主机,而不是将到最终目标地址为止的所有通路
都指定出来。
路由控制表:每个主机维护一个路由控制表,分为静态路由
表和动态路由表,
静态路由:是由管理员在路由器中手动配置的固定路由,路
由明确地指定了包到达目的地必须经过的路径。(坏处是除
非工作人员设置,否则无法绕过故障点。)
动态路由:是网络中的路由器之间相互通信,传递路由信
息,利用收到的路由信息更新路由器表的过程。(需要配置
路由协议)
最长匹配:若控制表种存在多条相同网络地址的记录,则选
择一条最吻合即相同位数最多的地址转发。若没有匹配的记
录则转发给默认路由。
主机路由:不通过网络地址路由,直接通过主机网卡上的IP
地址进行路由。
环回地址:同一台计算机的程序间进行通信的地址,如127.
0.0.1或者localhost。
路由协议被分为两大类。一
类是外部网关协议EGP(
BGP),一类是内部网关协
议IGP(RIP,RIP2,OSPF),
根据EGP在区域网络之间进
行路由选择,根据IGP在区
域网络内部进行主机识别。
路由选择算法
距离向量算法:根据距离和
方向决定目标网络或目标主
机位置。由于只有距离和方
向的信息,网络构造很复
杂,需要等待一定时间直到
路由收敛,容易发生路由循
环问题。
链路状态算法:每个路由器
中都持有相同的路由控制信
息,通过同步路由信息使网
络中的路由信息达到稳定状
态,但是从网络代理获取路
由信息表相当复杂。
IP属于无连接型协议,这样的好处是简化和提速。和UDP
一样都是尽力服务。
IP地址由网络标识和主机标识组成。
IP地址分类:
A类:首位以0开头。第1-8位是它的网络标识,从0.0.0.0~127.0.0.
0,后24位是主机标识。
B类:前两位是10,第1-16位是网络标识,从128.0.0.1~191.255.0.
0,B类后16位为主机标识。
C类:前三位是110,第1-24位是网络标识,从192.168.0.0~239.
255.255.0,后8位是主机标识。
D类地址:前四位为1110,第1-32位是网络标识,从224.0.0.0~239.
255.255.255,D类没有主机标识,常用于多播。
分配IP的主机地址时,全0和全1是保留地址,不可以用。全0表示对
应的网络地址和IP地址不可知的情况使用,全为1的通常作为广播地
址。这也是C类只有254个地址的原因
子网掩码:子网掩码将网络划分的更细,将原来A,
B,C,D分类中的主机地址部分作为子网地址,可以
将原本的物理网络划分为更小的“逻辑”网络。
引入了子网后,IP地址就有了两种识别码,一个是
IP地址本身,一个是子网掩码。子网掩码对应IP地
址网络标识的位全为1,对应IP地址主机标识的部分
全为0.
子网掩码有两个特殊地址,当子网掩码的主机地址
全为0时,表示该网络地址,当子网掩码的主机地
址全为1时,表示该网络的广播地址。
CIDR(边界网关协议):给
了让多个网络段合成一个网
络,但是子网掩码长度采用
固定长度。
VLSM(可变长子网掩
码):将域间路由协议转换
为RIP2以及OSPF实现。可
以改变子网掩码长度。提高
了IP地址利用率。
全局IP(公网IP)和私有IP:全局IP必须全球唯一,私
有IP需要在同一个域内唯一。私有IP的分类为:
A类10.0.0.0~10.255.255.255(10/8)
B类172.16.0.0~172.31.255.255(172.16/12)
C类192.168.0.0~192.168.255.255(192.168/16)
通过NAT技术实现了私有IP连入互联网
控制路由表的聚合:对内多个子网掩码,对外为一个网络地址,可以有效减少路由
表的大小,
IP隧道:中间网络为不同协议的网络
时,让IP包可以通过。
用IPv4包装后再传
IP隧道实现多播
链路状态数据库和路由控制表,根据链路状态数据库可以采用Dijkstra
算法生成相应的路由控制表。如果网络过于复杂,拓扑数据库过大,
则计算就很困难,因此OSPF引入区域的概念,在物理上将自治系统分
为主干区域和连接区域,路由器因此只需要计算内部区域的路由表。
OSPF包:以hello包确认连接(一般10秒一次,空等3次,第四次仍无响应
则断开,以链路状态更新包通知其他路由器网络状态的变化),数据库描述
包确认版本和摘要,如果版本较老,则发出一个链路状态请求包,请求路由
控制信息,然后链路状态更新包接受状态信息(链路更新包传达的消息,一
是网络LSA,用来表示这个网络与哪些路由器相连,二是路由器LSA,用来
表示路由器与哪些网络相连)。最后发送链路状态确认包通知大家本地收到
了路由控制信息。
Dijkstra算法:搜索算法的一种,属于广度优先算法(
BFS)对路径赋权后的扩展,如果所有路径的权值相同则等
同于BFS,Dijkstra算法:
初始化:
起点初始化(dist=0,past=NULL,visit=1)
其他节点初始化(dist=无穷,past=起点,visit=0)
循环:对于所有节点
循环:对于所有【不确定到起点最短距离】的节点,找出
距离起点最近的节点并记录距离
更新找出的节点的状态(visit=1)
循环:对于所有【不确定到起点最短距离】的节点
计算它到刚才找出的节点的距离
如果节点经过刚才找出的节点到起点的距离小于节点直接
到达起点的距离
更新节点的状态(dist=找出的节点的dist+找出的节点
到该节点的距离,past=找出的节点)
路由协议
RIP:将路由控制信息定期(30秒一次)广播,如果没有收到
路由控制信息就断开连接。(等待5次,6次即180秒未收到路
由信息就会关闭连接)
路由控制的范围要注意1. IP地址分类产生的不同网络地址时;
2. 构造网络地址长度不同的网络环境时。
触发更新:一旦路由控制信息发生变化,就不等待30秒,立刻
发出去控制信息,这能改善产生正确路由信息的时间。
毒性逆转:当网络中发生链路断开,将这个无法通信的消息传
播出去,即发送一个距离为16的消息(最长距离一般为16,避
免无限计数问题,为了规避这个问题,还规定不再把收到的路
有消息原路返回给发送端)。
RIP2:比起RIP协议,改进之处在于:
使用多播:比其RIP使用广播,减少了网络流量,缩小了对无关主机的
影响。
支持子网掩码:交换的路由信息中加入子网掩码。
路由选择域:同一个网络中可以使用逻辑上独立的多个RIP。
外部路由标志:从BGP等获得的路由控制信息通过RIP传递到AS。
身份验证密钥:携带密码,能识别密码才接受数据。
OSPF:链路状态型路由协议,路由器之间交换网络拓扑信息。RIP是选
择路由个数最少的路径,而OSPF是选择代价较小的路径,完整的网络
拓扑结构给了OSPF找出最短路径的基础。OSPF为每个链路赋权,以路
径的总权重来选择路径。
简单网络中,相邻路由器可以互相交换路由信息。复杂网络中指定路由
器以它为中心交换路由信息。
RIP中只有一种包来确认网络连接和传送网络信息,这导致网络个数越
多,交换信息越大。OSPF中根据作用有5种包,
BGP:边界网关协议用来连
接不同自治系统,属于
EGP(外部网关协议)用于
ISP之间相连接的部分。
BGP为每个自治系统分配一个16比特的AS编号,根据AS编号,BGP
进行控制。BGP是路径向量协议,BGP中数据包送达目标网络时,会
产生一个经过所有AS的编号列表,即AS路径信息访问列表。BGP会
选择一个较短的路由访问,路径向量协议可以避免无限计数问题。
MPLS:多协议标记交换技术,MPLS让IP包可以在LSR(标记交
换)路由器之间根据标记转发。在LER(标记边缘)路由器上对
数据包进行标记和删除标记。MPLS第一个优点在于转发速度
快,只需要对固定长度的标记进行转发处理,实现硬件转发。
路由器需要设置的信息也少的多。第二个优点在于利用标记生
成虚拟的路径,并在它上面实现和IP等数据包的通信,可以让
IP网也能基于MPLS提供通信质量控制、带宽保证、VPN等。
Mobile IP:Mobile IP存在没有外部代理的
网络无法通信,IP包三角形转发效率不高,
发送端和接收端的IP不符合可能丢弃IP包。
Mobile IPv6:外部代理由移动主机自己承
担,考虑路径最优化不经过归属代理直接通
信,IPv6首部源地址中赋予移动地址不让防
火墙丢弃。
省去
变为可选
扩展首部
解决
扩展
共同替代TOS字段
TCP和UDP区别
广播
多播
聚合
Anvilliu
老许的花开
- 粉丝: 20
- 资源: 328
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0