Skip to content

Model网络模型

更新: 2025/2/24 字数: 0 字 时长: 0 分钟

网络模型

OSI参考模型

OSI 参考模型,英文全称"Open System Interconnect",中文全称"开放系统互连参考模型",是由国际标准化组织提出,一个试图使各种计算机在世界范围内互连为网络的标准框架。其目的是为了规范不同系统的互联标准,使两个不同系统能够较容易的通信,而不需要改变底层的硬件或软件的逻辑。它将整个网络通信的功能划分为七个层次,每层完成一定的功能,上层依赖于下层提供服务,下层依赖于上层提供数据,层与层之间相互独立又相互依靠。这七个层次由低到高分别是物理层(PH)、数据链路层(DL)、网络层(N)、传输层(T)、会话层(S)、表示层(P)、应用层(A)。

image-20220115190939523

应用层

**应用层是 OSI 参考模型的最高层,也是最接近用户的模型层,它负责处理用户与网络应用程序之间的通信。**具体有以下两个方面:

  • 协议数据:每个应用程序都是开发者根据特定的协议所编写的,当用户使用应用程序(浏览器、电子邮件客户端等)就会生成特定的协议数据,经过一层一层的向下传递,最终数据会通过物理层经过网络被另一台设备的物理层接收,经过一层一层的向上传递,数据到应用层用特定的协议进行处理和展示,最终呈现给用户。
  • 协议端口:**不同的应用层协议通常会对应不同的端口号,开发者就可以编写应用程序监听对应的端口号,当端口收到数据时,就会用对应的协议进行处理,这使得不同的应用程序之间可以通过特定的协议实现交互,因为它们遵循了相同的协议和端口号规定。**例如,HTTP 是应用层最常用的协议之一,默认使用传输层的 80 端口,当你的浏览器向 Web 服务器发出 HTTP 请求时,它会连接到服务器的 IP 地址并指定传输层的 80 端口,从而告诉服务器它正在使用 HTTP 协议进行通信。需要注意的是,有些协议默认使用的端口号是规范化的(比如 HTTP 的 80、HTTPS 的 443),而有些协议可能使用不规范化的端口号或者允许管理员根据需要配置端口号。

image-20231123223909325

建议

应用层只是逻辑上把两个应用连通,实际物理上的连通是需要物理层的。

表示层

**表示层负责对数据进行转换,包含编解码、加解密和解压缩。**具体到发送数据和接收数据两个方向:

  • 发送数据:当发送的数据从应用层给到表示层时,表示层就会对数据进行编码、加密和压缩,然后给到会话层。
  • 接收数据:当接收的数据从会话层接受数据,对数据进行解码、解密和解压,再将数据给到应用层。

image-20231123224433595

会话层

会话层负责建立、管理和终止表示层实体之间的会话连接,提供了 3 种不同的传输方式:单工、半双工、全双工。

image-20231123224910649

传输层

传输层负责建立端到端的通信服务,包括建立、维护和终止连接,以保证报文在端到端之间的传输,也就是服务进程到服务进程的传输。

image-20231123225057562

**当数据抵达对方主机时,对方主机可能运行着无数多个软件进程,如何让数据去到指定的软件服务上,这就依赖于传输层为应用层的各种协议提供了不同的端口了。**例如,我们用 Chrome 和 Firefox 同时登录网站,就需要用到端口号作为地址来定位,电脑中会给 Chrome 和 Firefox 分配不同的端口号,即使同时访问 HTTPS 的 443 端口也是没有问题的,只要根据不同的源端口号来作出响应就可以了,就像”管道“一样特定的进行传输。

image-20231204114655466

不同的应用程序所使用的应用层协议都会使用传输层的端口号进行标识,以便在传输层中进行识别,这样就可以在一个主机上同时运行多个网络应用,每个应用都可以通过不同的端口与网络进行通信,而传输层就在两个端口之间提供”可靠传输“或”不可靠传输“,它们分别对应着用于传输数据的 TCP 协议、UDP 协议:

  • **TCP协议(Transmission Control Protocol)提供可靠的、面向连接的通信,通过三次握手建立连接,四次挥手终止连接。**TCP 使用端口号来区分不同的服务或应用程序。常见的 HTTP 服务使用 TCP 协议,而 HTTP 的默认端口是 80。其他服务,比如 HTTPS(加密的HTTP),使用的是 TCP 的端口 443。
  • **UDP协议(User Datagram Protocol)面向无连接的通信,不进行连接的建立和断开。**UDP也使用端口号来标识不同的服务。一些实时性要求较高的应用程序,比如 VoIP(Voice over IP)通信,可能会使用 UDP 协议,而它们的端口号会有所不同。

