网络基础————IP协议
IP协议的基本属性:
1、什么是IP协议?
IP协议是网络层协议,是为了在分组交换计算机通信网络的互联系统中使用而设计的,它为网络数据传输和网络互联提供最基本的服务。IP协议使用以下4个主要的机制来提供服务:
- 服务时间:用来指示要求的服务质量。
- 生存时间:数据包生存时间的上限。
- 选项:提供在某些情况下需要或有用的控制功能。
- 首部校验和:提供对IP首部内容进行出错检测功能。
网络层通过IP地址实现了物理地址的统一,通过IP数据报(IP协议所传输的分组)实现了数据帧的统一。
简单来说,IP协议就是将不同的硬件结构、不同操作系统的计算机发出的数据进行规范化,方便与其他网络里的其他主机进行通信。(在我的理解,IP协议就相当于我们中国的普通话,让不同地区的人交流无障碍)
2、IP协议的基本功能:
- 寻址: IP协议根据数据报首部中包括的目的地址将数据包传送到目的节点,这就涉及传输路径的选择,及路由功能。IP协议通过IP地址来实现路由。
- 分片: IP协议还提供对数据大小的分片和重组,以适应不同网络对数据包大小的限制。
3、IP协议的特征:
无连接的、不可靠的、点对点的协议,只能尽力传送数据,不能保证数据到达。
IP数据报的报头
IPv4报头
- 版本号: 占4位,标识IP协议版本信息。IPv4版本号位4(二进制0100),IPv6版本号为6。
- 首部长度: 占4位,以32位字长(4字节)为单位标识IP首部全部长度。用来确定首部和数据的分界点。
- 服务类型: 占8位,规定对本数据报的处理方式。前3位定义优先级(表示数据报的重要程度),紧接着的后4位定义服务类型(表示数据报在传输过程中所希望得到的服务),最后1位保留并设置为0。
- 总长度: 占16位,指定包括首部和数据在内的IP数据报总长度,单位为字节。
- 标识: 占16位,用于为数据分片的数据单元提供唯一表示。
- 标志: 占3位,用于表示该IP数据报是否允许分片以及是否是最后的一片。
- 分片偏移: 占13位,描述该数据报分片在它所属的原始数据报数据区中的偏移量,为目的主机进行各分片的重组提供顺序依据。
- 生存时间: 占8位,数据报在网络中的生存时间。
- 协议: 确定发送时数据报的上一层协议,指明被IP数据报封装的协议。
- 首部校验和: 占16位,由发送端填充,接收端对其使用CRC算法以检验IP数据报头部在传输过程中是否损坏。
- 源地址: 占32位,指明源主机的IP地址。
- 目的地址: 占32位,指明目的主机的IP地址。
- 选项: 可变长字段,最多包含40字节。用于控制数据在网络中的传输路径、记录数据报经过的路由器以及获取数据报在途中经过的路由器的时间戳。
数据的分片与重组
1、最大传输单元:
底层物理网络能够封装的最大传输单元称为该网络的最大传输单元(MTU),当数据报封装成帧时,数据报的总长度必须小于MTU。
对于不同的物理网络协议,MTU的值是不同的。通常网络的速度越高,MTU也就越大。
数据报如何适应不同网络的MTU,保证数据的安全传输呢?
IP数据报在从源节点到目数据得的节点的传输过程中,往往要经过多个不同的网络,而不同的物理网络存在着差异,它们的最大传输单元MTU可能不同,将一个数据报封装在具有较大的MTU的物理网络帧中发送时,可能在穿越较小MTU的网络时无法正常传输。因此在TCP/IP协议中,将数据报现以源节点所在网络的MTU进行封装,传输过程中再根据需要对数据报进行动态分片。
2、数据报分片:
- 分片就是将一个数据报划分成若干更小的单元,以适应底层物理网络的MTU。
- 数据分片时,每个分片都会得到一个报头,分片报头的大部分内容和原数据报报头相同,不同的主要是标志、总长度和分片偏移3个字段。
- 分片可以带也可以不带原数据报的选项
- 不管是否进行分片,校验和的值总是要重新计算。
分片必须满足的两个条件:
- 各分片尽可能大,但必须能够被帧所封装;
- 分片中数据的大小必须为8字节的整数倍,否则IP无法表达其偏移量。
3、分片的重组:
-
同一数据报各个分片到达目的地,必须被重组为一个完整的数据报。目的主机在分片重组时,会采用一组重组定时器,当重组定时器超时仍未完成重组(由于某些分片没有及时到达目的主机),源主机的网络层则丢弃该数据报,并产生一个超时错误,报告给源主机。
-
IP协议主要依据数据报首部中的标识、标志和分片偏移字段进行分片重组。同一标识的分片归并到一个数据报,重组的分片依据分片偏移量的顺序排序。
-
分片可以在源主机或传输路径上的任何一台路由器上进行,但分片的重组只能在目的主机上进行。