各报文段格式集合

【1】数据链路层-- 以太网V2的MAC帧

请添加图片描述
请添加图片描述

  1. 前导码8B:数据链路层将封装好的MAC帧交付给物理层进行发送,物理层在发送MAC帧前,还要在前面添加8字节的前导码(分为7字节的前同步码+1字节的帧开始定界符)
  2. MAC地址长度6B
  3. 数据长度46~1500B,首部和尾部是18B,因此最短帧长64B
  4. 满足最小帧长64B的要求(6+6+2+46+4=64)
  5. 以太网在传递时,各帧之间必须有一定的间隙,因此不需要帧结束符(但要有帧尾部)

【2】数据链路层-- 802.1Q帧(VLAN)

它对以太网V2的MAC帧格式进行了扩展:在源地址字段和类型字段之间插入了4B的VLAN标签(tag)字段
请添加图片描述
请添加图片描述
请添加图片描述

  1. 802.1Q帧一般不由用户主机处理,而是由以太网交换机来处理:
    • 当交换机收到普通的以太网MAC帧时,会给其插入4B的VLAN标签使其成为802.1Q帧,该处理简称为“打标签”
    • 当交换机转发802.1Q帧时,可能会删除其4B的VLAN标签使之成为普通的以太网MAC帧,该处理简称为“去标签”。交换机转发802.1Q帧也有可能不进行“去标签”处理,取决于交换机的接口类型

【3】数据链路层–802.11无线局域网的MAC帧

请添加图片描述

  1. 持续期:用于实现CSMA/CA的虚拟载波监听和信道预约机制。在数据帧、RTS帧和CTS帧中用该字段指出将要持续占用信道的时长
  2. 序号控制:802.11使用可靠传输,这个字段是对数据帧进行编号
  3. 地址1、地址2、地址3、地址4:取决于帧控制字段中的“去往DS”和“来自DS”。具体如下:
    请添加图片描述

【4】数据链路层-- PPP帧

请添加图片描述

  1. 使用PPP的数据链路层,向上提供的是不可靠的数据传输服务:接收方每收到一个PPP帧,就进行CRC校验,若检验正确就收下这个帧,否则就丢弃这个帧

网络层-- IP分组