**端口号的分配是由互联网指定的,并且在大多数情况下是固定的。当应用程序启动时,它会监听其默认端口,而客户端则通过连接到这些端口与服务器通信。端口号的使用使得网络上的应用能够协同工作,避免在同一主机上冲突。**例举一些常见的应用层协议和它们的默认传输层端口号:

  • HTTP(Hypertext Transfer Protocol):80端口
  • HTTPS(HTTP Secure):443端口
  • FTP(File Transfer Protocol):21端口
  • SSH(Secure Shell):22端口
  • SMTP(Simple Mail Transfer Protocol):25端口
  • POP3(Post Office Protocol 3):110端口
  • IMAP(Internet Message Access Protocol):143端口

提醒

平常说所的”套接字“,其实就是IP地址加端口号,即”IP地址: 端口号“。

网络层

网络层主要负责网络中数据包的传输,具体使用 IP(Internet Protocol)协议为网络设备提供 IP 逻辑地址,通过 IP 地址来进行数据包的路由选择、寻址和转发,从而建立端到端的基础,而建立端到端的连接就是传输层的责任了。说到路由选择,也就是说路由器也是网络层的核心,路由器根据包里的 IP 地址进行路由转发,地址管理和路由选择就是这一层的核心。

image-20231123230149231

数据链路层

数据链路层负责在不可靠的物理链路上,提供可靠的数据传输服务。在数据链路层这里数据头部会加上 MAC 地址,也就是网卡在全球唯一的物理地址,为了实现通过 MAC 地址定位某台设备进行定向的数据传输就出现了交换机。

image-20231123230415438

比如,一台交换机连接多台主机,发送端发送数据的时候,交换机就知道了发送端的 MAC 地址,如果交换机也知道接收端的 MAC 地址,就可以把数据直接发送过去了。物理地址就是这样把数据从一跳(结点)移动到另一跳(结点)的进行传递。

image-20231129232820418

物理层

我们要发送或接收的数据在计算机眼里只不过是无数的 0 和 1,每一个 0 或 1 就叫做“比特(bit)”,物理层就负责把这些比特通过不同的媒介逐个的传输出去,例如电信号、光信号、电磁波信号来表示和传输信号,对应到具体的传输介质就是网线、光纤、空气。

image-20231123230720823

提醒

前面我们将的双绞线(网线)、光纤这些传输介质都是属于物理层。

数据传输模型

我们将数据从 A 电脑经路由器发送给 B 电脑,流程图如下:电脑 A 操作软件——应用层(执行协议)——表示层(压缩加密)——会话层(传输方式)——传输层(连接传输)——网络层(IP地址)——数据链路层(MAC地址)——物理层(机器码)——数据链路层(MAC地址)——网络层(IP地址)——传输层(连接接收)——会话层(接收方式)——表示层(解压解密)——应用层(执行协议)——电脑 B 解析成文件

image-20231123232056775

数据在不同层所对应的名称会有所不同,具体如下:

  • 应用层、表示层和会话层的数据统称为“应用数据”,也可以叫“上层数据”,同时也是教科书上说的”报文“;
  • 传输层,在“报文”的基础加上端口号封装成“段”,建立了服务进程到服务进程的基础;
  • 网络层,在“段”的基础上加上了 IP 地址封装成“包”,建立了端到端的基础;
  • 数据链路层,在“包”的基础上加上了 MAC 地址封装成“帧”,建立了跳到跳的基础;
  • 物理层,数据通过网卡从”帧“处理为”比特“,通过网络线路发送出去。

image-20231204104043137

数据封装

在 A 电脑会对数据进行封装,流程图如下:A 电脑发送数据,也就是”报文“,来到传输层,加上源端口号和目的端口号封装成”段“,来到网络层,加上源 IP 地址和目的 IP 地址封装成”包“,来到数据链路层,加上源 MAC 地址和目的 MAC 地址封装成”帧“,来到物理层,数据封装为”比特“。

image-20231123232412329

数据解封

最后在 B 电脑会对数据进行解封装,流程图如下:和 A 电脑封装数据的流程相反,即反流程进行数据的解封装。

image-20231123232923744

TCP/IP模型

**OSI 参考模型更多意义上是一个概念模型,实际上用于我们的网络上的更多的是 TCP/IP 模型。TCP/IP 模型和 OSI 参考模型唯一区别就是,前者将 OSI 参考模型中应用层、表示层、会话层统一为应用层。**每层使用的设备和协议如下:

image-20220116232737833

image-20220116232911976