PPP/MAC/IP/UDP/TCP的数据报格式

您所在的位置:网站首页 icmp首部多少字节 PPP/MAC/IP/UDP/TCP的数据报格式

PPP/MAC/IP/UDP/TCP的数据报格式

2024-03-29 00:08| 来源: 网络整理| 查看: 265

PPP 协议的帧格式:

PPP 是面向字节的,所有的 PPP 帧的长度都是整数字节。

这里写图片描述

PPP 有一个 2 个字节的协议字段 当协议字段为 0x0021 时,PPP 帧的信息字段就是IP 数据报。若为 0xC021, 则信息字段是 PPP 链路控制数据。若为 0x8021,则表示这是网络控制数据。首部和尾部的控制字段F为7E表示帧的定界符。控制字段A和C没有实际意义。 以太网V2的MAC 帧格式 :

这里写图片描述

目的地址字段 6 字节源地址字段 6 字节 类型字段 2 字节 :类型字段用来标志上一层使用的是什么协议,以便把收到的 MAC 帧的数据上交给上一层的这个协议。数据字段 46 ~ 1500 字节 : 数据字段的正式名称是 MAC 客户数据字段 最小长度 : 64 字节 - 18 字节的首部和尾部 = 数据字段的最小长度 当数据字段的长度小于 46 字节时,应在数据字段的后面加入整数字节的填充字段,以保证以太网的 MAC 帧长不小于 64 字节。FCS 字段 4 字节 : 当传输媒体的误码率为 1*10-8 时,MAC 子层可使未检测到的差错小于 1 * 10-14。为了达到比特同步,在传输媒体上实际传送的要比 MAC 帧还多 8 个字 帧的前面插入的 8 字节中的前 7 个字节是前同步码,用来迅速实现 MAC 帧的比特同步。第8个字节是帧开始定界符,表示后面的信息就是MAC 帧。 IP 数据报的格式 :

一个 IP 数据报由首部和数据两部分组成。首部的前一部分是固定长度,共 20 字节,是所有 IP 数据报必须具有的。首部固定部分后面是一些可选字段,它们的长度可变。

这里写图片描述

版本——占 4 位,指 IP 协议的版本目前的 IP 协议版本号为 4 (即 IPv4)首部长度——占 4 位,可表示的最大数值是 15 个单位(一个单位为 4 字节)因此 IP 的首部长度的最大值是 60 字节。区分服务——占 8 位,用来获得更好的服务在旧标准中叫做服务类型,但实际上一直未被使用过。1998 年这个字段改名为区分服务。只有在使用区分服务(DiffServ)时,这个字段才起作用。在一般的情况下都不使用这个字段。总长度——占 16 位,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为 65535 字节。总长度必须不超过最大传送单元 MTU。标识(identification)—— 占 16 位,它是一个计数器,用来产生数据报的标识。每产生一个数据报,标识就加一,因为是无链接服务,数据报不存在按序接受的问题。当必须对IP数据报分片时,可将标识复制到其他数据报片中,用于回复数据报。标志(flag) ——占 3 位,目前只有前两位有意义。标志字段的最低位是 MF (More Fragment)。MF = 1 表示后面“还有分片”。MF = 0 表示最后一个分片。标志字段中间的一位是 DF (Don’t Fragment) 。只有当 DF = 0 时才允许分片。片偏移——占13 位,指出较长的分组在分片后某片在原分组中的相对位置。片偏移以 8 个字节为偏移单位,也就是说每个分片的长度一定是8字节(64位)的整数倍。生存时间——占8 位,记为 TTL (Time To Live)数据报在网络中可通过的路由器数的最大值。协议——占8 位,字段指出此数据报携带的数据使用何种协议,以便目的主机的 IP 层将数据部分上交给哪个处理过程(如TCP/UDP/ICMP/IGMP/OSPF等)。首部检验和——占16 位,字段只检验数据报的首部不检验数据部分。这里不采用 CRC 检验码而采用简单的计算方法。源地址和目的地址—— 各占4 字节可选字段必须为4字节的倍数,否则就要进行填充。该选项很少被使用。IP首部最大长度为60字节,而固定长度为20字节,所以该字段最大长度为40字节。 UDP 的首部格式 :

这里写图片描述

用户数据报 UDP 有两个字段:数据字段和首部字段。首部字段有 8 个字节,由 4 个字段组成,每个字段都是两个字节。 在计算检验和时,临时把“伪首部”和 UDP 用户数据报连接在一起。伪首部仅仅是为了计算检验和。

TCP 报文段的首部格式 :

这里写图片描述

源端口和目的端口字段——各占 2 字节。端口是运输层与应用层的服务接口。运输层的复用和分用功能都要通过端口才能实现。序号字段——占 4 字节。TCP 连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。确认号字段——占 4 字节,是期望收到对方的下一报文段的数据的第一个字节的序号。数据偏移(即首部长度)——占 4 位,它指出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远。“数据偏移”的单位是 32 位字(以 4 字节为计算单位)。保留字段——占 6 位,保留为今后使用,但目前应置为 0。6个控制位,用来说明本报文段的性质。 紧急 URG —— 当 URG = 1 时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。确认 ACK —— 只有当 ACK = 1 时确认号字段才有效。当 ACK = 0 时,确认号无效。 推送 PSH (PuSH) —— 接收 TCP 收到 PSH = 1 的报文段,就尽快地交付接收应用进程,而不再等到整个缓存都填满了后再向上交付。 复位 RST (ReSeT) —— 当 RST = 1 时,表明 TCP 连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。 同步 SYN —— 同步 SYN = 1 表示这是一个连接请求或连接接受报文。终止 FIN (FINis) —— 用来释放一个连接。FIN = 1 表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。窗口字段(发送方的接收窗口) —— 占 2 字节,用来让对方设置发送窗口的依据,单位为字节。检验和 —— 占 2 字节。检验和字段检验的范围包括首部和数据这两部分。在计算检验和时,要在 TCP 报文段的前面加上 12 字节的伪首部。紧急指针字段 —— 占 16 位,指出在本报文段中紧急数据共有多少个字节(紧急数据放在本报文段数据的最前面,只有URG=1时该项才有意义)。 选项字段——长度可变。 最大报文段长度MSS——TCP最初只规定了一种选项,即最大报文段长度MSS(Maximum Segment Size),仅指TCP 报文段中的数据字段的最大长度。窗口扩大选项 ——占 3 字节,其中有一个字节表示移位值 S。新的窗口值等于TCP 首部中的窗口位数增大到(16 + S),相当于把窗口值向左移动 S 位后获得实际的窗口大小。 时间戳选项——占10 字节,其中最主要的字段时间戳值字段(4 字节)和时间戳回送回答字段(4 字节)。 计算RTT和防止序号绕回。选择确认选项——在后面的选择确认 SACK介绍。填充字段 —— 这是为了使整个首部长度是 4 字节的整数倍。


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3