IPv4 header 分析
来源:互联网 发布:sql添加语句多条数据 编辑:程序博客网 时间:2024/06/05 01:51
IPv4 数据报的 header 格式如下:
下面解释一下每个字段的含义:
Version
IP 协议的版本号,4个bit。目前只支持版本4和版本6。由于 IPv4 的 header 格式和 IPv6 的不一样,所以 Version 字段放在 header 的最前面,根据这个值就能知道怎么解释后面的字段。
Header Length (IHL)
IP header 的长度,包括 IP Options的长度,但不包括所负载的数据长度。这个字段占4个bit,每一个bit表示4个字节(units of 32bits),这个字段最大值是0xFFFF (15),所以 IPv4 Header 最长占60个字节,去掉IP Header中固定的20个字节的长度,剩下可有40个字节的长度留给 IP Options。
Type of Service (TOS)
服务类型,占8个bit。这个字段标明这个数据报属于何种类型的应用,需要网络层上的路由器怎么处理。它关系到优先级和拥塞控制等,比如是要尽量低延迟的还是高吞吐型的。这个字段又分几个子字段,而且其间的组合和含义又被 IETF 改变过。
Total Length
整个IP数据报的长度,以字节为单位,包括 IP Header的长度和所负载的数据的长度,占16个bit。那一般情况下实际的所负载的数据的长度就是这个字段的值减去4倍的HeaderLength的值。当IP数据报的总长度小于链路层所规定的最小长度时,链路层协议就会自动填充数据报的长度(但不会改变TotalLength这个字段),所以通过这个字段,上层协议就可以知道这个IP数据报中实际有效的数据量了。IP数据报所负载的数据长度最小为0,最大为64K字节。
Identification, DF (Don't Fragment), MF (More Fragments), Fragment Offset
这几个字段都是在 IP 分片中会用到。
Time To Live (TTL)
IP数据报在网络上存活的时间,其实是数据报在网络上路由器间转发的次数。每个路由器在接受到一个数据报时都会把它的TTL值减1,当TTL值为0时就会被路由器丢弃,并会向IP数据报中 source IP 发送一个 ICMP 的错误信息。TTL占8个bit,最大跳数为255。
Protocol
传输层协议字段,这个字段表明这个IP数据报是使用 L4 中哪一种协议的,常见的值有 IPPROTO_ICMP = 1,IPPROTO_TCP = 6, IPPROTO_UDP = 17 等。
Header Checksum
IP数据报头的校验码,不包含其所负载的数据的校验,那是 L4 的事。
Source Address, Destination Address
IP数据报的发送和接受IP地址
Options
IP数据报选项字段,长度介于0到40字节之间。
- IPv4 header 分析
- IPv4 header checksum算法
- IPv4协议二进制实例分析
- IP报文分析(IPV4)
- IPv4
- IPv4
- ELF Section Header 分析
- ELF Header 分析
- net/ipv4/route.c文件分析
- Linux IPv4代码分析系列(1)
- Linux IPv4代码分析系列(2)
- MAC、IPv4、UDP、TCP包结构分析
- aac mpeg2-adts header 分析
- mpeg4 vol header文件格式分析
- mpeg4 vol header文件格式分析
- aac mpeg2-adts header 分析
- Bitmap header的具体分析
- TS流分析-packet header
- 敏捷软件开发模型--SCRUM
- 2009-02-21读书记录:《代码大全》(第一版)第二十一章——项目大小如何影响创建
- 冒傻气的微软 --- 发泄贴
- C中什么时候使用static?
- 文件Crc32校验追加以及文件Crc32校验(0xEDB88320)
- IPv4 header 分析
- EXTJS动态树的实现
- DELPHI读取CPU的序列号
- 电子商务成功案例雅虎(Yahoo)帝国成功方法分析
- 网页右下脚信息提示
- SSH+dwr框架搭建.doc
- 股票脱盲
- Experience the computer is kept in repair
- 网友用PS工具让男女影星"角色互换"(组图)