TCP 传输首部是 IP首部,所以把IP首部格式 拿过来研究下,看IP首部解码过程;
 
来源:51CTO博客,地址:http://lihuan.blog.51cto.com/4391550/799911 
 
原文如下:
 

IP包首部格式

IPv4首部一般是20字节长。在以太网帧中,IPv4包首部紧跟着以太网帧首部,同时以太网帧首部中的协议类型值设置为080016。 IPv4提供不同,大部分是很少用的选项,使得IPv4包首部最长可扩展到60字节(总是4个字节4个字节的扩展)

0

4

8

12

16

19

24

31

版本

首部长度

服务类型

长度

认证

标志

段偏移量

TTL

协议

校验和

源IP地址

目的IP地址

选项 ...

IP包头字段说明

版本:4位,指定IP协议的版本号。

包 头长度(IHL):4位,IP协议包头的长度,指明IPv4协议包头长度的字节数包含多少个32位。由于IPv4的包头可能包含可变数量的可选项,所以这 个字段可以用来确定IPv4数据报中数据部分的偏移位置。IPv4包头的最小长度是20个字节,因此IHL这个字段的最小值用十进制表示就是5 (5x4 = 20字节)。就是说,它表示的是包头的总字节数是4字节的倍数。

服务类型:定义IP协议包的处理方法,它包含如下子字段

过程字段:3位,设置了数据包的重要性,取值越大数据越重要,取值范围为:0(正常)~ 7(网络控制)

延迟字段:1位,取值:0(正常)、1(期特低的延迟)

流量字段:1位,取值:0(正常)、1(期特高的流量)

可靠性字段:1位,取值:0(正常)、1(期特高的可靠性)

成本字段:1位,取值:0(正常)、1(期特最小成本)

未使用:1位

长度:IP包的总长

认证:

标志:是一个3位的控制字段,包含:

保留位:1位

不分段位:1位,取值:0(允许数据报分段)、1(数据报不能分段)

更多段位:1位,取值:0(数据包后面没有包,该包为最后的包)、1(数据包后面有更多的包)

段偏移量:当数据分组时,它和更多段位(MF, More fragments)进行连接,帮助目的主机将分段的包组合。

TTL:表示数据包在网络上生存多久,每通过一个路由器该值减一,为0时将被路由器丢弃。

协议:8位,这个字段定义了IP数据报的数据部分使用的协议类型。常用的协议及其十进制数值包括ICMP(1)、TCP(6)、UDP(17)。

校验和:16位,是IPv4数据报包头的校验和。

源地址(Source Address,SA)

发送IP数据包的IP地址,占32位。

目的地址(Destination Address)

接收IP数据包的IP地址,也占32位。

选项(Options)+填充(Padding)

这两个选项较少使用,只有某些特殊的封包需要特定的控制才会利用到。共32位。这些选项通常包括:

? 安全和处理限制:用于军事领域

? 记录路径:让每个路由器都记下它的IP地址

? 时间戳:让每个路由器都记下它的IP地址和时间

? 宽松的源站选路:为数据报指定一系列必须经过的IP地址

? 严格的源站选路:与宽松的源站选路类似,但是要求只能经过指定的这些地址,不能经过其他的地址。

以上这些选项很少被使用,而且并非所有的主机和路由器都支持这些选项。选项字段一直都是以32位作为界限,在必要的时候插入值为0的填充字节。这样就保证IP首部始终是32位的整数倍(这是首部长度字段所要求的)。

从以上IP包头格式可以看出,IP协议包头大小也有两种:当没有“选项”这个字段时,为160位,20个字节;当有“选项”字段时为192位,24个字节。它与TCP协议包头大小是一样的。

