一、IP协议是什么?
IP协议是TCP/IP协议族的核心协议,也是socket网络编程的基础之一。
二、IP服务的特点
IP协议是TCP/IP协议族的基石,它为上层提供无状态、无连接、不可靠的服务
无状态:指IP通信双方不同步传输数据的状态信息,因此所有IP数据报的发送,传输,接收都是相互独立的。这种服务最大缺点是无法处理乱序和重复的IP数据报。优点是简单高效,和UDP协议与HTTP协议相同,都是无状态协议。
无连接:指IP通信双方都不长久的维持对方的任何信息。这表示上层协议每次发送数据,都需要明确指定对方的IP地址。
不可靠:指IP协议不能IP数据报能准确到达接收端,只是会尽最大努力。一旦发送失败,就通知上层协议,而不会试图重发。
IPv4头部结构
4位版本号:指定IP协议的版本,对于IPv4来说,其值为4,其它IPv4扩展版本则具有不同的版本号(如SIP协议和PIP协议)
4位头部长度:表示IP头部有多少个32bit字(4字节)。因为4位最大15,所以IP头部最长为60字节。
8位服务类型:3位优先级权字段(现已被忽略),4位TOS字段和1位保留字段(必须置0).4位TOS字段分别表示:最小延迟,最大吞吐量、最高可靠性和最小费用,其中最多1个能置为1。
16位总长度:指整个IP数据包的长度,字节为单位。最长65535字节,由于长度超过MTU的数据报将被分片传输,所以实际传输的长度没有达到最大值。
16位标识:唯一标识主机发送的每个数据报。初始值由系统随机生成,每发送一个数据报,其值加一。该值在数据报分片时被复制到每个分片中,因此同一个数据报的所有分片标识值都相同
3位标志:第一位保留,第二位表示禁止分片,如果设置了该位,IP数据报长度超过MTU将被丢弃,返回错误。第三位表示更多分片,除了最后一个分片,其它都要置它为1.
13位分片偏移:该分片相较于原始IP数据报开始处(仅指数据部分)的偏移。实际偏移值是该值左移3位得到。因此除了最后一个分片,每个分片的数据部分长度必须是8的整数倍。
8位生存时间:数据报到达目的地之前允许经过的路由器跳数。每经过一个路由,该值减一,为0时被丢弃。并返回TCMP错误报文。
8位协议:用于区分上层协议。ICMP为1,TCP为6,UDP为17。
16位头部校验和:由发送端填充,接收端对其使用CRC算法检验数据是否被损坏。
32位源端IP地址:标识数据报的发送端。在传输过程中保持不变
32位源目的端IP地址:标识数据报的接收端。在传输过程中保持不变
选项字段:可变长的可选信息,最多40字节。
可用的IP选项有:记录路由:将数据包经由的所有路由器IP填入该段。
时间戳:将数据报在每个路由器被转发时的时间填入该段。
松散源路由选择:指定路由器IP地址列表,数据报发送过程中必须经过其中所有路由器
严格源路由选择:类似上面,数据报只能经过被指定的路由器。
留言0