计算机网络——网络模型

发布于:2025-04-19 ⋅ 阅读:(19) ⋅ 点赞:(0)

一、OSI七层模型

(1)客户端发送请求时 OSI 七层模型的运作流程

  1. 应用层(Application Layer)
    1. 用户通过浏览器输入URL(如https://example.com),根据协议类型(HTTP/HTTPS)确定使用何种应用层协议
    2. 生成HTTP请求报文:包含请求行(如GET /index.html HTTP/1.1)、请求头(Host、User-Agent等)、请求体(POST数据)
    3. 补充:DNS解析(将域名转为IP地址)也在此层完成(通过DNS协议)
  2. 表示层(Presentation Layer)
    1. 数据转换:对应用层数据进行格式化(如JSON转二进制)
    2. 加密:如果使用HTTPS,SSL/TLS协议会在表示层对数据进行加密(注:实际中SSL/TLS协议横跨会话层和传输层,OSI模型中的表示层更多是理论划分)
    3. 压缩:对数据进行压缩(如GZIP)
  3. 会话层(Session Layer)
    1. 管理会话生命周期(建立、维持、终止)
    2. 实际实现
      1. 在TCP/IP模型中,会话管理通常由传输层(TCP三次握手)和应用层(如HTTP Keep-Alive)共同完成
      2. 例如,TCP连接的建立(三次握手)属于传输层,但会话层在OSI中理论上负责逻辑会话管理
  4. 传输层(Transport Layer)
    1. 分段:将数据分割为更小的段(Segment),并为每个段编号(序列号)
    2. 端口标识:添加源端口(随机)和目标端口(HTTP:80,HTTPS:443)
    3. 协议选择:根据需求选择TCP(可靠传输)或UDP(快速传输)
    4. 补充:TCP的三次握手在此层完成,确保连接可靠性
  5. 网络层(Network Layer)
    1. 封装IP头:添加源IP(客户端IP)和目标IP(服务器IP),形成数据包(Packet)
    2. 路由选择:根据路由表确定下一跳路由器,通过IP协议进行寻址
  6. 数据链路层(Data Link Layer)
    1. ​​​​​​​封装帧:添加帧头(源MAC地址、目标MAC地址)和帧尾(CRC校验码),形成数据帧(Frame)
    2. MAC寻址:通过ARP协议将目标IP转换为目标MAC地址
    3. 差错检测:通过CRC校验确保数据完整性
  7. 物理层(Physical Layer)
    1. ​​​​​​​信号转换:将数据帧转换为比特流(0和1)
    2. 物理传输:通过网线、光纤、WiFi等介质将比特流发送到下一跳设备(如路由器)

(2)服务器接收请求时 OSI 七层模型的运作流程

  1. 物理层 → 数据链路层
    1. ​​​​​​​物理层:接收比特流,转换为数据帧
    2. 数据链路层
      1. 检查帧头中的目标MAC地址是否为本机
      2. 校验CRC,若错误则丢弃帧
      3. 剥离帧头和帧尾,将数据包上传至网络层
  2. 网络层
    1. ​​​​​​​检查IP头中的目标IP是否为本机
    2. 若IP匹配,剥离IP头,将数据段上传至传输层
    3. 若为路由器,则根据路由表转发数据包
  3. 传输层
    1. ​​​​​​​根据目标端口(如80或443)将数据段交给对应的应用进程(如Web服务器)
    2. 若为TCP协议,发送ACK确认,并重组数据段为完整数据
  4. 会话层 → 表示层 → 应用层
    1. ​​​​​​​会话层:维护会话状态(如保持TCP连接)
    2. 表示层:解密(HTTPS)、解压缩、数据格式转换
    3. 应用层
      1. 解析HTTP请求报文(如提取URL、请求头)
      2. 处理请求(如读取文件、查询数据库)
      3. 生成HTTP响应报文(状态行、响应头、响应体)

二、TCP/IP四层模型

OSI七层模型 TCP/IP四层模型
应用层 应用层
表示层 应用层
会话层 应用层
传输层 传输层
网络层 网络层
数据链路层 网络接口层
物理层 网络接口层

三、总结

  1. TCP/IP模型更实用,实际网络协议栈(如Linux)基于此实现
  2. 常见协议归属TCP(传输层)、IP(网络层)、HTTP(应用层)、DNS(应用层)

网站公告

今日签到

点亮在社区的每一天
去签到