05 | 常说的“四层”和“七层”到底是什么?“五层”“六层”哪去了?

在这里插入图片描述## 小结

HTTP 所在的网络分层模型,它是工作中常用的交流语言,在这里简单小结一下今天的内容。

TCP/IP 分为四层,核心是二层的 IP 和三层的 TCP,HTTP 在第四层;
OSI 分为七层,基本对应 TCP/IP,TCP 在第四层,HTTP 在第七层;
OSI 可以映射到 TCP/IP,但这期间一、五、六层消失了;
日常交流的时候我们通常使用 OSI 模型,用四层、七层等术语;
HTTP 利用 TCP/IP 协议栈逐层打包再拆包,实现了数据传输,但下面的细节并不可见。

有一个辨别四层和七层比较好的(但不是绝对的)小窍门,“两个凡是”:凡是由操作系统负责处理的就是四层或四层以下,否则,凡是需要由应用程序(也就是你自己写代码)负责处理的就是七层。

1、TCP/IP协议是一个“有层次的协议栈”
2、TCP/IP协议总共有四层,顺序从下往上 链接层->网际层->传输层->应用层
3、链接层 link layer ,负责在底层网络上发送原始数据包,使用MAC地址来标记网络上的设备,所以也叫MAC层
4、网际层 internet layer,IP协议所在层,在链接层的基础上,用IP地址取代MAC地址,把许多局域/广域网连接成虚拟的巨大网络,在这个网络里找设备时只要把IP地址再翻译成MAC地址就可以
5、传输层 transport layer,TCP、UDP协议所在层,这个层次协议的职责是保证数据在IP地址标记的两点之间可靠地传输。
6、TCP和UDP区别:
TCP 有状态 需要先建立连接才能发送数据 保证数据不丢失不重复 数据是连续的字节流,有先后顺序
UDP 无状态 不需要先建立连接也可以发送数据 不保证数据一定会发送到对方 数据是分散的小数据包,顺序发、乱序收
7、应用层 application layer,Telnet、SSH、FTP、SMTP、HTTP
8、MAC层的传输单位是帧(frame),IP层的传输单位是包(packet),TCP层的传输单位是段(segment),HTTP的传输单位是消息或报文(message)。统称为数据包
9、OSI网络分层模型
1.第一层:物理层,网络的物理形式,例如电缆、光纤、网卡、集线器等等;
2.第二层:数据链路层,它基本相当于TCP/IP的链接层;
3.第三层:网络层,相当于TCP/IP里的网际层;
4.第四层:传输层,相当于TCP/IP里的传输层;
5.第五层:会话层,维护网络中的连接状态,即保持会话和同步;
6.第六层:表示层,把数据转换为合适、可理解的语法和语义;
7.第七层:应用层,面向具体的应用传输数据。
10、TCP/IP四层模型和OSI七层网络模型的映射关系
1.第一层:物理层,TCP/IP里无对应;
2.第二层:数据链路层,对应TCP/IP的链接层;
3.第三层:网络层,对应TCP/IP的网际层;
4.第四层:传输层,对应TCP/IP的传输层;
5.第五、六、七层:统一对应到TCP/IP的应用层。
11、*四层负载均衡:工作在传输层上,基于TCP/IP协议的特性,例如Ip地址,端口号等实现对后端服务器的负载均衡
12、*七层负载均衡:工作在应用层上,看到的是HTTP协议,解析HTTP报文里的URI、主机名、资源类型等数据,再用适当的策略转发给后端服务器

在这里插入图片描述

问答

你能用自己的话解释一下“二层转发”“三层路由”吗?
你认为上一讲中的 DNS 协议位于哪一层呢?
你认为 CDN 工作在那一层呢?

1. 二层转发,工作在二层的设备(i.e交换机)只认识MAC地址,所以建立MAC地址和端口的映射关系,来决定往哪个端口转发
2. 三层路由,工作在三层的设备(i.e路由器)利用ip地址和port,根据路由表选择最佳路径来转发包。
3.dns属于应用层
4.cdn应该工作在应用层

路由器的工作原理

