IP 数据报

时间:2020-01-23 15:59:15   收藏:0   阅读:124

IP 数据报

1.IP 数据报的格式

技术分享图片


2.IP 数据报首部的固定部分中的各字段

技术分享图片

从图中可看到,数据报首部可分为固定部分和可变部分,固定部分为了五行,每行32位即4个字节。

IP 数据报分片举例

技术分享图片

以太网传输的数据报数据部分一般都是1500个字节。如果有个数据报数据部分为3800字节(数据报总长度超过路由器的对大传送单元MTU) 就需要分为若干个数据报片发送。

如图中分为三个数据报片发送,在每个数据报片的首部都要写上原数据报首部的信息,包括目标IP 地址等,并编上号。数据报片的数据部分第一个字节表示偏移,每个数据报片的偏移 = 该报片数据部分的第一个字节号 / 8,如图所示。

TTL简单举例

技术分享图片

在命令行窗口尝试与本计算机的默认网关地址通信:ping 172.26.104.1,发现TTL值为255,因为访问的是本计算机的网关在同一网段上,不用经过其他路由器中转便可直接访问(Linux默认TTL值为255);

于是我尝试与美国的某个IP地址通信:ping 207.226.141.205,会得到IP 地址为63.218.56.150的路由器发来的回复:“TTL传输中过期”。说明在通信数据报在传输到该路由器上时TTL值已为0,随后该路由器将通信数据报自行销毁并给最初发出数据者(即本计算机)一个回复。

此外,还可以通过指定TTL的值,观察哪个路由器给计算机回复TTL过期信息,以此来跟踪通信数据报传输过程中途经的路由器:

ping 207.226.141.205 -i 1

指定通过 “-i 1“ 指定TTL值为1,即数据报中转到第一个路由器中就销毁了。

技术分享图片

可以看到本计算机向IP地址:207.226.141.205,发出的包含通信请求的数据报经过的第一个路由器IP地址为本计算机的网关:172.26.104.1;第二个路由器的IP地址为10.0.2.37 。

技术分享图片

技术分享图片

协议字段里一般使用协议号来标识相关协议,比如其中一部分为:

技术分享图片

技术分享图片

检验过程

技术分享图片

好比寄快递,发件方在快递单上写上收件人、地址、电话,然后根据这些信息得到一个校验和并写在快递单上;快递员收到这个快递之后检查对应的信息是否出错,出错了就不发了,并不在乎快递内的东西是否出错。也就是说该字段仅检查数据报的首部有无错误不关心数据部分。


3.IP 数据报首部的可变部分


4.抓包验证

这里所说的“抓包”指的是计算机通信的数据报,也可以叫做数据包

技术分享图片

技术分享图片

选中某一数据包之后,下面的四栏选项显示的是数据包的具体内容,从上往下分别是:数据帧信息、数据链路层信息、网络层信息、运输层信息。

技术分享图片

可以发现数据链路层添加的内容:目标MAC地址、源MAC地址、协议类型:在数据链路层指明了网络层使用的协议是IPv4。

技术分享图片

其中:

技术分享图片

Version:4表示版本字段,值4表示网络层使用IPv4协议与数据链路层指定的协议类型一致;

Header Length表示首部长度字段,值为20表示数据包首部为20个字节;

技术分享图片

Differentiated Services Field表示区分服务字段,它的值0x00表示该数据包默认没有区分服务;

Total Length表示总长度字段,它的值1500表示整个数据包的总长度为1500字节;

Identification表示标识字段,表示该数据包的编号为61121,查看相邻的数据包可发现其标识为61122:

技术分享图片

验证了计算机发送数据包时会按顺序给数据包加上连续的标识。

技术分享图片

Flags表示标志字段,看看出该数据包并没有分片;

Flagment offset表示片偏移字段,由于数据包没有分片,所以片偏移为0;

Time to liveTTL表示生存时间字段;

技术分享图片

Protocol表示协议字段,TCP(6)表示使用该数据包使用TCP协议传输,6为TCP协议的协议号;

Header checksum表示首部检验和字段,validation disabled表示首部检验和验证失败;

Source表示源地址字段;

Destination表示目标地址字段。

原文:https://www.cnblogs.com/AhuntSun-blog/p/12230694.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!