1、IP格式报文
IPv4报文格式
可参考:IPv4报文格式详解和报文示例_ipv4报文结构_柒烨带你飞的博客-CSDN博客
头部长度(IHL):最小值为5,最大值为15,单位为4字节。
最小为5,即5×32bit=160bit=20字节
最大为15,表示15×32bit=480bit=60字节。
TOS:为区分服务字段,用于区分服务类型,即QoS字段。
总长度字段:IPv4数据报文的总长度。
标识:主机发送IP报文的序号,每发送一次+1。
生存期(TTL):用于设置一个数据包可经过的路由器数量的上限,每经过一台路由器减一。
协议字段:包含一个数据,标识数据报有效载荷部分的数据类型,最常用的值为1(ICMP)\17(UDP)\6(TCP)。
头部校验和:仅计算IPv4头部,不检查数据有效载荷部分的正确性,当TTL减一时,头部校验和必须重新计算。
2、IP分片与计算
IP报文最大65535字节,而以太网MTU为1500字节。

片段偏移(Fragment Offset):
片偏移以8个字节为偏移单位。这就是说,每个分片的长度一定是8字节(64位)的整数倍。
MF:标志位flag。
MF=1即表示后面“还有分片”的数据报。
MF=0表示这已是若干数据报片中的最后一个。
②标志字段中的一位记为DF(Don’t Fragment),意思是“不能分片”。
只有当DF=0时才允许分片。
数据长度:不包含IP报头的长度,一般为20字节。
总长度:MTU长度和给定的数据长度。
例题1:

解答:
IP报头长度=20,TCP长度=20
因为片偏移量以8字节为单位,所以要求偏移量都要除以8
ip数据报长度=3000字节,MTU总长度=1500字节
IP数据报长度: 3000-20=2980字节 MTU数据长度: 1500 - 20 = 1480字节
1》用MTU数据长度除以8 : 1480/8 = 185 (比较常见的数值) 一般向下取整
2》一个片偏移最大的长度为 185 * 8 = 1480 (为数据包真实长度)
此时进行数据部分划分:1480 + 1480 + 20 = 2980 (此处为数据长度,不加上IP头部长度)
第一个 1480 MF = 1 偏移量 = 0/8
第二个 1480 MF = 1 偏移量 = 1480/8=185
第三个 20 MF = 0 偏移量 = 2*1480/8=370 注意(此处为MF的次数除以8)
MF=1时 表示不能再次分片了。
表格描述

例题2:

ip数据报长度=1500字节,MTU总长度=1024字节
IP数据报长度: 1500 - 20 = 1480字节 MTU数据长度: 1024 - 20 = 1004字节
1》用MTU数据长度除以8 : 1004/8 = 125 一般向下取整
2》一个片偏移最大的长度为 125 * 8 = 1000 (为数据包真实长度)
此时进行数据部分划分:1000 + 480 = 1480 (此处为数据长度,不加上IP头部长度)
原始数据包 1480 MF=0 偏移量=0
数据包1 1000 MF = 1 偏移量 = 0/8
数据包2 480 MF = 0 偏移量 = 1000/8=125 (用IP数据包总长度1480 - 第三个数据包总长度480)
表格描述:

例3:

3、IP分类与特殊IP地址

1》0.0.0.0:
路由中:默认路由。
进行DHCP分配时,表示本机。
服务端:当某主机有两个IP地址时,该主机一个服务监听的是0.0.0.0.
2》255.255.255.255:广播地址
3》169.254.0.0/16:DHCP:当发生故障时,或者响应的时间超时时,系统会自动分配一个地址。但是不能上网。
4》127.0.0.0/8:本地回环地址,能ping通表示TCP/IP协议栈正常。
5》RFC1918私有IP地址:不能访问网络,只能访问本地。
A类:10.0.0.0/8(10.0.0.1-10.255.255.255)1个A类网络。
B类:172.16.0.0/12(172.16.0.1-172.31.255.255) 16个B类网络
C类:192.168.0.0/16(192.168.0.1-192.168.255.255)256个C类
6》常见的组播地址:
224.0.0.1:所有主机
224.0.0.2:所有路由器
224.0.0.5:所有运行OSPF的路由器
224.0.0.6:DR和BDR的组播接收地址
224.0.0.9: RIPv2组播更新地址
224.0.0.18:VRRP组播地址
4、ARP与RARP协议
MAC地址:长度为48bit(6个字节B),12个16进制数表示。
前三个字节:代表网络硬件制造商的编号。
后三个字节:表示该制造商所制造的某个网络产品(网卡)的系列号
协议封装:
ARP封装在以太网中
ICMP封装在IP中
OSPF封装在IP中
RIP封装在UDP中 520
BGP封装在TCP中 179
1》ARP的操作流程:
1、自身通过广播的方式,目的MAC地址为FF-FF-FF-FF-FF-FF的请求操作
2、收到之后,回复reply包。
3、写入MAC地址表中(windows:arp -a)
2》免费ARP :可以用来探测IP地址是否冲突。
主要区别:普通的ARP报文中的目标IP地址是其他主机IP,而免费ARP的报文请求中,目标IP地址是自己的IP。
3》代理ARP
同一网段,不通物理网络上的计算机,可以通过ARP代理实现相互通信
5、ICMP协议
ICMP(Internet Control Message Protocol,Internet控制报文协议),协议好为1,封装在IP报文中,用来传递差错、控制、查询等信息,典型的应用指令为【ping\tracert】
Echo Request和Echo Reply分别用来查询和相应某些信息,进行差错检测。
一般情况:当防火墙堵住了为端口不可达,删除了网关为网络不可达,缺路由显示主机不可达。
IP报文类型与代码:

文章详细介绍了IPv4报文的头部结构,包括头部长度、TOS、总长度、标识、TTL、协议字段等,并讨论了IP分片的过程,特别是如何根据MTU和数据长度计算分片。此外,还提到了IP地址的分类,如0.0.0.0和255.255.255.255的特殊含义,以及ARP和RARP协议的作用。最后,简述了ICMP协议的功能及其在网络中的应用。
&spm=1001.2101.3001.5002&articleId=129998494&d=1&t=3&u=306d3793e4dd4bf1ae33d6e3428dda86)
1111

被折叠的 条评论
为什么被折叠?