路由器的工作原理是怎么样的呢?前面我们知道了交换机有MAC地址表,自动生成自动学习,同样的,路由器也有个路由表,会自己学习、生成、维护路由表。
我们举一个简单的例子,只要能看懂就可以了,不上图了:
1,主机A准备发数据给主机B。
2,A将B的IP地址连同数据一起,以数据包形式发送给路由器R1。
3,路由器R1收到数据包后,先从数据中读取到B的IP地址,然后根据路径表计算发往B的最优路径。
4,比如路径为:R1->R2->R5->B;并将数据包发往路由器R2。
5,路由器2重复路由器1的工作,并将数据包转发给路由器5。
6,路由器5同样取出目的地址,发现目的地址就在自己的网段上,于是将该数据包直接交给主机B。
7,主机B收到主机A的信息,一次完整的通信宣告结束。

nginx 工作在几层

Nginx的http子系统工作在应用层,也就是7层,stream子系统工作在传输层(tcp、udp),也就是4层。
所以Nginx支持的是四层和七层负载均衡。

老师 mac 地址不是全球唯一吗? 又与UUID 有什么区别呢?

   作者回复: mac是网卡地址,里面有制造商id,而uuid是另一种唯一编码,可以由随机数、sha/md生成。
   两种的编码方式、用途截然不同。

TCP/IP 网络分层模型

在这里插入图片描述

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

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

第三层叫“传输层”(transport layer),这个层次协议的职责是保证数据在 IP 地址标记的两点之间“可靠”地传输,是 TCP 协议工作的层次,另外还有它的一个“小伙伴”UDP。

TCP 是一个有状态的协议,需要先与对方建立连接然后才能发送数据,而且保证数据不丢失不重复。而 UDP 则比较简单,它无状态,不用事先建立连接就可以任意发送数据,但不保证数据一定会发到对方。两个协议的另一个重要区别在于数据的形式。TCP 的数据是连续的“字节流”,有先后顺序,而 UDP 则是分散的小数据包,是顺序发,乱序收。

关于 TCP 和 UDP 可以展开讨论的话题还有很多,比如最经典的“三次握手”和“四次挥手”,一时半会很难说完,好在与 HTTP 的关系不是太大,以后遇到了再详细讲解。

协议栈的第四层叫“应用层”(application layer),由于下面的三层把基础打得非常好,所以在这一层就“百花齐放”了,有各种面向具体应用的协议。例如 Telnet、SSH、FTP、SMTP 等等,当然还有我们的 HTTP。

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

OSI 网络分层模型

看完 TCP/IP 协议栈,你可能要问了,“它只有四层,那常说的七层怎么没见到呢?”

别着急,这就是今天要说的第二个网络分层模型:OSI,全称是“开放式系统互联通信参考模型”(Open System Interconnection Reference Model)。

TCP/IP 发明于 1970 年代,当时除了它还有很多其他的网络协议,整个网络世界比较混乱。

这个时候国际标准组织(ISO)注意到了这种现象,感觉“野路子”太多,就想要来个“大一统”。于是设计出了一个新的网络分层模型,想用这个新框架来统一既存的各种网络协议。

OSI 模型分成了七层,部分层次与 TCP/IP 很像,从下到上分别是:
在这里插入图片描述
第一层:物理层,网络的物理形式,例如电缆、光纤、网卡、集线器等等;
第二层:数据链路层,它基本相当于 TCP/IP 的链接层;
第三层:网络层,相当于 TCP/IP 里的网际层;
第四层:传输层,相当于 TCP/IP 里的传输层;
第五层:会话层,维护网络中的连接状态,即保持会话和同步;
第六层:表示层,把数据转换为合适、可理解的语法和语义;
第七层:应用层,面向具体的应用传输数据。

至此,我们常说的“四层”“七层”就出现了。

不过国际标准组织心里也很清楚,TCP/IP 等协议已经在许多网络上实际运行,再推翻重来是不可能的。所以,OSI 分层模型在发布的时候就明确地表明是一个“参考”,不是强制标准,意思就是说,“你们以后该干什么还干什么,我不管,但面子上还是要按照我说的来”。

但 OSI 模型也是有优点的。对比一下就可以看出,TCP/IP 是一个纯软件的栈,没有网络应有的最根基的电缆、网卡等物理设备的位置。而 OSI 则补足了这个缺失,在理论层面上描述网络更加完整。

还有一个重要的形式上的优点:OSI 为每一层标记了明确了编号,最底层是一层,最上层是七层,而 TCP/IP 的层次从来只有名字而没有编号。显然,在交流的时候说“七层”要比“应用层”更简单快捷,特别是英文,对比一下“Layer seven”与“application layer”。

