第一层:物理层,TCP/IP 里无对应;
第二层:数据链路层,对应 TCP/IP 的链接层;
第三层:网络层,对应 TCP/IP 的网际层;
第四层:传输层,对应 TCP/IP 的传输层;
第五、六、七层:统一对应到 TCP/IP 的应用层。
OSI 的分层模型在四层以上分的太细,而 TCP/IP 实际应用时的会话管理、编码转换、压缩等和具体应用经常联系的很紧密,很难分开。例如,HTTP 协议就同时包含了连接管理和数据格式定义。
“四层负载均衡”就是指工作在传输层上,基于 TCP/IP 协议的特性,例如 IP 地址、端口号等实现对后端服务器的负载均衡。
“七层负载均衡”就是指工作在应用层上,看到的是 HTTP 协议,解析 HTTP 报文里的 URI、主机名、资源类型等数据,再用适当的策略转发给后端服务器。
TCP/IP 分为四层,核心是二层的 IP 和三层的 TCP,HTTP 在第四层;
OSI 分为七层,基本对应 TCP/IP,TCP 在第四层,HTTP 在第七层;
OSI 可以映射到 TCP/IP,但这期间一、五、六层消失了;
日常交流的时候我们通常使用 OSI 模型,用四层、七层等术语;
HTTP 利用 TCP/IP 协议栈逐层打包再拆包,实现了数据传输,但下面的细节并不可见。
有一个辨别四层和七层比较好的(但不是绝对的)小窍门,“两个凡是”:凡是由操作系统负责处理的就是四层或四层以下,否则,凡是需要由应用程序(也就是你自己写代码)负责处理的就是七层
Unix的域套接字可以认为是在osi的第五层
1、链接层 link layer ,负责在底层网络上发送原始数据包,使用MAC地址来标记网络上的设备,所以也叫MAC层
2、网际层 internet layer,IP协议所在层,在链接层的基础上,用IP地址取代MAC地址,把许多局域/广域网连接成虚拟的巨大网络,在这个网络里找设备时只要把IP地址再翻译成MAC地址就可以
3、传输层 transport layer,TCP、UDP协议所在层,这个层次协议的职责是保证数据在IP地址标记的两点之间可靠地传输。
4、TCP和UDP区别:
TCP 有状态 需要先建立连接才能发送数据 保证数据不丢失不重复 数据是连续的字节流,有先后顺序
UDP 无状态 不需要先建立连接也可以发送数据 不保证数据一定会发送到对方 数据是分散的小数据包,顺序发、乱序收
5、应用层 application layer,Telnet、SSH、FTP、SMTP、HTTP
6、MAC层的传输单位是帧(frame),IP层的传输单位是包(packet),TCP层的传输单位是段(segment),HTTP的传输单位是消息或报文(message)。统称为数据包
问题
解释一下“二层转发”“三层路由”吗?
二层转发:二层应该指数据链路层,工作在二层的设备,通过查找到目标MAC地址,进行数据转发
三层路由:三层应该指网络层,工作在三层的设备,通过解析数据包头信息,找到目标IP地址,转发数据
DNS 协议位于哪一层呢?
应用层
你认为 CDN 工作在那一层呢?
应用层
ip层可以找到对方的ip 并路由,为什么还要用到mac转发数据呢