IP头的结构
版本(4位) |
头长度(4位) |
服务类型(8位) |
封包总长度(16位) |
封包标识(16位) |
标志(3位) |
片断偏移地址(13位) |
|
存活时间(8位) |
协议(8位) |
校验和(16位) |
|
来源IP地址(32位) |
|||
目的IP地址(32位) |
|||
选项(可选) |
填充(可选) |
||
数据 |
(1)字节和数字的存储顺序是从右到左,依次是从低位到高位,而网络存储顺序是从左到右,依次从低位到高位。
(2)版本:占第一个字节的高四位。头长度:占第一个字节的低四位。
(3)服务类型:前3位为优先字段权,现在已经被忽略。接着4位用来表示最小延迟、最大吞吐量、最高可靠性和最小费用。
(4)封包总长度:整个IP报的长度,单位为字节。
(5)存活时间:就是封包的生存时间。通常用通过的路由器的个数来衡量,比如初始值设置为32,则每通过一个路由器处理就会被减一,当这个值为0的时候就会丢掉这个包,并用ICMP消息通知源主机。
(6)协议:定义了数据的协议,分别为:TCP、UDP、ICMP和IGMP。定义为:
#define PROTOCOL_TCP 0x06
#define PROTOCOL_UDP 0x11
#define PROTOCOL_ICMP 0x06
#define PROTOCOL_IGMP 0x06
(7)检验和:校验的首先将该字段设置为0,然后将IP头的每16位进行二进制取反求和,将结果保存在校验和字段。
(8)来源IP地址:将IP地址看作是32位数值则需要将网络字节顺序转化位主机字节顺序。转化的方法是:将每4个字节首尾互换,将2、3字节互换。
(9)目的IP地址:转换方法和来源IP地址一样。
在网络协议中,IP是面向非连接的,所谓的非连接就是传递数据的时候,不检测网络是否连通。所以是不可靠的数据报协议,IP协议主要负责在主机之间寻址和选择数据包路由。
原文地址:https://www.cnblogs.com/classics/p/10417386.html
时间: 2024-11-08 01:46:18