IP协议的基本原理、报文结构和抓包分析

IP协议的基本原理、报文结构和抓包分析

基本原理:

IP 协议提供了一种分层的、与硬件无关的寻址系统,它可以在复杂的路由式网络中传递数据所需的服务。

IP 协议可以将多个交换网络连接起来,在源地址和目的地址之间传送数据包。同时,它还提供数据重新组装功能,以适应不同网络对数据包大小的要求。

 

在一个路由式网络中,源地址主机向目标地址主机发送数据时,IP协议是如何将数据成功发送到目标主机上的呢,由于网络分同网段和不同网段两种情况,工作方式如下:

同网段:

如果源地址主机和目标地址主机在同一网段,目标 IP 地址被 ARP 协议解析为 MAC 地址,然后根据 MAC 地址,源主机直接把数据包发给目标主机。

不同网段:

网关(一般为路由器)的 IP 地址被 ARP 协议解析为 MAC 地址。根据该 MAC 地址,源主机将数据包发送到网关

网关根据数据包中的网段 ID 寻找目标网络。如果找到,将数据包发送到目标网段;如果没找到,重复步骤(1)将数据包发送到上一级网关

数据包经过网关被发送到正确的网段中。重复同网段,目标IP地址被ARP协议解析为 MAC 地址。根据该 MAC 地址,数据包被发送给目标地址的主机

 

 

报文结构:

IP 协议传输数据的包被称为 IP 数据包,每个数据包都包含 IP 协议规定的内容。IP 协议规定的这些内容被称为 IP 数据报文(IP Datagram)或者 IP 数据报。

IP 数据报文由首部(称为报头)和数据两部分组成。首部的前一部分是固定长度,共 20 字节,是所有 IP 数据报必须具有的。在首部的固定部分的后面是一些可选字段,其长度是可变的。

 

 

 

字段

含义

版本version

4位,通信双方ip协议版本必须一样,一般是4版本

首部长度

4位,最大的十进制数为15,单位为32位字长即4字节,首部最大长度位60字节,若首部长度不是4字节整数倍需要用最后的填充字段

区分服务tos

8位,只有区分服务类型时才起作用。

总长度totlen

16位,首部和数据之和,单位为字节,216次方=65535字节,即最多65535个字节

标识identification

16位,标识数据报,是ip协议在存储器维持的计数器产生的数字,产生一个数据报,计数器就加一,并将此值赋给标识字段,当数据报长度超过MTU必须分片时标识字段的值就复制到所有分片的标识字段中,具有相同标识字段的分片报文又会被重组成原来的数据报。

标志flag

3位,第一位未使用,为0;第二位df表示是否分片,0表示允许分片,1表示不允许分片。第三位mf表示是否还有分片在转移,0时表示没有更多分片需要发送或者数据报没有分片。

片偏移offsetfrag

13位,报文被分片后,标记分片在原报文中的相对位置,片偏移以8个字节为单位,除了最后一个其他分片的偏移值都是8字节的整数倍。

生存时间ttl

8位,数据报在网络中的寿命,防止无法交付的数据无限制在网络中传输,从而消耗网络资源。转发前ttl1,若减少到0则丢弃,不再转发。

指明数据报在网络中最多可经过255个,若把ttl初始值设为1,则表示只能在本局域网内传送。

协议

8位,所携带数据使用的协议类型,让网络层知道怎么来处理数据部分。如:tcp 6   udp 17   icmp 1

首部校验和

16位,每经过一个路由器,首部的字段都可能发生改变(如ttl值),所以需要重新校验首部的校验和,数据部分不发生改变所以不用重新生成。

源地址

32位

目的地址

32位

可选长度(包括填充部分)

用于可选的报头设置,主要用于测试,调试和安全。包括:严格源路由(必须经过指定路由),网际时间戳,安全限制

可用若干0填充字段,保证整个报头长度为32位的整数倍。

数据

长度不固定

81个字节

 

抓包分析:

  1. ping百度

 

  1. Werishark抓包

 

  1. 查看主机发送给14.215.177.38tcp报文的ip结构

 

posted @ 2020-12-23 21:10  爱晒太阳的一斗  阅读(1431)  评论(0)    收藏  举报