OSI模型的部首路径

295 阅读2分钟

本文正在参与 “网络协议必知必会”征文活动

OSI模型的部首封装与解析

OSI 分成了七个分层:按照顺序

  • 应用层:针对特定应用的协议:如电子邮件协议,文件传输协议
  • 表示层:设备固有数据格式和网络标准数据格式的转换,接受文字,图像等
  • 会话层:通信管理,负责人建立和断开通信连接。
  • 传输层:管理两个节点之间的数据传输。
  • 网络层:地址管理与路由选择。
  • 数据链路层: 互连设备之间传送和识别数据帧
  • 物理层:网线

每个分层都会给发送的数据加一个首部,包含了该分层的必要信息。

发送路径

  • 应用程序处理

  • TCP 在应用层数据的前端增加一个TCP部首,将部首和数据发送到IP

    • 包括源端口号,目标端口号,序号(数据位置),校验和(数据传输中是否损坏)。
  • IP协议将TCP部首和数据合起来当做自己的数据,并在TCP部首前端加上IP部首,将部首和数据发送到连接路由器或网络接口的驱动程序。(相当于出口)

    • 包括发送端地址,接收端地址。
  • 网络接口将IP传来的数据加上以太网部首,数据通过物理层传输给接收端

    • 包含接收端MAC地址,发送方MAC,以太网数据协议(标志以太网类型)。

image.png

image.png

接收路径

  • 主机收到以太网包后,在以太网首部找到MAC地址,判断是否是自己,如果不是就丢弃。

    • 如果是自己的,查找以太网部首中上一层的协议类型(比如说是IP协议),发送给处理对应协议的子程序(IP模块)。如果识别不了,就丢弃。
  • IP模块接收到数据(IP部首+数据部分,以太网部首已经在数据链路层被解析)。判断IP部首中的IP地址是否与自己相同。

    • 查找上一层的数据类型(TCP),将IP部首之后的内容发送到TCP模块。
  • TCP模块中会先计算校验和(数据是否损坏)。检查是否在按照序号接收数据。检查端口号,确定具体的应用程序,发送给应用程序。

    • 数据接收完毕,会发送一个确认回执给发送端。如果未能发送到发送端,就会一直重复发送。
  • 应用程序接受到数据,通过解析得到对应信息。

image.png