计算机网络各层级协议报文形式详解

网络层各级协议报文样式

概述

协议所属层次单位长度
点对点协议 PPP数据链路层Mac帧64~1518
IP协议网络层分组 packet20~65535
UDP运输层数据报8~65535
TCP运输层数据段4GB
HTTP应用层数据N/A

PPP

img

  • 首部

    • 目的地址:包含目的MAC地址信息

    • 源地址:包含源MAC地址信息

    • 类型字段:里面包含的信息用来标志上一层使用的是什么协议,以便接收端把收到的MAC帧的数据部分上交给上一层的这个协议、

  • 尾部

    • FCS:CRC检验字段

IP

img

  • 版本

    • 0.5字节

    • IP协议的版本

  • 首部长度

    • 0.5字节

    • 最大可表示15

    • 最小值是5

    • 单位是4字节

    • 如果不是4字节的整数的时候记号填充字段

  • 区分服务

    • 1字节

    • 只有需要区分服务的时候才有用

  • 总长度

    • 2字节

    • 单位字节

    • IP数据报最大为65535字节

    • 如果IP数据包超过了下称协议的最大传送单元MTU:传送的帧的数据部分的长度上限,则需要分片处理

  • 标识

    • 占2字节

    • 没发送一个计数器就加1,并将此值赋给报

    • 用来在分片的时候确定是否是同一片

  • 标志

    • 3/8 字节

    • 只有前两位有意义

    • 最低为MF,为1表示还有分片,为0表示是最后一个

    • 中间一位是DF,为1表示不能分片

  • 片偏移

    • 13/8字节

    • 某片在原分组中的相对位置

    • 单位:8字节

    • 分片的长度一定是8字节的整数倍

  • 生存时间 TTL

    • 1字节

    • 数据报在网络中的寿命

    • 由源点设置

    • 每经过一个路由器就减一

    • 现在叫跳数限制

    • 最大值255

    • 设置为1表示只能在局域网中发送

  • 协议

    • 1字节

    • 指出携带的数据是使用何种协议

  • 首部检验和

    • 2字节

    • 值检验数据报的首部,不包括数据部分

    • 不采用CRC

    • 先把数据报首部划分位许多2字节的序列,并把检验和字段置为0,用反码运算把所有16位相加后,把得到的和写入检验和字段。接收方收到之后再进行一次,将得到的和取反码。与接收方的检验和相加,如果没有发生变化,则结果必为0

  • 源地址

    • 4字节
  • 目的地址

    • 4字节
  • 可选字段

UDP

img

  • 伪首部

    • 计算校验和的时候要在·UDP用户数据报之前增加12个字节的伪首部

    • 只在计算校验和时临时添加

    • UDP的校验和把首部和数据部分一起都检验

    • 源IP地址

    • 目的IP地址

    • 0

    • 协议(UDP为17)

    • UDP长度

  • 首部字段

    • 源端口
      2字节。在需要对方回信时选用,不需要时全0

    • 目的端口
      2字节,在终点交付报文时必须使用

    • 长度
      UDP数据报的长度

    • 检验和
      检测UDP用户数据报在传输中是否有错

  • 数据字段

TCP

img

  • 源端口:占两个字节
  • 目的端口:占两个字节
  • 序号:占4字节 在TCP传送的字节流中每一个字节都按顺序编号,此处的序号是本报文段所发送的第一个字节的序号
  • 确认号:占4字节 希望收到对方的下一个报文段的第一个数据字节的序号
    • 有4字节,可以对4GB的数据编号
  • 数据偏移:占4位,TCP报文段的数据起始处距离TCP报文段的起始处有多远
  • 保留:6位,保留为今后使用,目前设置为0
  • CWR(Congestion Window Reduce):拥塞窗口减少标志,用来表明它接收到了设置 ECE 标志的 TCP 包。并且,发送方收到消息之后,通过减小发送窗口的大小来降低发送速率。
  • ECE(ECN Echo):用来在 TCP 三次握手时表明一个 TCP 端是具备 ECN 功能的。在数据传输过程中,它也用来表明接收到的 TCP 包的 IP 头部的 ECN 被设置为 11,即网络线路拥堵。
  • URG(Urgent):表示本报文段中发送的数据是否包含紧急数据。URG=1 时表示有紧急数据。当 URG=1 时,后面的紧急指针字段才有效。
  • ACK(Acknowledgment Number):表示前面的确认号字段是否有效。ACK=1 时表示有效。只有当 ACK=1 时,前面的确认号字段才有效。TCP 规定,连接建立后,ACK 必须为 1。
  • PSH(Push):告诉对方收到该报文段后是否立即把数据推送给上层。如果值为 1,表示应当立即把数据提交给上层,而不是缓存起来。
  • RST(Reset):表示是否重置连接。如果 RST=1,说明 TCP 连接出现了严重错误(如主机崩溃),必须释放连接,然后再重新建立连接。
  • SYN(Sync):在建立连接时使用,用来同步序号。当 SYN=1,ACK=0 时,表示这是一个请求建立连接的报文段;当 SYN=1,ACK=1 时,表示对方同意建立连接。SYN=1 时,说明这是一个请求建立连接或同意建立连接的报文。只有在前两次握手中 SYN 才为 1。
  • FIN(Finish):标记数据是否发送完毕。如果 FIN=1,表示数据已经发送完成,可以释放连接。
  • 窗口:2字节,指的是接受窗口
  • 校验和:2字节 校验范围包括首部和数据两部分,也需要加@伪首部
  • 紧急指针:两字节,指出紧急的字节数
  • 选项:长度可变,最长40字节
    • 若没有选项,TCP首部长度为20字节

HTTP

img

  • 请求行
    • 方法
    • URL
    • 版本
  • 首部行
    • 首部字段:值
  • 首部主体 请求报文通常不用,有些响应报文不用
  • 3
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值