4 HTTP的“四层”和“七层”

1 四层:TCP/IP 网络分层模型

四层是指TCP/IP 网络分层模型。

  1. 第一层:“链接层”(link layer),负责在以太网、WiFi 这样的底层网络上发送原始数据包,工作在网卡这个层次,使用 MAC 地址来标记网络上的设备,所以有时候也叫 MAC 层。

  2. 第二层:“网际层”或者“网络互连层”(internet layer),IP 协议就处在这一层。

    • 因为 IP 协议定义了“IP 地址”的概念,所以就可以在“链接层”的基础上,用 IP 地址取代 MAC 地址,把许许多多的局域网、广域网连接成一个虚拟的巨大网络,在这个网络里找设备时只要把 IP 地址再“翻译”成 MAC 地址就可以了。
  3. 第三层:“传输层”(transport layer),这个层次协议的职责是保证数据在 IP 地址标记的两点之间“可靠”地传输,是 TCP 协议工作的层次,另外还有它的一个“小伙伴”UDP。

    • TCP 是一个有状态的协议,需要先与对方建立连接然后才能发送数据,而且保证数据不丢失不重复;TCP 的数据是连续的“字节流”,有先后顺序。
    • UDP 是一个无状态的协议,不用事先建立连接就可以任意发送数据,但不保证数据一定会发到对方;UDP 是分散的小数据包,是顺序发,乱序收。
  4. 第四层叫“应用层”(application layer),由于下面的三层把基础打得非常好,所以在这一层就“百花齐放”了,有各种面向具体应用的协议。例如 Telnet、SSH、FTP、SMTP 等等,当然还有我们的 HTTP。

  5. 数据包

    • MAC 层的传输单位是帧(frame),IP 层的传输单位是包(packet),TCP 层的传输单位是段(segment),HTTP 的传输单位则是消息或报文(message)。
    • 但这些名词并没有什么本质的区分,可以统称为数据包。

2 七层:OSI网络分层模型

OSI全称为 开放式系统互联通信参考模型(Open System Interconnection Reference Model)`。
image

  1. OSI 模型的优点

    • TCP/IP 是纯软件的栈,没有网络应有的最根基的电缆、网卡等物理设备的位置,OSI补上了这个缺失
    • OSI 为每一层标注了明确的编号(第一张图是我自己为了区分标的,模型上没有),最底层为第一层,最上层为第七层。
  2. 两个分层模型的映射关系

    • 第一层,物理层,TCP/IP 无对应
    • 第二层,数据链路层,对应 TCP/IP 的链路层
    • 第三层,网络层,对应 TCP/IP 的网际层
    • 第四层,传输层,对应 TCP/IP 的传输层
    • 第五、六、七层,统一对应到 TCP/IP 的应用层
  3. 四层负载均衡指什么?

    • 指工作在应用层上,基于 TCP/IP 协议的特性,例如 IP 地址,端口号等实现对后端服务器的负载均衡。
  4. 七层负载均衡指什么?

    • 指工作在应用层上,看到的是 HTTP 协议,解析HTTP 报文里的 URI、主机名、资源类型等数据,再用适当的策略转发给后端服务器。

3 TCP/IP 协议栈的工作方式

逐层打包再拆包,实现数据传输,但是细节不可见
image

原文地址:https://www.cnblogs.com/hqq2019-10/p/14693329.html