首页 > 代码库 > 网际协议版本4(IPv4)
网际协议版本4(IPv4)
IP是一种不可靠的无连接数据报协议-一种尽最大努力交付的服务,尽最大努力一词的意思是IP分组可能会损坏,丢失,失序或延迟到达,并且可能给网络带来拥塞。
网络层的分组称为数据报。是一个可变长度的分组。由首部和数据组成。首部的长度是20-60字节,
格式如下
|------20-65535字节------|
---------------|-------------|
首部(20-60) |数据 |
---------------|-------------|
具体首部格式如下
_____________________________________________________________
| 版本(4位) | HLEN(4位) | 服务类型(8位) | 总长度(16位) |
_____________________________________________________________|
|标识(16位) |标志(3位) | 分片偏移(13位) |
_____________________________________________________________|
生存时间(8位) |上层协议(8位) |首部检验和(16位) |
_____________________________________________________________|
| 源IP地址(32位) |
_____________________________________________________________|
| 目的IP地址(32位) |
_____________________________________________________________|
| 选项+填充(0-40个字节) |
_____________________________________________________________|
1:版本VER:这4位字段定义了IP协议的版本
2:首部长度HLEN:这4位字段定义了数据报首部的总长度,以4字节的字为单位计算,没有选项时,首部长度是20字节,且这个字段的值是5(5x4=20),当选项字段为最大值时,这个字段 的值是15
3:服务器类型:在最初设计IP首部时,这个字段称为服务类型(TOS),它指明了应当如何处理数据报,这个字段中有一部分用于定义数据报的优先级,剩下的定义了服务类型,
但是IETF改变了这个8位字段的解释,现在它定义了一组区分服务.前6位构成码点,最后俩位未使用.
a:当最右边3位全为0,对最左边三位的解释如同服务类型解释中的优先位一样.
b:当最右边3位并非全部为0时,这6位就定义了54(64-8)种服务,这些服务分为三类,第一类包含24中服务,第二类和第三类分别是16种
___________________________________________
类别 码点 指派机构
1 XXXXX0 因特网
2 XXXX11 本地
3 XXXX01 临时的或试验的
____________________________________________
总长度:16的总长度定义了以字节为单位的数据报总长度(首部+数据),要找出上层传送过来的数据长度,公式如下
数据长度=总长度-首部长度
数据字节数=这个字段的值-(HLEN*4)
因为总长度是16位的,因此IP数据报长度限制在65535(2^16-1)字节,其中首部占20-60字节
标识:用于分片
标志:用于分片
分片偏移:用于分片
生存时间:TTL,当这个值是0时,就丢弃这个数据报,防止数据报在回环里运输.
协议:这个8位字段定义了使用此IP层服务的高层协议,指出了数据报必须交付给哪个最终目的协议。如下
_______________________________________________________
值 协议
1 ICMP
2 IGMP
6 TCP
17 UDP
89 OSPF
________________________________________________________
检验和:16位只包含首部
源地址:32位
目的地址:32位
网际协议版本4(IPv4)