04、ip协议分析

一、IP协议概述

  • IP(Internet Protocol)协议,又称网际协议,它负责Internet上网络之间的通信,并规定了将数据从一个网络传输到另一个网络应遵循的规则,是TCP/IP协议的核心。
  • IP协议是为了在分组交换(Packet-witched,又译为包交换)计算机通信网络的互联系统中使用而设计的,其只负责数据的路由和传输,在源节点(传输数据的出发源点)与目的节点(传输数据的最终接收点)之间传送数据报,并不处理数据内容。
  • IP协议的任务是对数据报进行相应的寻址和路由选择,并从一个网络转发到另一个网络。
    IP协议的另一项工作是分割和重编在传输层被分割的数据包。
    IP协议提供尽最大努力投递(Best-effort Delivery)的传输服务,是不可靠无连接的数据报服务。
  • IP协议工作在网络层。

二、报文中的IP包头

1、头部结构

在这里插入图片描述

单看这么一张图,仿佛IP包头的结构是一个二维的多行多列结构,事实上它应当是一个只有一行的数据,但是图片摆不开,摆的开也看不见。

现在这个东西,包括之前的,都是基于IPv4的基础上进行的。

之前提到过一个叫MTU的概念,如果本层的数据大于这个MTU,此时就会对上两层来的数据进行拆分,为了拆分以后的数据可以准确的重组,需要在拆分后的每一段数据前添加一个IP包头,通过这个头部来确定如何组合。

2、版本

版本(4位):该字段定义IP协议版本,负责向处理机所运行的IP软件指明此IP数据报是哪个版本,所有字段都要按照此版本的协议来解释。如果计算机使用其他版本,则丢弃数据报。

3、首部长度

或者说头部长度(4位):该字段定义数据报协议头长度,表示协议头部具有32位字长的数量。协议头最小值为5,最大值为15。

4、优先级与服务类型

服务(8位):该字段定义上层协议对处理当前数据报所期望的服务质量,并对数据报按照重要性级别进行分配。前3位成为优先位,后面4位成为服务类型,最后1位没有定义。这些8位字段用于分配优先级、延迟、吞吐量以及可靠性。

5、总长度

总长度(16位):该字段定义整个IP数据报的字节长度,包括协议头部和数据,也就是上三层的总长度/IP包的总长度。其最大值为65535字节。

6、标识符

标识(16位):该字段包含一个整数,用于识别当前数据报。当数据报分段时,标识字段的值被复制到所有的分段之中。该字段由发送端分配帮助接收端集中数据报分段。

用人话来说,就是用这么一段值来区分原本是不同数据的数据段,值相同的即拆分自同一条数据。

7、标志

标志(3位):该字段由3位字段构成,其中最低位(MF)控制分段,存在下一个分段置为1,否则置0代表该分段是最后一个分段。中间位(DF)指出数据报是否可进行分段,如果为1则机器不能将该数据报进行分段。第三位即最高位保留不使用,值为0。
例如我们使用的 ping -f即会对此段的中间位产生影响。

8、段偏移量

也叫分段偏移(13位):该字段指出分段数据在源数据报中的相对位置,支持目标IP适当重建源数据。
也就是这个值决定了扔出去的分段的顺序。

如果朝疯狂发送这个数值不连续的数据包,目标机器就会不停的尝试重组。WINXP早期及之前版本,这个操作会一直重复进行,也就会导致CPU飚到100%。在以后的WIN版本中重组失败会丢弃数据包,但重组过程仍然会占用系统资源。这是一种DDOS攻击的形式。

9、TTL

生存时间(8位):该字段是一种计数器,在丢弃数据报的每个点值依次减1直至减少为0。这样确保数据报拥有有限的环路过程(即TTL),限制了数据报的寿命。

windows系统TTL一般为128
linux系统一般为1-128之间,如56,64

有了这个数值,路由环路就不会囤积数据包。
另外正常的实际通信中,TTL衰减的值远小于规定值。

10、协议

协议(8位):该字段指出在IP处理过程完成之后,有哪种上层协议接收导入数据报。

这个字段的值对接收方的网络层了解数据属于哪个协议很有帮助。
6代表TCP,17代表UDP

11、首部校验和

首部校验和(16位):该字段帮助确保IP协议头的完整性。由于某些协议头字段的改变,这就需要对每个点重新计算和检验。计算过程是先将校验和字段置为0,然后将整个头部每16位划分为一部分,将个部分相加,再将计算结果取反码,插入到校验和字段中。

12、源地址

源地址(32位):源主机IP地址。

该字段在IPv4数据报从源主机到目的主机传输期间必须保持不变。

13、目标地址

目标地址(32位):目标主机IP地址。

该字段在IPv4数据报从源主机到目的主机传输期间同样必须保持不变。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值