OSI七层模型

OSI七层模型传输过程

当你在微信上发送一句“你吃了吗”时,这条消息会经历一个从你的手机到接收者手机的复杂旅程。这个过程涉及到网络通信中的七层模型,即OSI(开放系统互连)模型。每一层都有特定的功能,并且在这个过程中,信息会被逐步封装成适合网络传输的形式。等到达目的地后,再一层层解开,最终呈现给接收者。

一、OSI七层模型简介:

  1. 物理层 - 负责定义物理连接的电气、机械、过程和功能特性,如电压水平、电缆规格等。
  2. 数据链路层 - 处理节点间的直接通信,确保数据正确无误地从一个节点传送到另一个节点,使用MAC地址来识别设备。
  3. 网络层 - 负责数据包的路由选择,确保数据能够通过最佳路径从源点传送到目的点,使用IP地址进行寻址。
  4. 传输层 - 提供端到端的数据传输服务,保证数据的完整性和顺序,常用的协议有TCP和UDP。
  5. 会话层 - 建立、管理和终止应用程序之间的会话。
  6. 表示层 - 处理数据的格式化、加密和压缩等,确保数据以正确的格式传输。
  7. 应用层 - 直接与用户交互的应用程序接口,比如电子邮件、文件传输、即时通讯等。

二、 发送过程:

假设你在微信中输入了“你吃了吗”,并点击发送按钮。

  1. 应用层 - 微信应用将你的消息转换为一种标准格式,可能还会进行加密处理,以便保护你的隐私。
  2. 表示层 - 这一步可能会对数据进行编码或压缩,确保数据在网络上传输时更加高效。
  3. 会话层 - 建立一个会话,确保消息能够从你的设备正确地发送到对方的设备。
  4. 传输层 - 使用TCP协议,将你的消息分割成多个小的数据包,并为每个数据包添加必要的控制信息,比如序列号,用于接收方重组原始消息。
  5. 网络层 - 每个数据包都会被加上一个IP头部,包含源IP地址和目标IP地址,帮助路由器确定如何转发这些数据包。
  6. 数据链路层 - 数据包被进一步封装成帧,添加源MAC地址和目标MAC地址,确保数据能够在本地网络内正确传递。
  7. 物理层 - 最终,这些帧被转换成电信号或光信号,通过网络介质(如网线、光纤)发送出去。

三、 接收过程:

当这些信号到达接收者的设备时,整个过程会反过来:

  1. 物理层 - 电信号或光信号被转换回数字信号。
  2. 数据链路层 - 根据MAC地址判断是否是发给自己的数据帧,如果是,则去掉帧头,提取出数据包。
  3. 网络层 - 根据IP地址判断是否是发给自己的数据包,如果是,则去掉IP头部,继续向上层传递。
  4. 传输层 - 使用TCP协议检查数据包是否有丢失或错误,按正确的顺序重组原始消息。
  5. 会话层 - 维护会话状态,确保消息的完整性和连续性。
  6. 表示层 - 解码或解压数据,使其恢复到发送前的状态。
  7. 应用层 - 微信应用读取解密后的数据,显示为你看到的消息:“你吃了吗”。

四、 完整数据转发流程

发送过程:

