• 1.7.3、计算机网络体系结构分层思想举例


    这里用TCP举例

    主机和Web服务器之间基于网络的通信

    image-20221113181359807

    • 实际上是主机上的游览器应用进程与Web服务器中的Web服务器应用进程之间基于网络的通信。

    那么体系结构的各层在整个过程中起到怎样的作用呢?

    1、主机端的处理过程

    从主机端按体系结构自顶向下的顺序来看

    • 应用层按http协议的规定构建,构建一个HTTP请求报文。

      • 该报文内容

      image-20221113173106358

      • 应用层将HTTP请求报文交付给运输层处理
    • 运输层给HTTP请求报文添加一个TCP首部,使之称为TCP报文段

      • TCP报文段的首部格式

        image-20221113173145333

      • 主要是为了区分应用进程,以及实现可靠传输

      • 运输层将TCP报文段交付给网络层处理

    • 网络层给该 TCP 报文段添加一个 IP 首部,使之称为 IP 数据报

      • IP数据报的首部格式

        image-20221113173503795

      • 该首部的作用主要是为了使IP数据报可以在互联网上传输,也就是被路由器转发

      • 网路层将IP数据报交付给数据链路层处理

    • 数据链路层给IP数据报添加一个首部和一个尾部,使之成为帧

      • 假设网络N1是以太网,这是以太网帧首部的格式

        image-20221113174126592

        • 该首部的作用主要是为了让帧能够在一段链路上或一个网络上传输,能够被相应的主机接收
      • 以太网帧尾部的格式。

        image-20221113174310209

        • 其作用是为了让目的主机检查所接收到的帧是否有误码
      • 数据链路层将帧交付给物理层

    • 物理层将帧看作是比特流。由于网路N1是以太网,因此物理层还会给该比特流前面添加前导码。

      • 前导码的内容

        image-20221113174721462

        • 其作用是为了让目的主机做好接收帧的准备
      • 物理层将添加有前导码的比特流变换成相应的信号发送到传输媒体,信号通过传输媒体到达路由器

    2、路由器的处理过程

    • 物理层将信号变换为比特流,然后去掉前导码后,将其交付给数据链路层。

      • 这实际上交付的是帧
    • 数据链路层将帧的首部和尾部去掉后,将其交付给网络层。

      • 这实际上交付的是IP数据报
    • 网络层解析IP数据报的首部,从中提取出目的网络地址,然后查找自身的路由表,确定转发端口,以便进行转发

      • 网络层将IP数据报交付给数据链路层
    • 数据链路层给IP数据报添加一个首部和一个尾部,使之成为帧

      • 数据链路层将帧交付给物理层。
    • 物理层将帧看作是比特流。由于网路N2是以太网,因此物理层还会给该比特流前面添加前导码。

      • 物理层将添加有前导码的比特流变换成相应的信号发送到传输媒体,信号通过传输媒体到达Web服务器

    3、Web服务器的处理过程

    • 物理层将信号变换为比特流,然后去掉前导码后,将其交付给数据链路层。

      • 这实际上交付的是帧
    • 数据链路层将帧的首部和尾部去掉后,将其交付给网络层。

      • 这实际上交付的是IP数据报
    • 网络层将IP数据报的首部去掉后将其交付给运输层

      • 这实际上交付的是TCP报文段
    • 运输层将TCP报文段的首部去掉后将其交付给应用层

      • 这实际上交付的是HTTP请求报文
    • 应用层对HTTP请求报文进行解析,然后给主机发回HTTP响应报文与之前的类似

    image-20221113181326639

  • 相关阅读:
    jclasslib :java class字节码jvm指令分析
    Java下对象的序列化和反序列化(写出和读入)
    rabbitMQ:绑定Exchange发送和接收消息(direct)
    FPGA实现GTX视频传输,全网最细讲解,提供2套工程源码
    React 入门:对比 Reac t的新旧生命周期
    英特尔实验室公布集成光子学研究新进展
    【LeetCode】18. 四数之和
    AngouriMath: 用于C#和F#的开源跨平台符号代数库
    14:00面试,14:06就出来了,问的问题有点变态。。。
    Linux 的端口区间及设置
  • 原文地址:https://blog.csdn.net/qq_67720621/article/details/127838987