以太网数据包格式
IP数据报格式

IP数据报格式TCP/IP协议定义了一个在因特网上传输的包,称为IP 数据报(IP Datagram)。
这是一个与硬件无关的虚拟包, 由首部和数据两部分组成,其格式如图所示。
首部的前一部分是固定长度,共20字节,是所有IP数据报必须具有的。
在首部的固定部分的后面是一些可选字段,其长度是可变的。
首部中的源地址和目的地址都是IP协议地址1、IP数据报首部的固定部分中的各字段(1)版本占4位,指IP协议的版本。
通信双方使用的IP 协议版本必须一致。
目前广泛使用的IP协议版本号为4(即IPv4)。
(2)首部长度占4位,可表示的最大十进制数值是15。
请注意,这个字段所表示数的单位是32位字长(1个32位字长是4字节),因此,当IP的首部长度为1111时(即十进制的15),首部长度就达到60字节。
当IP分组的首部长度不是4字节的整数倍时,必须利用最后的填充字段加以填充。
因此数据部分永远在4字节的整数倍开始,这样在实现IP 协议时较为方便。
首部长度限制为60 字节的缺点是有时可能不够用。
但这样做是希望用户尽量减少开销。
最常用的首部长度就是20字节(即首部长度为0101),这时不使用任何选项。
(#我们一般看到的版本和首部长度两个字段是十六进制45,就是版本号version=4,headlength=5,也就是首部长度是60个字节)(3)区分服务占8位,用来获得更好的服务。
这个字段在旧标准中叫做服务类型,但实际上一直没有被使用过。
1998年IETF把这个字段改名为区分服务DS(Differentiated Services)。
只有在使用区分服务时,这个字段才起作用。
(4)总长度总长度指首部和数据之和的长度,单位为字节。
总长度字段为16位,因此数据报的最大长度为216-1=65535字节。
#可以看这个以太网frame总长为336字节,而IP数据包Total length=322,336-322=14正好是Ethernet包头的长度,所以就可以看出这IP数据包总长度一值就是除去Ethernet头的剩余长度,也就是IP包头加数据的长度。
以太帧封装格式

以太帧封装格式一、概述以太帧封装格式是以太网数据包的基本格式,它定义了数据包中各个字段的含义和顺序。
以太帧封装格式被广泛应用于局域网和广域网中,是网络通信中最常用的协议之一。
二、以太帧封装格式的组成以太帧封装格式由以下几个部分组成:1. 前导码:7字节的连续1(11111111)组成,用于同步接收端时钟。
2. 目标MAC地址:6字节,表示数据包要传输到的目标设备的MAC 地址。
3. 源MAC地址:6字节,表示发送数据包的设备的MAC地址。
4. 类型/长度字段:2字节,表示后面数据部分的类型或长度。
当值小于等于1500时,表示长度;当值大于1500时,表示类型。
5. 数据部分:46-1500字节之间。
6. CRC校验码:4字节,用于检查数据传输过程中是否出现错误。
三、各字段含义详解1. MAC地址:MAC地址是一个48位长的二进制数。
前24位为厂商识别码(OUI),后24位为该厂商所生产设备的唯一标识符。
在局域网中,每个设备都必须拥有唯一的MAC地址,以便于数据包的传输和接收。
2. 类型/长度字段:当类型字段为0800时,表示数据部分是IP数据报;当类型字段为0806时,表示数据部分是ARP请求或响应。
长度字段表示数据部分的长度,最大为1500字节。
3. 数据部分:数据部分是以太帧中实际要传输的信息。
根据不同的协议,数据部分可以包含不同的内容。
例如,在IP协议中,数据部分包含IP头和应用层协议的数据;在ARP协议中,数据部分包含ARP请求或响应信息。
四、以太帧封装格式与网络通信以太帧封装格式是网络通信中最常用的协议之一。
它被广泛应用于局域网和广域网中,可以实现设备之间的快速、可靠地通信。
在网络通信过程中,发送端将要传输的信息按照以太帧封装格式组织成一个完整的数据包,并通过物理层将其发送出去。
接收端接收到该数据包后,会按照相同的方式解析出其中各个字段,并进行相应处理。
五、总结以太帧封装格式是网络通信中最常用的协议之一。
以太网协议——精选推荐

1.1 以太网协议——以太网协议(用于10MBPS的以太网,以下所说的以太网均指10M以太网,而不是100M,1000M的以太网)——以太网协议有两种,一种是IEEE802.2/IEEE802.3,还有一种是以太网的封装格式。
——现代的操作系统均能同时支持这两种类型的协议格式。
因此只需要了解其中的一种就够了,特别是对单片机来说,不可能支持太多的协议格式。
——以太网的物理传输帧:(仅介绍第二种格式)——PR:同步位,用于收发双方的时钟同步,同时也指明了传输的速率(10M和100M的时钟频率不一样,所以100M网卡可以兼容10M网卡),是56位的二进制数101010101010..... ——SD: 分隔位,表示下面跟着的是真正的数据,而不是同步时钟,为8位的10101011,跟同步位不同的是最后2位是11而不是10.——DA:目的地址,以太网的地址为48位(6个字节)二进制地址,表明该帧传输给哪个网卡.如果为FFFFFFFFFFFF,则是广播地址,广播地址的数据可以被任何网卡接收到.——SA:源地址,48位,表明该帧的数据是哪个网卡发的,即发送端的网卡地址,同样是6个字节.----TYPE:类型字段,表明该帧的数据是什么类型的数据,不同的协议的类型字段不同。
如:0800H 表示数据为IP包,0806H 表示数据为ARP包,814CH是SNMP包,8137H为IPX/SPX 包,(小于0600H的值是用于IEEE802的,表示数据包的长度。
)----DATA:数据段,该段数据不能超过1500字节。
因为以太网规定整个传输包的最大长度不能超过1514字节。
(14字节为DA,SA,TYPE)----PAD:填充位。
由于以太网帧传输的数据包最小不能小于60字节, 除去(DA,SA,TYPE 14字节),还必须传输46字节的数据,当数据段的数据不足46字节时,后面补000000.....(当然也可以补其它值)----FCS:32位数据校验位.为32位的CRC校验,该校验由网卡自动计算,自动生成,自动校验,自动在数据段后面填入.对于数据的校验算法,我们无需了解.----事实上,PR,SD,PAD,FCS这几个数据段我们不用理它 ,它是由网卡自动产生的,我们要理的是DA,SA,TYPE,DATA四个段的内容.----所有数据位的传输由低位开始(但传输的位流是用曼彻斯特编码的)----以太网的冲突退避算法就不介绍了,它是由硬件自动执行的.DA+SA+TYPE+DATA+PAD最小为60字节,最大为1514字节.----以太网卡可以接收三种地址的数据,一个是广播地位,一个是多播地址(我们用不上),一个是它自已的地址.但网卡也可以设置为接收任何数据包(用于网络分析和监控).----任何两个网卡的物理地址都是不一样的,是世界上唯一的,网卡地址由专门机构分配.不同厂家使用不同地址段,同一厂家的任何两个网卡的地址也是唯一的.根据网卡的地址段(网卡地址的前三个字节),可以知道网卡的生产厂家.有些网卡的地址也可以由用户去设定,但一般不需要.1.2 ISA总线接口定义ISA总线A侧和B侧引脚分配及功能说明1.3 数据链路层(RTL8019驱动)下面介绍系统中数据链路层的实现。
EthernetII和802.3包头的区别

Ethernet的帧格式和结构概述(2008-10-15 15:59:48)用过NetXray之类的抓包软件的人,可能经常会被一些不同的Frame Header搞糊涂,为何用的Frame 的Header 是这样的,而另外的又不一样。
这是因为在Ethernet 中存在几种不同的帧格式,下面我就简单介绍一下几种不同的帧格式及他们的差异。
一.Ethernet帧格式的发展1980 DEC,Intel,Xerox制订了Ethernet I的标准1982 DEC,Intel,Xerox又制订了Ehternet II的标准1982 IEEE开始研究Ethernet的国际标准802.31983 迫不及待的Novell基于IEEE的802.3的原始版开发了专用的Ethernet帧格式1985 IEEE推出IEEE 802.3规范后来为解决EthernetII与802.3帧格式的兼容问题推出折衷的Ethernet SNAP格式(其中早期的Ethernet I 已经完全被其他帧格式取代了所以现在Ethernet只能见到后面几种Ethernet的帧格式现在大部分的网络设备都支持这几种Ethernet的帧格式如:cisco的路由器再设定Ethernet接口时可以指定不同的以太网的帧格式:arpa,sap,snap,novell-ether)二.各种不同的帧格式下面介绍一下各个帧格式1.Ethernet II就是DIX以太网联盟推出的,它由6个字节的目的MAC地址,6个字节的源MAC地址,2个字节的类型域(用于标示封装在这个Frame、里面数据的类型)以上为Frame Header,接下来是46--1500 字节的数据,和4字节的帧校验)2.Novell Ethernet它的帧头与Ethernet有所不同其中EthernetII帧头中的类型域变成了长度域,后面接着的两个字节为0xFFFF,用于标示这个帧是Novell Ether类型的Frame ,由于前面的0xFFFF占掉了两个字节所以数据域缩小为44-1498个字节,帧校验不变。
帧格式及IP,TCP,UDP,ICMP报文格式

