04 TCP/IP 网络分层模型(四层和七层)

Posted by CodingWithAlice on April 20, 2021

04 TCP/IP 网络分层模型(四层和七层)

参考文章:七层/四层模型详解

TCP/IP 协议 - 是 HTTP 协议的下层协议,负责具体的 数据传输 工作

  • 总结:多种划分方式下的模型及其对应关系

image-20210714113536293

  • 总结

    1、TCP/IP 分为四层,核心是二层的 IP 和三层的 TCPHTTP 在第四层

    2、OSI 分为七层,基本对应 TCP/IPTCP 在第四层,HTTP 在第七层

    3、OSI 可以映射到 TCP/IP,但这期间一、五、六层消失了

    4、日常交流的时候我们通常使用 OSI 模型,用四层、七层等术语

    5、HTTP 利用 TCP/IP 协议栈逐层打包再拆包,实现了数据传输,但下面的细节并不可见

  • 课后问题

    1、如何辨别四层还是七层

    (不绝对)“两个凡是”:凡是由 操作系统 负责处理的就是四层或四层以下,否则,凡是需要由 应用程序-也就是你自己写代码 负责处理的就是七层

    2、DNSCDN 都在应用层

第一种网络分层模型:TCP/IP 四层模型

image-20210420141707035

各个层都有自己的传输单位,但这些名词并没有什么本质的区分,可以统称为 数据包

1/4、链接层/MAC 层

  • 传输单位是帧(frame)

负责在以太网、WiFi 这样的底层网络上发送原始数据包,工作在网卡这个层次,使用 MAC 地址来标记网络上的设备

2/4、网际层/网络互连层

  • 传输单位是包(packet)

IP 协议 就在这一层,因为 IP 协议定义了“IP 地址”的概念,所以就可以在“链接层”的基础上,用 IP 地址取代 MAC 地址,把许许多多的局域网、广域网连接成一个虚拟的巨大网络。在这个网络里找设备时只要把 IP 地址再翻译成 MAC 地址就可以了。

3/4、传输层

  • 传输单位是段(segment)

TCP和UDP 就在这一层,这个层次协议的职责是保证 数据在 IP 地址标记的两点之间“可靠”地传输

对比 TCP UDP
状态 有状态协议 无状态协议
发送数据前置条件 需要先与对方建立连接 不用事先建立连接
稳定性 保证数据不丢失不重复 不保证数据一定会发到对方
传输的数据形式 连续的“字节流”,有先后顺序 分散的小数据包,是顺序发,乱序收

4/4、应用层

  • 传输单位则是消息或报文(message)

百花齐放,有各种面向具体应用的协议,例如 Telnet、SSH、FTP、SMTP、HTTP等

第二种网络分层模型:OSI七层模型

全称:open system interconnection - 开放式系统互联通信参考模型

image-20210420141835760

1、第一层:物理层,网络的物理形式,例如电缆、光纤、网卡、集线器等等,比特流 0/1 传输

2、第二层:数据链路层,它基本相当于 TCP/IP 四层模型里的的链接层/MAC层,控制上下两层的通信,帧

数据链路层数据包(以太网数据包)格式,除了应用层没有头部:

preview

3、第三层:网络层,相当于 TCP/IP 四层模型里的网际层,IP 寻址和路由选择

4、第四层:传输层,相当于 TCP/IP 四层模型里的传输层,建立、维护、管理 端到端连接

5、第五层:会话层,维护网络中的 连接状态,即保持会话和同步

6、第六层:表示层,把 数据转换 为合适、可理解的语法和语义 - 数据格式化,加密、解密

7、第七层:应用层,面向具体的应用 传输数据,为应用程序提供网络服务

两种网络分层模型的对比如下:

image-20210420141913888

OSI 的分层模型在四层以上分的太细,而 TCP/IP 实际应用时的会话管理、编码转换、压缩等和具体应用经常联系的很紧密,很难分开

  • 负载均衡
    • 四层模型中的负载均衡是指:

      工作在 传输层 上,基于 TCP/IP 协议 的特性,例如 IP 地址、端口号等实现对后端服务器的负载均衡

    • 七层模型中的负载均衡是指:

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