基础 | 网络 - [网络模型]

@

§1 七层/四层模型

OSI(Open System Interconnect),即开放系统互联模型,就是我们说的七层模型
层次如下:

  • 引用层(Application):提供应用服务
  • 表示层(presentation):数据格式化、加密等
  • 会话层(Session):建立、管理、维护会话
  • 传输层(Transport):建立、维护端对端连接
  • 网络层(Network):IP选址路由等
  • 数据链路层(DataLink):提供介质访问与链路管理
  • 物理层(Physical):硬件资源

TCP/IP,就是我们说的四层模型,是对七层模型的封装简化
层次如下:

  • 应用层:七层协议中传输层以上
  • 传输层:七层协议中传输层
  • 网络层:七层协议中网络层
  • 网络接口层:七层协议中数据链路和物理层,网络接口是指硬件设备对接网络的接口

七层/四层协议对照关系如下:

七层 含义 四层
引用层(Application) 提供应用服务 应用层
表示层(presentation) 数据格式化、加密等 应用层
会话层(Session) 建立、管理、维护会话 应用层
传输层(Transport) 建立、维护端对端连接 传输层
网络层(Network) IP选址路由等 网络层
数据链路层(DataLink) 提供介质访问与链路管理 网络接口层
物理层(Physical) 硬件资源 网络接口层

§2 网络协议过程简明过程(以浏览器发送请求到服务器为例)

客户端(浏览器)发送请求

  • 浏览器发起对服务器的请求
  • 到达应用层:收集 http 协议头信息
    包括请求行、请求头、请求体等,示例如下
    GET URI HTTP/1.1
    Connection:keep-alive
    Content-Type:application/json
    [params]
    
  • 到达传输层:收集 TCP 头信息,增加端口号
    ----------------TCP--------------
    客户端端口信息
    服务端端口信息
    ----------------HTTP--------------
    GET URI HTTP/1.1
    Connection:keep-alive
    Content-Type:application/json
    [params]
    
  • 到达网络层:收集网络信息,增加 IP、MAC
    -----------------MAC-------------
    客户端 MAC
    网关 MAC
    -----------------IP-----------------
    客户端 IP
    服务端 IP
    -----------------TCP--------------
    客户端端口信息
    服务端端口信息
    ----------------HTTP-------------
    GET URI HTTP/1.1
    Connection:keep-alive
    Content-Type:application/json
    [params]
    
  • 到达网络接口层:把上述内容作为二进制流传输

服务端接收请求

  • 到达网络接口层:解析二进制流
    -----------------MAC-------------
    客户端 MAC
    网关 MAC
    -----------------IP-----------------
    客户端 IP
    服务端 IP
    -----------------TCP--------------
    客户端端口信息
    服务端端口信息
    ----------------HTTP-------------
    GET URI HTTP/1.1
    Connection:keep-alive
    Content-Type:application/json
    [params]
    
  • 到达网络层:拆掉 MAC/IP 信息
    ----------------TCP--------------
    客户端端口信息
    服务端端口信息
    ----------------HTTP--------------
    GET URI HTTP/1.1
    Connection:keep-alive
    Content-Type:application/json
    [params]
    
  • 到达传输层:拆掉 TCP 信息
    GET URI HTTP/1.1
    Connection:keep-alive
    Content-Type:application/json
    [params]
    
  • 到达应用层:解析 Http 信息,封装为 request 对象
posted @ 2025-05-21 10:31  问仙长何方蓬莱  阅读(9)  评论(0)    收藏  举报