当前位置:文档之家› 常见网络协议报文格式汇总

常见网络协议报文格式汇总

附件:报文格式1.1Ethernet数据包格式(RFC894)1、DstMac的最高字节的最低BIT位如果为1,表明此包是以太网组播/广播包,送给CPU处理。

2、将DstMac和本端口的MAC进行比较,如果不一致就丢弃。

3、获取以太网类型字段Type/Length。

0x0800→IP 继续进行3层的IP包处理。

0x0806→ARP 送给CPU处理。

0x8035→RARP 送给CPU处理。

0x8863→PPPoE discovery stage 送给CPU处理。

0x8864→PPPoE session stage 继续进行PPP的2层包处理。

0x8100→VLAN其它值当作未识别包类型而丢弃。

1.2PPP数据包格式1、获取PPP包类型字段。

0x0021→IP 继续进行3层的IP包处理。

0x8021→IPCP 送给CPU处理。

0xC021→LCP 送给CPU处理。

0xc023→PAP 送给CPU处理。

0xc025→LQR 送给CPU处理。

0xc223→CHAP 送给CPU处理。

0x8023→OSICP 送给CPU处理。

0x0023→OSI 送给CPU处理。

其它值当作未识别包类型而丢弃。

1.3 ARP 报文格式(RFC826)|←----以太网首部---->|←---------28字节ARP 请求/应答------1.4 IP 报文格式(RFC791)(20bytes)TOS1.5 PING 报文格式(需IP 封装)(8bytes)1.6 TCP 报文格式(需IP 封装)(20bytes)紧急指针有效 ACK 确认序号有效 PSH 接收方应该尽快将这个报文交给应用层 RST 重建连接 SYN同步序号用来发起一个连接 FIN 发端完成发送认务1.7 UDP 报文格式(需IP 封装)(8bytes)1.8 MPLS 报文格式MPLS 报文类型: 以太网中 0x8847(单播) 0x8848(组播) PPP 类型上 0x8281(MPLSCP)1.9MTU1.10TCP与UDP应用2以太网帧,TCP/IP数据报文详解其实也不是很详细,详细起来要很厚一本书,但是都是针对主要的写的以太网2的帧格式前导码:8个字节,这个主要是给信号同步的,给信号的开始传输的第一个bit定位的目的地址:6个字节,目的的MAC地址源地址:6个字节,是自己的MAC地址类型长度:2字节,辨别上层协议的数据:46-1500字节,就是上层的所有数据帧校验FCS:4字节,数据发过去的时候,会随机给个值,对端需要验证这个值,如果值不对,就说明这段数据干扰,或某种原因被修改。

数据部分最小46个字节,最大1500 以太帧最小64字节,最大1518字节。

这层主要是把物理层透明的传输bits组合成字节近而组合成帧,在网络中传输。

用MAC地址访问介质,错误发现但是不能纠正。

IP数据包格式版本Version:4位,表示IP地址的版本1111=32bits首部长度Header Length:4位,表示IP数据报头的长度,最小20字节,最大69字节。

那么这个bit是怎么表示的呢。

0001 = 1X4=4字节0101 = 55X4=20字节1111 = 1515X4=60字节优先级与服务类型Priority&type of service:8位,该字段用于表示数据的优先级和服务类型,通过数据包中划分一定的优先级,用于实现服务质量的要求。

总长度Total Length:16位,该字段用于指示整个IP报的长度,最长65535个字节,包括报头和数据。

标识符Identification:16位,当IP数据对上层数据进行分段的时候,它会将所有的段分配一组编号,然后将这些编号放入标识符字段,保证分段不会被错误的进行重组,标识符字段用于表示一个数据包所属的消息,以使得接受节点可以重组被分断或分段的消息。

标志Flags:3位,标志和分段一起被用来传递信息,例如,对当前的包不能进行分段,或者当一个包被分段后,用以指示在一系列的包片段中,最后一个片段是否已发出。

段偏移量Fragment Offset:13位,在一个分段组序列中如何将各片段重新连接起来。

TTL Time to live:8位,IP数据包的生命周期,防御一个数据包在网络中无限循环的转发下去。

