笔记依据罗剑锋《透视HTP协议》课程
TCP/IP 网络分层模型
OSI,全称是“开放式系统互联通信参考模型”(Open System Interconnection Reference Model)。
MAC 地址(Media Access Control Address)也称为局域网地址,可以唯一地标识一个网卡也就同时标识了此网卡所属的设备。
在TCP/IP 协议栈之外,还是有一些协议位于OSI“五层”和“六层”的,例如 UNIX 域套接字就可以认为是在“五层”
DNS CDN都属于应用层
MAC 层的传输单位是帧(frame),IP 层的传输单位是包(packet),TCP 层的传输单位是段(segment),HTTP 的传输单位则是消息或报文(message)。但这些名词并没有什么本质的区分,可以统称为数据包。
所谓的“四层负载均衡”就是指工作在传输层上,基于 TCP/IP 协议的特性,例如 IP 地址、端口号等实现对后端服务器的负载均衡。
所谓的“七层负载均衡”就是指工作在应用层上,看到的是 HTTP 协议,解析 HTTP 报文里的 URI、主机名、资源类型等数据,再用适当的策略转发给后端服务器。
二层转发,工作在二层的设备(i.e交换机)只认识MAC地址,所以建立MAC地址和端口的映射关系,来决定往哪个端口转发。
三层路由,工作在三层的设备(i.e路由器)利用ip地址和port,根据路由表选择最佳路径来转发包。
TCP/IP 协议栈的工作方式
总结
- TCP/IP 分为四层,核心是二层的 IP 和三层的 TCP,HTTP 在第四层;
- OSI 分为七层,基本对应 TCP/IP,TCP 在第四层,HTTP 在第七层;
- OSI 可以映射到 TCP/IP,但这期间一、五、六层消失了;
- 日常交流的时候我们通常使用 OSI 模型,用四层、七层等术语;
- HTTP 利用 TCP/IP 协议栈逐层打包再拆包,实现了数据传输,但下面的细节并不可见。
有一个辨别四层和七层比较好的(但不是绝对的)小窍门,“两个凡是”:凡是由操作系统负责处理的就是四层或四层以下,否则,凡是需要由应用程序(也就是你自己写代码)负责处理的就是七层。
标签:HTTP,IP,网络,TCP,OSI,四层,分层,七层 From: https://www.cnblogs.com/JavaGoTray/p/17148140.html