04 TCP/IP 网络分层模型(四层和七层)
参考文章:七层/四层模型详解
TCP/IP
协议 - 是 HTTP
协议的下层协议,负责具体的 数据传输 工作
- 总结:多种划分方式下的模型及其对应关系
-
总结
1、
TCP/IP
分为四层,核心是二层的IP
和三层的TCP
,HTTP
在第四层2、
OSI
分为七层,基本对应TCP/IP
,TCP
在第四层,HTTP
在第七层3、
OSI
可以映射到TCP/IP
,但这期间一、五、六层消失了4、日常交流的时候我们通常使用
OSI
模型,用四层、七层等术语5、
HTTP
利用TCP/IP
协议栈逐层打包再拆包,实现了数据传输,但下面的细节并不可见 -
课后问题
1、如何辨别四层还是七层
(不绝对)“两个凡是”:凡是由 操作系统 负责处理的就是四层或四层以下,否则,凡是需要由 应用程序-也就是你自己写代码 负责处理的就是七层
2、
DNS
和CDN
都在应用层
第一种网络分层模型:TCP/IP 四层模型
各个层都有自己的传输单位,但这些名词并没有什么本质的区分,可以统称为 数据包
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 - 开放式系统互联通信参考模型
1、第一层:物理层,网络的物理形式,例如电缆、光纤、网卡、集线器等等,比特流 0/1 传输
2、第二层:数据链路层,它基本相当于 TCP/IP 四层模型里的的链接层/MAC层,控制上下两层的通信,帧
数据链路层数据包(以太网数据包)格式,除了应用层没有头部:
3、第三层:网络层,相当于 TCP/IP 四层模型里的网际层,IP 寻址和路由选择
4、第四层:传输层,相当于 TCP/IP 四层模型里的传输层,建立、维护、管理 端到端连接
5、第五层:会话层,维护网络中的 连接状态,即保持会话和同步
6、第六层:表示层,把 数据转换 为合适、可理解的语法和语义 - 数据格式化,加密、解密
7、第七层:应用层,面向具体的应用 传输数据,为应用程序提供网络服务
两种网络分层模型的对比如下:
OSI 的分层模型在四层以上分的太细,而 TCP/IP 实际应用时的会话管理、编码转换、压缩等和具体应用经常联系的很紧密,很难分开
- 负载均衡
-
四层模型中的负载均衡是指:
工作在 传输层 上,基于 TCP/IP 协议 的特性,例如 IP 地址、端口号等实现对后端服务器的负载均衡
-
七层模型中的负载均衡是指:
指工作在 应用层 上,看到的是 HTTP 协议,解析 HTTP 报文里的 URI、主机名、资源类型等数据,再用适当的策略转发给后端服务器
-