当TTL值为0时,该数据报将被丢弃,数据包没经过一个路由器,TTL值将减去1。

协议号Protocd:8位,该字段表示在IP数据报中封装的是哪一个协议,TCP为6,UDP为17。

首部校验和Header Checksum:16位,它是16位的错误检测字段,目的的主机和网络中的每个网关都要重新计算包头的校验和,就同源机器所做的一样,如果数据没有被改动,两个计算结果应该是一样的。

源IP地址Source IP Address:32位目的IP地址Destination IP Address:32位可选项Options:选项字段,根据实际情况可变长,可以和IP一起使用的选项有多个,例如,可以输入创建该数据报的时间等。

TCP报文格式源端口号Source IP Address:16位呼叫端的端口号,这个端口是由发送方随机产生的。

目标端口号Destination Port:16位,被叫端的端口。

32位序列号Sequence Number:由于TCP封包必须要带入IP封包中,所以如果TCP资料太大时(大于IP封包的容许程度),就要进行分段,这个序列号就是记录每个封包的序号,可以让接受端重新将TCP的资料组合起来。

32位确认号Acknowledge Number:为了确认对方确实收到我们的封包,如果收到了,发送ACK确认。

首部长度:4位,为了确认整个TCP包的大小,就必须要这样来说明数据的起始位。

保留Reserved:6位,未使用的保留位,留着扩展用。

Code:6个控制位,URG,ACK,PSH,RST,SYN,FIN。

Urgent:为1时代表该数据包为紧急封包,根据16位的紧急指针来确定紧急数据最后一个字节的位置,这样接收端就可以有限准确快速的获取紧急数据。

Acknowledge:为1时代表这个封包为回应封包。

Push Function:为1时代表要求对方尽快将数据段送达应用层,无须等待缓冲区满了才送。

Reset:为1时代表通知重新建立TCP连接。

Synchronous:为1时代表发送端希望双方建立同步连接,通常带有SYN标志的封包表示主动连接到对方的意思。

Finish:为1时代表传送结束,所以通知对方是否断线,只是发送端还在等待对方的回应。

窗口Windows:16位,主要是用来控制封包流量的,可以告诉对方目前本身有的缓存器容量还可以接收包,当win=0时,代表缓存器已满,所以应该暂停传输,windows单位,byte。

校验和Checksum:16位,当资料传输时,要由发送端进行检测,并将该动作的校验值标注在这个栏位上,接收者收到这个封包后,会再次对封包进行检测,并且对比与发送方的值是否一致,一致就接收,不一致丢弃,并要求对方重新发送这个封包。

紧急指针Urgent Pointer:16位,和URG配合使用,URG=1时才会产生作用,用来说明紧急数据的末尾字节的位置。

可选项:只有首部长度长于20的时候才有效。

数据:应用层数据分段而得到的数据。

IP报文体:|------------->16<--------------|------------->16<--------------|0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-| vesion| IHL | TypeOfService | TotleLength |-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-| identification |flags| FragmentOffset |-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Time to Live | Protocol | Header Checksum |-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Source Address |-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Destination Address |-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Options | Padding |-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+说明:Version -- 版本:4bits长度,指明IP地址的协议版本,如果IPV4,值为4IHL -- 报文头长度:4bits长度,指从Version到Destination Address有几个32位的长度,由上可知有5个32位长TOS -- 服务类型:目前大多数网络对此一般不作处理. bit位域如下0 1 2 3 4 5 6 7-+-+-+-+-+-+-+-+-+|PREC |D|T|R|M|0|precedence -- 优先级:3bits长度.对网络没有强制性(111 - Network Control(网络控制);110 - Internetwork Control(互联网络控制);101 - CRITIC/ECP(至关重要);100-Flash Override(火速覆盖);011 - Flash(火速);010 - Immediate(立即);001 - Priority(主要);000 - Routine(常规) )D -- 延迟(Delay): 置位代表要求网络能提供低的时延T -- 吞吐量(Troughout): 置位代表要求网络能提供高的吞吐量R -- 可靠性(Reliability): 置位表示要求网络提供高的可靠性M -- 代价(Monetary):TotleLen -- IP总长度:16bits长,包括IP报文头和IP报文体的bit长度。

相关主题