IP首部格式[转载]的更多相关文章

  1. IP数据报首部格式

    IP协议提供不可靠.无连接的数据报传送服务. 不可靠:尽力而为地传输,不保证IP数据报能成功到达目的地. 无连接:每一个数据报之间相互独立地进行路由选择,可不按发送顺序接收. IP首部格式例如以下: ...

  2. IP 协议首部格式与其配套使用的四个协议(ARP,RARP,ICMP,IGMP)

    目录 IP协议首部格式地址解析协议 ARP逆向地址解析协议 RARP网际控制报文协议 ICMP网际组管理协议IGMP IP 数据报首部 IP数据报首部格式: 最高位在左边,记为0 bit:最低位在右边 ...

  3. (网络层)IP 协议首部格式与其配套使用的四个协议(ARP,RARP,ICMP,IGMP)

    目录 IP协议首部格式地址解析协议 ARP逆向地址解析协议 RARP网际控制报文协议 ICMP网际组管理协议IGMP IP 数据报首部 IP数据报首部格式: 最高位在左边,记为0 bit:最低位在右边 ...

  4. 【转载】IP首部、TCP首部、UDP首部

    [转载自]http://blog.csdn.net/hjffly/article/details/7959889 IP首部 版本:L3协议版本号,IPv4或IPv6 首部长度:单位为4字节 协议:L4 ...

  5. 网络层 IP 协议首部格式与其配套使用的四个协议(ARP,RARP,ICMP,IGMP)

    目录 IP协议首部格式地址解析协议 ARP逆向地址解析协议 RARP网际控制报文协议 ICMP网际组管理协议IGMP IP 数据报首部 IP数据报首部格式: 最高位在左边,记为0 bit:最低位在右边 ...

  6. TCP/IP笔记——TCP特点、首部格式、滑动窗口

    这次总结一下TCP相关的知识. TCP主要特点 面向连接:在通信前必须建立连接(只是逻辑上存在,而不是物理连接) 只能有两个端点:即只能一对一通信(所以通常p2p是用UDP实现的) 提供可靠交付服务: ...

  7. 以太网帧格式、IP数据报格式、TCP段格式+UDP段格式 详解

    转载:http://www.cnblogs.com/lifan3a/articles/6649970.html 以太网帧格式.IP数据报格式.TCP段格式+UDP段格式 详解   1.ISO开放系统有 ...

  8. 计算机网络(3)-----IP数据报格式

    IP数据报(IP Datagram) 格式 解析 (1)版本 占4位,指IP协议的版本.通信双方使用的IP协议版本必须一致.目前广泛使用的IP协议版本号为4(即IPv4). (2)首部长度 占4位,可 ...

  9. 详解TCP和UDP数据段的首部格式

    TCP数据段的首部格式: 源端口号(16) 目的端口号(16) 序列号(32) 确认应答号(32) 数据偏移(4) 保留(6) 代码位(6) 窗口(16) 校验和(16) 紧急指针 选项(长度可变) ...

随机推荐

  1. JQuery实现密码有短暂的显示过程和实现 input hint效果

    目录: 一.实现目的 二.问题思考 三.解决办法 1.输入用户名 2.输入密码短暂显示 一.实现目的 这几天做项目的时候,客户要求在文本框输入密码的时候,要求密码有短暂的显示过程,如下图: 二.问题思 ...

  2. Firebug Console Panel 控制台详解【转载+整理】

    本文内容 信息显示 信息显示的占位符 console.group 和 console.groupEnd 分组显示 console.dir console.dirxml console.assert c ...

  3. SDE操作的许可问题

    ArcGIS二次开发和ArcGIS桌面应用中,许可是一个老生常谈的问题.以前也小结过一些经验.参考: http://www.cnblogs.com/liweis/p/4185311.html 问题描述 ...

  4. ZH奶酪:哈工大LTP云平台标记含义及性能

    从官网搬过来的 囧rz 哈工大讯飞语言云 由哈工大 和科大讯飞 联合研发的中文自然语言处理云服务平台.结合了哈工大“语言技术平台——LTP” 高效.精准的自然语言处理核心技术和讯飞公司在全国性大规模云 ...

  5. Ant详解之-path、classpath和fileset

    转自:http://www.cnblogs.com/itech/archive/2011/11/01/2231206.html 一 .<path/> 和 <classpath/> ...

  6. C++ 第七课 标准 C I/O

    clearerr() 清除错误 fclose() 关闭一个文件 feof() 如果到达文件尾(end-of-file)返回"True"(真) ferror() 检查一个文件错误 f ...

  7. 两个自定义对象List列表取交集(intersection)

    public static void main(String[] args) { List<Fpxx> list = ListUtils.intersection(getFpList1() ...

  8. updateFilter

    $.fn.updateFilter = function(filterType, paramVal) { // filter="DATE|GREATERTHANEQUALS|LESSTHAN ...

  9. 前台登录和Token信息交互流程

    原来总是对前台登录,怎么利用token有点迷惑,后面仔细的想了一遍,把自己简单的想法记录下来,留作记录,以便后续优化 各路大神有什么看法也可以说,能更完善整个流程. 不说了,暴力的上图: 该图是出自c ...

  10. Atlas系列一:Atlas功能特点FAQ

    1:Atlas是否支持多字符集? 支持,可以在test.cnf中指定. #默认字符集,设置该项后客户端不再需要执行SET NAMES语句charset = utf8 2:Atlas是否支持事物操作? ...