假设你在微信中输入了“你吃了吗”,并点击发送按钮。

  1. 应用层

    • 协议:HTTP/HTTPS(用于Web应用)、WebSocket(用于实时通信)
    • 输入数据:你吃了吗
    • 处理:微信应用将这条消息转换为一种标准格式,并可能进行加密。
    • 输出数据Encrypted(你吃了吗)
  2. 表示层

    • 协议:MIME(多用途互联网邮件扩展)、TLS/SSL(传输层安全)
    • 输入数据Encrypted(你吃了吗)
    • 处理:对数据进行编码或压缩,确保数据在网络上传输时更加高效。
    • 输出数据Compressed(Encrypted(你吃了吗))
  3. 会话层

    • 协议:SCTP(流控制传输协议)、RTP(实时传输协议)
    • 输入数据Compressed(Encrypted(你吃了吗))
    • 处理:建立会话,确保消息能够从你的设备正确地发送到对方的设备。
    • 输出数据SessionHeader + Compressed(Encrypted(你吃了吗))
  4. 传输层

    • 协议:TCP(传输控制协议)、UDP(用户数据报协议)
    • 输入数据SessionHeader + Compressed(Encrypted(你吃了吗))
    • 处理:使用TCP协议,将消息分割成多个小的数据包,并为每个数据包添加必要的控制信息,比如序列号。
    • 输出数据TCPHeader + SessionHeader + Compressed(Encrypted(你吃了吗))
  5. 网络层

    • 协议:IP(互联网协议)、ICMP(互联网控制消息协议)
    • 输入数据TCPHeader + SessionHeader + Compressed(Encrypted(你吃了吗))
    • 处理:每个数据包都会被加上一个IP头部,包含源IP地址和目标IP地址。
    • 输出数据IPHeader(Source: 192.168.1.1, Destination: 192.168.1.2) + TCPHeader + SessionHeader + Compressed(Encrypted(你吃了吗))
  6. 数据链路层

    • 协议:Ethernet(以太网)、Wi-Fi(无线局域网)
    • 输入数据IPHeader(Source: 192.168.1.1, Destination: 192.168.1.2) + TCPHeader + SessionHeader + Compressed(Encrypted(你吃了吗))
    • 处理:数据包被进一步封装成帧,添加源MAC地址和目标MAC地址。
    • 输出数据FrameHeader(Source MAC: 00:1A:2B:3C:4D:5E, Destination MAC: 00:1F:2B:3C:4D:5E) + IPHeader(Source: 192.168.1.1, Destination: 192.168.1.2) + TCPHeader + SessionHeader + Compressed(Encrypted(你吃了吗))
  7. 物理层

    • 协议:以太网物理层(如100BASE-TX)、光纤物理层
    • 输入数据FrameHeader(Source MAC: 00:1A:2B:3C:4D:5E, Destination MAC: 00:1F:2B:3C:4D:5E) + IPHeader(Source: 192.168.1.1, Destination: 192.168.1.2) + TCPHeader + SessionHeader + Compressed(Encrypted(你吃了吗))
    • 处理:这些帧被转换成电信号或光信号,通过网络介质(如网线、光纤)发送出去。
    • 输出数据:电信号或光信号

接收过程(逆向)

  1. 物理层

    • 协议:以太网物理层(如100BASE-TX)、光纤物理层
    • 输入数据:电信号或光信号
    • 处理:电信号或光信号被转换回数字信号。
    • 输出数据FrameHeader(Source MAC: 00:1A:2B:3C:4D:5E, Destination MAC: 00:1F:2B:3C:4D:5E) + IPHeader(Source: 192.168.1.1, Destination: 192.168.1.2) + TCPHeader + SessionHeader + Compressed(Encrypted(你吃了吗))
  2. 数据链路层

    • 协议:Ethernet(以太网)、Wi-Fi(无线局域网)
    • 输入数据FrameHeader(Source MAC: 00:1A:2B:3C:4D:5E, Destination MAC: 00:1F:2B:3C:4D:5E) + IPHeader(Source: 192.168.1.1, Destination: 192.168.1.2) + TCPHeader + SessionHeader + Compressed(Encrypted(你吃了吗))
    • 处理:根据MAC地址判断是否是发给自己的数据帧,如果是,则去掉帧头,提取出数据包。
    • 输出数据IPHeader(Source: 192.168.1.1, Destination: 192.168.1.2) + TCPHeader + SessionHeader + Compressed(Encrypted(你吃了吗))
  3. 网络层

    • 协议:IP(互联网协议)、ICMP(互联网控制消息协议)
    • 输入数据IPHeader(Source: 192.168.1.1, Destination: 192.168.1.2) + TCPHeader + SessionHeader + Compressed(Encrypted(你吃了吗))
    • 处理:根据IP地址判断是否是发给自己的数据包,如果是,则去掉IP头部,继续向上层传递。
    • 输出数据TCPHeader + SessionHeader + Compressed(Encrypted(你吃了吗))
  4. 传输层

    • 协议:TCP(传输控制协议)、UDP(用户数据报协议)
    • 输入数据TCPHeader + SessionHeader + Compressed(Encrypted(你吃了吗))
    • 处理:使用TCP协议检查数据包是否有丢失或错误,按正确的顺序重组原始消息。
    • 输出数据SessionHeader + Compressed(Encrypted(你吃了吗))
  5. 会话层

    • 协议:SCTP(流控制传输协议)、RTP(实时传输协议)
    • 输入数据SessionHeader + Compressed(Encrypted(你吃了吗))
    • 处理:维护会话状态,确保消息的完整性和连续性。
    • 输出数据Compressed(Encrypted(你吃了吗))
  6. 表示层

    • 协议:MIME(多用途互联网邮件扩展)、TLS/SSL(传输层安全)
    • 输入数据Compressed(Encrypted(你吃了吗))
    • 处理:解码或解压数据,使其恢复到发送前的状态。
    • 输出数据Encrypted(你吃了吗)
  7. 应用层

    • 协议:HTTP/HTTPS(用于Web应用)、WebSocket(用于实时通信)
    • 输入数据Encrypted(你吃了吗)
    • 处理:微信应用读取解密后的数据,显示为你看到的消息。
    • 输出数据:你吃了吗

你可能感兴趣的:(网络协议)