请添加图片描述

  1. 首部固定部分20B,最大为60B
    • 最小取值为0101( 5 × 4 = 20 5\times 4=20 5×4=20
    • 最大取值为1111( 15 × 4 = 60 15\times 4=60 15×4=60
  2. 用于分片的三个字段:例如以太网规定MTU取值为1500B,当IPv4数据报长于MTU时,无法封装成帧,需要将原IPv4数据报分片为若干个更小的IPv4数据报
    • 标识:同属于一个IPv4数据报的各分片数据报应该具有相同的标识
    • 标志:
      • MF:为1表示本分片后面还有分片;为0表示本分片后面没有分片
      • DF:为0表示允许分片;为1表示不允许分片
    • 片偏移:其开始的字节号(从0开始)/8
      请添加图片描述
  3. 生存时间TTL:以跳数为单位,路由器收到该数据报就将其TTL字段-1,若结果不为0就转发,否则就丢弃
  4. 协议:用来指明IPv4数据报的数据载荷是何种协议数据单元PDU
    请添加图片描述
  5. 首部校验和:只校验首部。数据报每经过一个路由器,路由器都要重新计算一下首部检验和
    • 发送方首部检验和的计算方法:
      在这里插入图片描述
    • 接收端检验是否出错的方法:
      在这里插入图片描述
  6. 源地址和目的地址字段长度都为4B
  7. 填充:当首部长度(20+可变)的长度不是4字节的整数倍时,就填充相应数量的全0字节,以确保IPv4数据报的首部长度是4字节的整数倍
  8. 单位:(一种八片首饰)
    • 总长度(首部+数据载荷):1
    • 片偏移:8
    • 首部长度:4

传输层-- TCP报文段

请添加图片描述

  1. TCP实现可靠传输的相关字段
    • 序号:用来指出本TCP报文段的数据载荷的第一个字节的序号
    • 确认号:用来指出期望收到对方下一个TCP报文段的数据载荷的第一个字节的序号,同时也是对之前收到的所有数据的确认。只有当确认标志位ACK为1时,确认号字段才有效。
    • 确认标志位ACK:TCP规定,在TCP连接建立后,所有传送的TCP报文段都必须把ACK置1
  2. 数据偏移:以4字节为单位,指出TCP报文段的首部长度(是TCP报文段的数据载荷部分的起始处距离TCP报文段的起始处有多远)
  3. 标志位:
    • 同步标志位SYN:用于TCP三报文握手建立连接
      • SYN=1且ACK=0时:是一个TCP连接请求报文段
      • SYN=1且ACK=1时:对方同意建立连接,发送这样首部的响应报文
      • 因此,SYN=1时,要么是一个连接请求报文段,要么是一个连接响应报文段
    • 终止标志位FIN:用于TCP四报文挥手释放链接
      • FIN=1时,表示此TCP报文段的发送方已经将全部数据发送完毕,现在要求释放TCP连接
    • 复位标志位RST:用于复位TCP连接
      • RST=1时,表明TCP连接中出现严重差错,必须释放连接,然后再重新建立连接;此外,还可通过将RST置1来拒绝一个非法的TCP报文段或拒绝打开一个TCP连接
    • 推送标志位PSH:出于效率,TCP发送方可能会延迟发送数据以一次发送更多的数据。但当两个应用进行交互式通信时,需要高实时性,这时应用进程可通知TCP使用推送(PSH)操作
      • 发送方TCP把PSH置1,并立即创建一个TCP报文段发送出去,而不需要累积到足够多的数据再发送
      • 接收方TCP收到PSH为1的TCP报文段,就尽快地交付给应用进程,而不再等到接收到足够多的数据才向上交付
    • 紧急标志位URG:当发送方有紧急数据时,可将紧急数据插队到发送缓存的最前面,并立刻封装到一个TCP报文段中进行发送。后面的紧急指针字段会指出本报文段数据载荷部分包含了多长的紧急数据,紧急数据后是普通数据。接收方收到紧急标志位为1的TCP报文段,会按照紧急指针字段的值从报文段数据载荷中取出紧急数据并直接上交应用进程,而不必在接受缓存中排队
  4. 窗口:以字节为单位,指出接收窗口的大小,进而控制发送方的数据发送量。这就是所谓的流量控制
  5. 检验和:用来检查整个TCP报文段在传输中是否出现误码。和UDP一样,在计算检验和时,要在TCP报文段的前面加上12字节的伪首部,伪首部的格式与UDP也一样
    请添加图片描述
    • (发送方)计算检验和的方法:
      • 将TCP首部中检验和字段的值置为0;
      • 将伪首部、TCP首部以及数据载荷这三部分划分成若干个2字节的字;
      • 对划分出的全部2字节的字进行反码算术运算求和,并将求和结果取反码;4)将步骤三得到的结果写入TCP首部中的检验和字段
    • (接收方)通过检验和字段判断TCP报文段在传输过程中是否误码的方法
      • 给接收到的TCP报文段前面添加一个12字节的伪首部
      • 将伪首部、TCP首部、数据载荷三部分划分成若干个2字节的字
      • 对划分出的全部2字节的字进行反码算术运算求和,并将求和结果取反码
      • 若步骤三得到的结果为0,则表示TCP报文段在传输过程中没有误码。否则则出现了误码
    • 其与IPv4数据报首部检验和的计算方法类似,差别仅在于IP数据报只对首部进行检验;而TCP检验和对整个TCP报文段进行检验

传输层-- UDP数据报

请添加图片描述

  1. 首部8B,由4个字段组成(都是2B)
  2. 长度字段包括首部+数据部分
  3. 检验和对伪首部、UDP报文头以及数据部分(即应用层数据)进行校验
  4. 伪首部:仅在计算校验和时存在,不发送。伪首部包括IP分组报头的一部分
    请添加图片描述

应用层-- HTTP报文

HTTP报文分为请求报文和响应报文

  1. 请求报文:
    • 请求行:请求方法(GET/POST)、请求URL、HTTP协议版本
    • 首部行
    • 请求体/实体主体
  2. 响应报文:
    • 状态行
    • 响应头部
    • 响应体
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值