网络层协议
网络层首部
网络层首部实现网络功能,各个字段实现数据包在不同网段转发。
-
版本。占4位,IP协议有IPv4、IPv6,IP版本必须一致,目前广泛使用IPv4。
-
首部长度。占4位,最大表示十进制15(1111),当IP首部长度为1111时,首部长度达到60字节,当首部长度不是4字节时,必须利用最后的填充字段加以填充。目的是使数据部分永远从4字节倍数开始,方便IP协议的实现。
-
区分服务。占8位,特定应用程序的数据包添加一个标志,配置网网络中路由器优先转发带标数据包,在带宽紧张时也能提供保障。
-
总长度。IP首部和数据之和的长度。总长16位,数据包最大长度可以达到2^16-1字节,65536字节。
-
标识。占16位,IP软件计数器,每产生一个数据包计数器+1,并将值赋予表示字符。目的是分片后能重新组装成原来数据包。
-
标志。占3位,表明是否有后续分片,最低标志MF,值=1,后面还有分片的数据包;值=0表示这是数据包片中的最后一个。
-
片偏移。占13位,表某片在原分组中的相对位置。片偏移以8个字节为偏移单位。
-
生存时间。TTL路由器转发数据包前把TTL值减一,如果到零,就丢弃这个数据包,不再转发。
-
协议。占8位,指出数据包携带的数据使用何种协议,以便网络层知道应该将数据包上交给哪个处理过程。
-
首部检验和。占16位,检验数据包首部,每经过一个路由器,路由器都要计算首部检验和(字段、生存时间、标志、片偏移等)。
-
源IP地址。占32位。
-
目的IP地址。占32位。
ICMP协议
用于IP主机、路由器之间传递控制信息。控制信息,指网络是否通、主机是否可到达、路由是否可用。
ICMP报文格式
ICMP差错报文格式
ICMP差错数据包。将需要差错报告的IP数据包的首部和数据字段的前8位(得到传输层端口、传输层报文的发送序号)提取,作为ICMP数据报的数据字段。加上相应ICMP差错报告报文的前8个字节,就构成了ICMP差错数据包。
ICMP差错报文五种类型
- 终点不可达到。当路由器、主机没有到达目标的路由时,丢弃该包,给源点发送重点不可达到报文。
- 源点抑制。当路由器、主机由于拥堵丢弃包时,给源点发送源点抑制报文,源点就知道降低包发送速率。
- 时间超时。路由器接收到生存时间为零的数据报时,丢弃该报,并向源点发送超时报文。
- 参数问题。当路由器或目的主机收到数据报首部有字段值不正确时,丢弃,向源点发送参数问题报文。
- 改变路由。路由器把改变路由的报文发送给主机,主机下次知道应将数据报发送给另外的路由器(更好的路由)。
ICMP报文类型、代码代表的意义
ARP协议
ARP协议只在以太网中使用,是根据主机IP获取物理地址的TCP/IP协议。
ARP工作原理。通信之前,检查ARP缓存中是否有IP对应地址,如没有,就发送ARP广播请求解析XXX的MAC地址,收到回复报文,然后将存入缓存表。值得注意的是,因为是广播信息,所以该网络中任意一个主机都可以回应ARP应答,就出现了ARP欺骗。
IGMP协议
Internet组管理协议。一个组播协议,运行在主机和组播路由器之间。
组播
将网卡绑定在特定的IP地址,计算机就可以收到相应设置的组播的视频流媒体。D类地址是组播地址,1110开头,224.0.0.0~239.255.255.255 组播地址不能作为源地址,所以组播数据不产生ICMP差错报文。
D类地址中保留地址。
MAC地址与组播地址
目的地址是组播IP的数据包到达以太网,就要使用组播MAC封装,组播MAC地址使用组播IP构造。
主要参考韩立刚老师老师的《计算机网络原理创新教程》
以上