IP头部

ip报头

32位

Version(版本) Header length(包头长度) Type service(服务类型) Total length(总长度)
Identifier(标识符) Flag (标记字段) Fragment offset(分段偏移)
Time to live (TTL 生存时间) Protocol(协议) Header checksum(报头校验和)
Source address(源地址)
Destination address(目标地址)
Options(可选项)
Padding (填充)

版本(Version:它标识了数据包IP版本号。表形式为:4位字段的值设置为二进制的0100表示IP版本4(IPv4).设置为0110表示IP版本6(IPv6)

Header length(包头长度):字段长度为4位,它表示32位字长的IP报头长度,设计报头长度的原因是数据包可选字段大小会发生变化。IP报头最小20个八位组,最大可以扩展到60个八位组。这个字段也可以描述32位字的组大长度。

Type service(服务类型):字段长度为8位,它用来指定特殊的数据包处理方式。服务类型字段实际上被划分为2个子字段:优先权和Tos。优先权用来设置数据包的优先级。Tos允许按照吞吐量、时延、可靠性和费用方式选择传输服务。Tos通常不用所有位都被设置为0.在OSPF路由协议的早期规范中还称为Tos路由选择。优先级偶尔在服务质量(QoS)应用中使用。

下图简单的说明了8个Tos位。

但是随着网络的发展 ToS字段已经作为区分服务架构的一部分被重新定义了。(diffserv)

8位

区分服务代码点(DSCP)

ECN

开始的6个位(0-5)现在构成了区分代码点(DSCP),利用这6位我们可以使用任意数值或根据在区分服务体系结构中预先定义的服务类别,最多可以定义64个不同服务类别,并可以整理到PHB中。

PHB理解:在Diffser中,能够在一台路由器定义服务分类,将数据包归类到这些分类中去。路由器可以根据它们的分类使用不同的优先级对数据包进行排序和转发。每一个排序和处理被称为Per-Hop behavior(逐跳行为PHB)是由Diffse定义的这个机制本身称为区分服务类别(Cos).

显示拥塞通知(Explicit Congestion Notification ECN在上图中显示拥塞通知是某些路由器支持显示拥塞通知的。当路由器支持该特性时,这些位可用于拥塞信号(ECN=11)

Total length(总长度):主要表示包头和数据的数据包长度。数据包总长度字段的长度为16位,以8位为单位计数。其中包括IP报头。接收者用IP数据包总长度减去IP报头长度,就可以确定数据包有效载荷大小。16位长的二进制数用十进制表示最大可以为65535,所以IP数据包最大长度是65535。

Identifier(标识符):字段长度为16位,通常与标记字段和分段偏移一起用于数据包的分段。也就是当数据包原始长度超过数据包所要经过的数据链路的最大传输单元(MTU)那么分段必须将数据包分段为更小的数据包。

Flag (标记字段):长度为3位其中第1位没有使用。

第2位是不分段(DF),当DF位置被置为1时,路由器将不能对数据包进行分段处理。如果数据包因为不能被分段而不能转发,那么路由器将丢弃数据包并向数据发送方发送错误信息。

第3位表示更多分段(MF)      当路由器对数据包分段时除了最后一个分段的MF职位0 ,其它分段的MF位全设置为1,当接收者收到MF为0的分段停止分段。

Fragment offset(分段偏移):字段长度为13位,以8个八位组为单位。用于指明分段起始点相对于根头起始点的偏移量。由于分段经过网络肯定会发生错序,所以分段偏移字段可以使接收者按正确的顺序重组数据包。

Time to live (TTL 生存时间):字段长度为8位,在最初创建数据包时TTL被设定某个特定的值,当数据包逐个经过路由器时,每台路由器都会降低TTL的数值,当TTL值为0时,路由器将会丢弃这个数据包并向数据发送源发送错误信息  这样就可以防止数据包无休止的传下去。TTL实际上是表示跳数。常见的是15和32 缺省值是64. tracert这样的命令就是利用TTL字段。

Protocol(协议):字段长度为8位,他给出了主机到主机的层或传输层协议的“地址”或协议号。协议字段指定了数据包中信息的类型。

协议号 表示
1 ICMP(Internet消息控制协议)
2 IGMP(Internet组管理协议)
4 被IP协议封装的IP
6 传输控制协议(TCP)
17 用户数据报协议(UDP)
45 域间路由选择协议(IDRP)
46 资源预留协议(RSVP)
47 通用路由选择封装(GRE)
54 NBMA下一条解析协议(NHRP)
88 Cisco internet网关路由选择协议(IGRP)
89 开放最短路径优先(OSPF)

常见协议号

Header checksum(报头校验和):它是针对IP报头的纠错字段。校验和不计算被封装的数据。

UDP、TCP和ICMP都各有自己的校验和。报头校验和字段包含一个16位二进制补码和。如果数据包在传输中没有发生错误,那么结果应该16位全为1. 数据包每经过1台路由器,每台路由器都将重新计算校验和。

Sourceaddress(源地址):指数据包发送源ip地址。

Destination address(目标地址):数据包将要到达的目的地地址。

Options(可选项):是一个长度可变的字段。它是可选的。

可选项如下:

松散源路由选择(loose source routing它给出了一连串路由器接口的IP地址序列。数据包必须沿着IP地址序列传送,但是允许相继的2个地址之间可跳过多台路由器。

严格源路由选择(strict source routing也给出了一连串路由器接口的IP地址序列,不同于松散源路由选择的是,数据包必须按照路由转发。如果下一条不在路由表,就将会发生错误。

记录路由(Record Router当数据包离开时为每台路由器提供空间记录数据包的出站接口地址。

时间戳(timestamp:时间戳相当于路由记录选项,这样数据包不仅可以知道自己到过那里。而且还可以记录到达的时间。

填充(padding)在可选项后面添加0来补足32位,主要是保证报头是32位的倍数。

时间: 2024-11-05 11:53:37

IP头部的相关文章

tcp/ip详解-ip头部选项字段

IP头部的选项字段 作用:用于网络调试和测试 IP首部的可变部分就是一个可选字段.选项字段用来支持排错.测量以及安全等措施,内容很丰富.此字段的长度可变,从1个字节到40个字节不等,取决于所选择的项目.某些选项项目只需要1个字节,它只包括1个字节的选项代码.但还有些选项需要多个字节,这些选项一个个拼接起来,中间不需要有分隔符,最后用全0的填充字段补齐成为4字节的整数倍. 增加首部的可变部分是为了增加IP数据报的功能,但这同时也使得IP数据报的首部长度成为可变的.这就增加了每一个路由器处理数据报的

TCP/IP头部详解

在网上找了很多有关tcp/ip头部解析的资料,都是类似于下面的结构 抽象出图文是这种结构,但是在底层中数据到底是怎么传输的呢?没有答案,在深入学习之后,总结出数据传输的方式 IP数据包头部格式: 上面是在数据到达传输层对数据进行IP头部封装的数据 TCP协议 TCP协议是传输协议,为应用层提供数据服务,和UDP不同,TCP提供可靠的面向连接服务,关于TCP头部数据格式的说明 跟IP头部差不多,基本长度为20个字节,基本介绍到此为止,详解在网上多如牛毛,下面用两台pc建立连接为例说明: 主机1:I

TCP/IP协议头部结构体

http://blog.csdn.net/ithomer/article/details/5662383 IP和TCP都20字节,IP存放地址,TCP存放端口.TCP还存放一些用于TCP特定协议的内容,序列号.确认号 // i386 is little_endian. #ifndef LITTLE_ENDIAN #define LITTLE_ENDIAN (1) //BYTE ORDER #else #error Redefine LITTLE_ORDER #endif //Mac头部,总长度1

TCP/IP数据包格式详解-包括数据链路层的头部

图中括号中的数字代表的是当前域所占的空间大小,单位是bit位. 黄色的是数据链路层的头部,一共14字节 绿色的部分是IP头部,一般是20字节 紫色部分是TCP头部,一般是20字节 最内部的是数据包内容 黄色部分:链路层 目的MAC:当前step目的主机的mac地址 源MAC:当前step的源主机的mac地址 类型:指定网络层所用的协议类型,通常是IP协议,0x0800 绿色部分:网络层,这里用的是IP包头格式 版本:记录数据报属于哪一个版本的协议,如IPv4或IPv6 首部长度:指明IP头部长度

网络中TCP、IP、MAC、UDP的头部格式信息

TCP头部格式 字段名称 长度(比特) 含义 TCP头部(20字节~) 发送方端口号 16 发送网络包的程序的端口号 接收方端口号 16 网络包的接收方程序的端口号 序号(发送数据的顺序编号) 32 发送方告知接收方该网络包发送的数据相当于所有发送数据的第几个字节 ACK号(接收数据的顺序编号) 32 接收方告知发送方接收方已经收到了所有数据的第几个字节.其中ACK是acknowledge的缩写 数据偏移量 4 表示数据部分的起始位置,也可以认为表示头部的长度 保留 6 该字段为保留,现在未使用

TCP/IP报文头部结构

IP协议 IP协议是TCP/IP协议族的动力,它为上层协议提供无状态.无连接.不可靠的服务. 优点:简单,高效. IPv4首部一般是20字节长.在以太网帧中,IPv4包首部紧跟着以太网帧首部,同时以太网帧首部中的协议类型值设置为0800无状态:IP通信双方不同步传输数据的状态信息,所有的IP数据报的传输都是独立的.所以容易发生重复和乱序的情况并且IP层不予处理. 然后将这些乱序的交给上层传输层(TCP/UDP等)来处理,将其处理成有序的,正确的.再交给应用层. 不可靠:IP协议不能保证IP数据报

TCP/IP协议--TIME_WAIT状态存在的原因

1. 实际问题         初步查看发现,无法对外新建TCP连接时,线上服务器存在大量处于TIME_WAIT状态的TCP连接(最多的一次为单机10w+,其中引起报警的那个模块产生的TIME_WAIT约2w),导致其无法跟下游模块建立新TCP连接. TIME_WAIT涉及到TCP释放连接过程中的状态迁移,也涉及到具体的socket api对TCP状态的影响,下面开始逐步介绍这些概念. 2. TCP状态迁移        面向连接的TCP协议要求每次peer间通信前建立一条TCP连接,该连接可抽

TCP/IP详解 笔记十三

TCP协议(一) 概述 特点 1,  面向连接可靠的字节流服务 2,  只有两方通信,不能用于广播或多播 3,  应用数据被TCP分隔为最合适发送的数据段,传给IP协议栈 4,  发送端并启动定时器,超时重传 5,  接收端需要发送确认 6,  检验和错误的数据包将被丢弃,并不确认收到此数据包(希望超时重传) 7,  重新排序,因为TCP数据包是IP报文的数据,而ip协议不保证数据按顺序到达,所以需要重新排序. 8,  同理,ip包会发生重复,所以TCP需要排重. 9,  流控制,TCP的每一方

TCP/IP中MSL详解

MSL是Maximum Segment Lifetime的英文缩写,可译为"最长报文段寿命",它是任何报文在网络上存在的最长的最长时间,超过这个时间报文将被丢弃.我们都知道IP头部中有个TTL字段,TTL是time to live的缩写,可译为"生存时间",这个生存时间是由源主机设置设置初始值但不是但不是存在的具体时间,而是一个IP数据报可以经过的最大路由数,每经过一个路由器,它的值就减1,当此值为0则数据报被丢弃,同时发送ICMP报文通知源主机.RFC793中规定