综合以上几点,在 OSI 模型之后,“四层”“七层”这样的说法就逐渐流行开了。不过在实际工作中你一定要注意,这种说法只是“理论上”的层次,并不是与现实完全对应。

两个分层模型的映射关系

在这里插入图片描述

第一层:物理层,TCP/IP 里无对应;
第二层:数据链路层,对应 TCP/IP 的链接层;
第三层:网络层,对应 TCP/IP 的网际层;
第四层:传输层,对应 TCP/IP 的传输层;
第五、六、七层:统一对应到 TCP/IP 的应用层。

所以你看,这就是“理想与现实”之间的矛盾。理想很美好,有七层,但现实很残酷,只有四层,“多余”的五层、六层就这样“消失”了。

但这也有一定的实际原因。

OSI 的分层模型在四层以上分的太细,而 TCP/IP 实际应用时的会话管理、编码转换、压缩等和具体应用经常联系的很紧密,很难分开。例如,HTTP 协议就同时包含了连接管理和数据格式定义。

到这里,你应该能够明白一开始那些“某某层”的概念了。

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

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

TCP/IP 协议栈的工作方式

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: OSI(开放系统互联)7模型是计算机网络中常见的一种分模型。它把计算机网络中的各种功能划分为7个独立的次,每一专门负责处理特定的任务,每一到上一的数据传递都是通过标准的接口实现的。 1. 应用:负责与用户的应用程序进行通信,传输文件、电子邮件等数据。 2. 表示:负责处理数据的格式、加密等。 3. 会话:负责管理计算机之间的会话,确保数据传输的正确性和顺序。 4. 传输:负责提供端到端的数据传输服务,如流量控制、确认和重传。 5. 网络:负责管理数据在计算机网络中的传递,如路由选择、网络编址。 6. 数据链路:负责管理数据在物理链路上的传递,如帧的组装和拆分、差错检测和纠正。 7. 物理:负责管理物理连接,如电缆连接、无线信号传输等。 ### 回答2: OSI七层模型又称为开放系统互联模型,它将计算机网络通信的功能划分为不同的级,每一都有特定的功能和任务。 1. 物理: 物理是OSI模型的第一,它负责通过物理介质(如电缆、光纤)传输原始的位流(比特流),即0和1的序列。 2. 数据链路: 数据链路是OSI模型的第二,它将不可靠的物理传输转变为可靠的逻辑链路,并确保数据的无差错传输。 3. 网络: 网络是OSI模型的第三,它负责为数据包选择和传输最佳路径,并处理不同网络之间的路由。 4. 传输: 传输是OSI模型的第四层,它建立起端到端的数据传输连接,负责数据的可靠交付、流量控制和拥塞控制。 5. 会话: 会话是OSI模型的第五层,它负责建立、管理和终止用于数据交换的会话,包括会话的建立、同步、数据交换等。 6. 表示: 表示是OSI模型的第六层,它负责数据表示和提供适合应用处理的数据格式,如加密、数据压缩等。 7. 应用: 应用是OSI模型的最高,它与用户进行直接交互,提供网络服务和协议,如电子邮件、文件传输协议(FTP)、域名系统(DNS)等。 每一都承担不同的功能和传输不同的信息,通过分的方式,使得网络协议的设计、开发和维护更加简洁和灵活,同时也方便了不同厂商的设备之间的互操作性。 ### 回答3: OSI7模型是一种用来描述计算机网络体系结构的框架,每一承担着不同的功能和任务。下面是每一的功能和传输内容: 1. 物理(Physical Layer):负责传输比特流,即0和1的二进制信号。 2. 数据链路(Data Link Layer):负责将0和1的二进制信号转换为数据帧(frame)进行传输,还负责错误检测和纠正,以及流量控制。 3. 网络(Network Layer):负责路由选择和数据包(packet)的传输,将数据包从源主机传输到目标主机。 4. 传输(Transport Layer):负责提供端到端的通信连接,并确保可靠传输和错误恢复。常见的协议有TCP和UDP。 5. 会话(Session Layer):负责建立、管理和终止会话(session)连接,确保通信的连续性。 6. 表示(Presentation Layer):负责数据的格式转换、加密和解密,以确保数据能够正确地被解释和理解。 7. 应用(Application Layer):最接近用户的一,提供各种网络应用服务,如电子邮件、文件传输、远程登录和网页浏览等。 综上所述,OSI7模型中的每一都承担着不同的传输内容和功能,通过分结构的设计,实现了网络的可靠传输和高效通信。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值