以太网数据格式与各种报文格式一、数据封装当我们应用程序用TCP传输数据的时候,数据被送入协议栈中,然后逐个通过每一层,知道最后到物理层数据转换成比特流,送入网络。
而再这个过程中,每一层都会对要发送的数据加一些首部信息。
整个过程如下图。
如图可以看出,每一层数据是由上一层数据+本层首部信息组成的,其中每一层的数据,称为本层的协议数据单元,即PDU.应用层数据在传输层添加TCP报头后得到的PDU被称为Segment(数据段),图示为TCP段传输层的数据(TCP段)传给网络层,网络层添加IP报头得到的PDU被称为Packet(数据包); 图示为IP数据包网络层数据报(IP数据包)被传递到数据链路层,封装数据链路层报头得到的PDU被称为Frame(数据帧),图示为以太网帧。
最后,帧被转换为比特,通过网络介质传输。
这种协议栈逐层向下传递数据,并添加报头和报尾的过程称为封装。
二、数据格式需要注意的是,这里所说的以太网帧,与我们常说的以太网是不一样的。
下面我们就来介绍每一层数据的首部信息内容。
首先我们知道世界上有个协会叫作IEEE,即电子工程师协会,里面有个分会,叫作IEEE802委员会,是专门来制定局域网各种标准的。
而802下面还有个分部,叫作802.3.就是我们经常提到的IEEE802.3,这个部门制定的规范叫以太网规范,这个以太网规范中就定义了上面提到的“以太网首部”,这个以太网规范,实际只定义了数据链路层中的MAC层和物理层规范。
(注意数据链路层包括MAC子层和LLC子以太网帧格式:以太网常用帧格式有两种,一种是Ethernet II,另一种是IEEE 802.3 格式。
这两种格式区别是:Ethernet II中包含一个Type字段,。
其中Type字段描述了,以太网首部后面所跟数据包的类型,例如Type为0x8000时为IP协议包,Type为8060时,后面为ARP协议包。
以太网中多数数据帧使用的是Ethernet II帧格式。
以太报文,protocol类型

以太报文,protocol类型
以太报文是指在以太网上进行数据通信时使用的数据包格式。
以太报文通常由以太网帧组成,包括目标地址、源地址、类型/长度
字段和数据字段。
以太报文的协议类型指的是以太网帧中的类型字段,用于标识数据字段中所包含的协议类型。
在以太网帧的类型字段中,通常会标识出所使用的网络协议,
比如IPv4、IPv6、ARP等。
这样接收方就能够根据类型字段来识别
数据字段中所使用的协议类型,从而正确地处理数据包。
除了标识网络协议外,以太报文的协议类型还可以指示以太网
帧中数据字段的长度,这取决于具体的以太网帧格式。
在以太网中,通常会有两种类型的以太报文,一种是标准以太网帧,另一种是
IEEE 802.3标准中定义的以太网帧,它们的类型字段长度不同。
总的来说,以太报文的协议类型是以太网帧中的一个重要字段,用于标识数据字段中所使用的协议类型或长度,以便接收方能够正
确地解析和处理数据包。
这种类型字段的设计使得以太网能够支持
多种不同的网络协议和数据格式,从而实现了灵活的数据通信能力。
PPPoE协议的基本功能以及报文格式

PPPoE协议调研by 00848223 刘盾PPPoE是一种在以太网上进行PPP点对点拨号连接的协议。
因为以太网属于专网,网络是直接连接的,不用拨号,所以物理层上的连接是没有问题的。
但为了确保连接安全,并且只允许合法用户连接,所以采取了类似电话拨号方式的身份验证,此时所拨的不是电话号码,而是用户的账户,属于数据链路层的协议。
PPPoE虽然是目前应用最广的一种ADSL网络协议,但它不是随着ADSL技术的出现而出现的,它是在1998年才开发出来的,主要目的是为了解决公网IP地址不足的问题。
所谓虚拟拨号是指用ADSL接入Internet时同样需要输入用户名与密码才能进行连接,与传统的模拟电话线路+MODEM、数字电话线路+ISDN Ta的接入方式不同,ADSL不是对具体的电话号码进行拨号,而是直接在局端以太网上进行身份验证。
因为事实上在没有拨号前物理网络是连通的,只是通过相应账户的身份验证登录网络系统,所以称之为“虚拟拨号”。
PPPoE技术最早是由Redback 网络公司、客户端软件开发商RouterWare公司以及Worldcom子公司“UUNET Technologies”公司,于1998年后期在IETF RFC基础上联合开发的。
通过把最经济的以太局域网和点对点协议的可扩展性和管理控制功能结合在一起,网络服务提供商和电信运营商便可利用可靠、熟悉的技术来加速部署高速互联网业务。
它使服务提供商在通过DSL、Cable MODEM或WLAN(无线局域网)等方式,提供支持多用户的宽带接入服务时更加简便易行。
而在以前,在传统的以太网模型中,我们是不存在所谓的用户计费的概念,要么用户能获取IP 地址上网,要么用户就无法上网。
IETF 的工程师们在秉承窄带拨号上网的运营思路的基础上,制定出了在以太网上传送PPP 数据包的协议——PPPoE。
这个协议出台后,各网络设备制造商也相继推出自己品牌的宽带接入服务器(BAS),使得PPPoE这种灵活的ADSL接入方式迅速得到了广泛应用。
PPPOE报文格式

PPPoE报文的格式就是在以太网帧中携带PPP报文,如图所示。
各个字段解释如下:
∙Destination_address域:一个以太网单播目的地址或者以太网广播地址(0xffffffff)。
对于Discovery数据包来说,该域的值是单播或者广播地址,PPPoE Client寻找PPPoE Server的过程使用广播地址,确认PPPoE Server后使用单播地址。
对于Session阶段来说,该域必须是Discovery 阶段已确定的通信对方的单播地址。
∙Source_address域:源设备的以太网MAC地址。
∙Ether_type:设置为0x8863(Discovery阶段或拆链阶段)或者0x8864(Session阶段)。
∙Ver域:4bits,PPPoE版本号,值为0x1。
∙Type域:4bits,PPPoE类型,值为0x1。
∙Code域:8bits,PPPoE报文类型。
Code域为0x00,表示会话数据。
Code域为0x09,表示PADI 报文;Code域为0x07,表示PADO或PADT报文;Code域为0x19,表示PADR报文;Code域为0x65,表示PADS报文。
报文的具体情况请参见附录部分。
∙Session_ID域:16bits,对于一个给定的PPP会话,该值是一个固定值,并且与以太网Source_address和Destination_address一起实际地定义了一个PPP会话。
值0xffff为将来的使用保留,不允许使用。
∙Length域:16bits,定义PPPoE的Payload域长度。
不包括以太网头部和PPPoE头部的长度。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
时隙在一般的数字通信原理中是这样定义的:由各个消息构成的单一抽样的一组脉冲叫做一帧,一帧中相邻两个脉冲之间是时间间隔叫做时隙.而以太网的时隙有它自己的特定意义.(1)在以太网CSMA/CD规则中,若发生冲突,则必须让网上每个主机都检测到。
但信号传播到整个介质需要一定的时间。
(2)考虑极限情况,主机发送的帧很小,两冲突主机相距很远。
在A发送的帧传播到B的前一刻,B开始发送帧。
这样,当A的帧到达B时,B检测到了冲突,于是发送阻塞信号。
(3)但B的阻塞信号还没有传输到A,A的帧已发送完毕,那么A就检测不到冲突,而误认为已发送成功,不再发送。
(4)由于信号的传播时延,检测到冲突需要一定的时间,所以发送的帧必须有一定的长度。
这就是时隙需要解决的问题。
这里可以把从A到B的传输时间设为T,在极端的情况下A要在2T的时间里才可以检测到有冲突的存在1,电磁波在1KM电缆的传输时延约为5us(这个数字应该记下来~~~),如果在理想情况下2,在10Mbps的以太网中有个5-4-3的问题:10 Mb/s以太网最多只能有5个网段,4个转发器,而其中只允许3个网段有设备,其他两个只是传输距离的延长。
按照标准,10Mbps以太网采用中继器时,连接最大长度为2500米!那么在理想的情况下,时隙可以为2500/1000*5*2us=25us,但是事实上并非如此简单.实际上的时隙一定会比25us大些.接下来说明一下~~~3,在以太网在,时隙也可以叫做争用期,只有经过争用期这段时间没有检测到冲突碰撞,发送端才能肯定这次发送不会发生碰撞.然后当发生了碰撞而停止之后,以太网上的机器会再次侦听,再发送,这就有个再次碰撞的可能性,这里以太网使用了截断二进制指数类型的退避算法来解决,在碰撞之后,会推迟一个随机时间(具体略),这也会对争用期的选择有些影响.而这个截断二进制指数类型的退避算法的有关说明,可以看看我回的这个帖子~基于上面所说的原因,也因为考虑到了端到端时延,而且还包括其他的许多因素,如可能存在的转发器所增加的时延等等~~~~以太网取为争用期,也就是时隙对于10Mbps以太网来说,10Mb/s*=512bit,所以一般说的512bit时隙长度就是这样来的,这个长度为512/8=64字节.以太网在发送数据时,如果在前面64字节没有发生冲突的话,那么后续的数据就不会发生冲突,以太网就认为这个数据的发送是成功的.100Mbps和1000Mbps以太网的时隙(1)100Mbps以太网的时隙:100Mbps以太网的时隙仍为512位时,以太网规定一帧的最小发送时间必须为μs。
(2)1000Mbps以太网的时隙1000Mbps以太网的时隙增至512字节,即4096位,这个还望DX来指点.....帧间间隔的概念:MAC子层的标准还规定了帧间最小的间隔是,相当于96bit的发送时间,就是说一个主机在检测到总路线开始空闲后,还要等待才能发送数据.这样做是为了使刚刚收到的数据帧的主机的接收缓存来得及清理,做好接收下一帧的准楼主大概明白了吧?翻了数字通信原理,计算机网络,TCP/IP的书啊....版主可以加分的吗????谢谢!以太网数据包如下表结构所示:目地地址(6B)原地址(6B)类型(2B)数据(46~1500B)校验和(4B) IP 数据包结构如下页表:版本号(4位)头长度(4位)服务类型TOS(8位)总长度(16位)标示(16位)标志(3位)头偏移(13位)生存时间TTL(8位)上层协议标示(8位)头部校验和(16位)源IP地址(32位)目的IP地址(32位)选项数据 TCP抱文结构如下表: TCP源端口号(16位) TCP目的端口号(16位)系列号(32位)确认号(32位)首部长度(4位)保留位(6位) URG ACK PSH RST SYN F IN 窗口大小(16位)检验和(16位)紧急指针(16位)选项填充数据区 UDP抱文结构如下表: UDP源端口号(16位) UDP目标端口号(16位 UDP 长度(16位 UDP校验和(16位数据区IP包首部格式2009-12-10 14:26:02 阅读85 评论0 字号:大中小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数据报包头的校验和。
源IP地址:目的IP地址:数据在经过IP网络层时,也会对数据进行封装,也就有相应的IP协议包头了。
在以太网帧中,IPv4包头紧跟着以太网帧头,同时以太网帧头中的协议类型值设置为十六进制的0800。
它的基本格式如图3-12所示。
⏹∙∙∙∙∙∙∙∙ 版本(Version)指定IP协议的版本号。
因为目前仍主要使用IPv4版本,所以这里的值通常是 0x4 (注意封包使用的数字通常都是十六进位的)。
占4位。
图3-12 IP协议头格式⏹∙∙∙∙∙∙∙∙ 包头长度(Internet Header Length,IHL)指明IPv4协议包头长度的字节数包含多少个32位。
由于IPv4的包头可能包含可变数量的可选项,所以这个字段可以用来确定IPv4数据报中数据部分的偏移位置。
IPv4包头的最小长度是20个字节,因此IHL这个字段的最小值用十进制表示就是5。
占4位。
由于它是一个4比特字段,因此首部最长为60个字节,但实际上目前最多仍为24个字节。
⏹∙∙∙∙∙∙∙∙ 服务类型(Type of Service,TOS)定义IP封包在传送过程中要求的服务类型,共由8个bit组成其中每个bit的组合分别代表不同的意思。
4bit中只能置其中1bit。
如果所有4bit均为0,那么就意味着是一般服务。
具体如下:✍∙∙∙∙∙∙∙∙∙∙∙∙∙ 000..... (Routine):过程字段,占3位。
设置了数据包的重要性,取值越大数据越重要,取值范围为:0(正常)~ 7(网络控制)✍∙∙∙∙∙∙∙∙∙∙∙∙∙ ...0....(Delay):延迟字段,占1位,取值:0(正常)、1(期特低的延迟)✍∙∙∙∙∙∙∙∙∙∙∙∙∙ ....0...(Throughput):流量字段,占1位。
取值:0(正常)、1(期特高的流量)✍∙∙∙∙∙∙∙∙∙∙∙∙∙ .....0..(Reliability):可靠性字段,占1位。
取值:0(正常)、1(期特高的可靠性)✍∙∙∙∙∙∙∙∙∙∙∙∙∙ …..0.(ECN-Capable Transport):显式拥塞指示传输字段,占1位。
由源端设置,以显示源端节点的传输协议是支持ECN(Explicit Cogestion Notifica tion,显式拥塞指示)的。
取值:0(不支持ECN)、1(支持ECN)✍∙∙∙∙∙∙∙∙∙∙∙∙∙ .......0(Congestion Experienced):拥塞预警字段,占1位。
取值:0(正常,不拥塞)、1(拥塞)⏹∙∙∙∙∙∙∙∙ 包长度(Total Length,TL)指定IP包的总长,通常以byte做单位来表示该封包的总长度此数值包括标头和数据的总和。
它以字节为单位,占16位。
利用首部长度字段和总长度字段,就可以知道IP数据报中数据内容的起始位置和长度。
【经验之谈】由于该字段长16比特,所以IP数据报最长可达65535字节。
尽管可以传送一个长达65535字节的IP数据报,但是大多数的链路层都会对它进行分段。
而且,主机也要求不能接收超过576字节的数据报。
由于TCP把用户数据分成若干段,因此一般来说这个限制不会影响TCP。
UDP的应用(如RIP、TFTP、BOOTP、DNS、SNMP等),都限制用户数据报长度为512字节,小于576字节。
但是,事实上现在大多数的实现允许超过8192字节的IP数据报。
总长度字段是IP首部中必要的内容,因为一些数据链路(如以太网)需要填充一些数据以达到最小长度。
尽管以太网的最小帧长为46个字节(将在本章后面介绍),但是IP数据可能会更短。
如果没有总长度字段,那么IP层就不知道46字节中有多少是IP数据报的内容。
⏹∙∙∙∙∙∙∙∙ 标识(Identification)每一个IP封包都有一个16位的唯一识别码。
当程序产生的数据要通过网络传送时都会被拆散成封包形式发送,当封包要进行重组的时候这个ID就是依据了。
占16位。
标识字段唯一地标识主机发送的每一份数据报。
通常每发送一份消息它的值就会加1。
RFC791认为标识字段应该由让IP发送数据报的上层来选择。
假设有两个连续的IP数据报,其中一个是由TCP生成的,而另一个是由UDP生成的,那么它们可能具有相同的标识字段。
尽管这也可以照常工作(由重组算法来处理),但是在大多数从伯克利派生出来的系统中,每发送一个IP数据报,IP层都要把一个内核变量的值加1,不管交给IP的数据来自哪一层。