浅析网络封层模型

0 阅读9分钟

计算机网络分层模型的核心是 OSI 七层模型(应用、表示、会话、传输、网络、数据链路、物理)和 TCP/IP 四层模型(应用、传输、网络、网络接口)。TCP/IP 是事实标准,OSI 是理论框架。分层的本质是 化繁为简,模块解耦,让网络更易设计、实现与维护。


OSI 七层模型

OSI 七层模型 是国际化标准组织提出的一个网络分层模型,大体结构:

  • 应用层:为计算机用户提供服务
  • 表示层:数据处理(编解码、加密解密、压缩解压缩)
  • 会话层:管理(建立、维护、重连)应用程序 之间的会话
  • 传输层:为两台主机进程之间的通信提供通用的数据传输服务
  • 网络层:路由和寻址(决定数据在网络的游走路径)
  • 数据链路层:帧编码和误差纠正控制
  • 物理层:透明的传输比特流

OSI 七层模型 体系结构概念清楚,理论完整,但较为复杂其实用性较差,部分功能在多个层中重复出现

OSI 七层模型总结

OSI 七层模型

OSI 七层模型总结


TCP/IP 四层模型

TCP/IP 四层模型 是目前被广泛采用的一种模型,可以看做是 OSI 七层模型 的精简版本,包括:

  • 应用层
  • 传输层
  • 网络层
  • 网络接口层

TCP/IP 四层模型OSI 七层模型 的简单对应:

  • 应用层:应用层、表示层、会话层
  • 传输层:传输层
  • 网络层:网络层
  • 网络接口层:数据链路层、物理层

应用层(Application Layer)

应用层位于传输层之上,主要提供两个终端设备上的应用程序之间信息交换的服务,它定义了信息交换的格式,消息会交给下一层传输层来传输,通常把应用层交互的数据单元称为报文

应用层数据交换

应用层协议定义了网络通信规则,对应不同的网络应用需要不同的应用层协议,在互联网中协议很多,如支持 Web 应用的 HTTP 协议,支持电子邮件的 SMTP 协议

应用层常见协议:

应用层协议

  • HTTP(Hypertext Transfer Protocol,超文本传输协议):基于 TCP 协议,是一种用于传输超文本和多媒体内容的协议,主要是为 Web 浏览器与 Web 服务器之间的通信而设计的
  • SMTP(Simple Mail Transfer Protocol,简单邮件发送协议):基于 TCP 协议,是一种用于发送电子邮件的协议;需要注意 SMTP 协议只负责邮件的发送,而不包括接收,想从邮件服务器接收邮件,需要使用 POP3 或者 IMAP 协议
  • POP3/IMAP(邮件接收协议):基于 TCP 协议,两个都是负责邮件接收的协议,IMAP 协议比 POP3 要更新,且在功能和性能上都更强大;IMAP 支持邮件搜索、标记、分类、归档等高级功能,而且可以在多个设备之间同步邮件状态,现在电子邮件客户端和服务端几乎都支持 IMAP 协议
  • FTP(File Transfer Protocol,文件传输协议):基于 TCP 协议,是一种用于在计算机之间传输文件的协议,可以屏蔽操作系统和文件存储方式,需要注意 FTP 是一种不安全的协议,因为在传输过程中不会对数据进行加密,建议使用安全协议 SFTP
  • Telnet(远程登录协议):基于 TCP 协议,用于通过一个终端登录到其它服务器,Telnet 协议的缺点之一是所有数据(包括用户名和密码)都是以明文形式发送,潜在的安全风险较高,建议使用广泛应用的 SSH 协议,安全性非常高
  • SSH(Secure Shell Protocol,安全的网络传输协议):基于 TCP 协议,通过加密和认证机制实现安全的访问和文件传输等业务
  • RTP(Real-time Transport Protocol,实时传输协议):通常基于 UDP 协议,但也支持 TCP 协议,提供端到端的实时传输数据的功能,但不包括资源预留存、不保证实时传输质量,这些交由 WebRTC 实现
  • DNS(Domain Name System,域名管理系统):基于 UDP 协议,用于解决域名和 IP 地址之间的映射问题

传输层(Transport Layer)

传输层的主要任务是为两台终端设备进程之间的通信提供通用的数据传输服务,应用进程利用该服务传送应用层报文,“通用的”是指并不针对某一个特定的网络应用,而是多种应用可以使用同一个传输层服务

传输层常见协议:

  • TCP(Transmission Control Protocol,传输控制协议):提供 面向连接的、可靠的数据传输服务
  • UDP(User Datagram Protocol,用户数据协议):提供 无连接的、尽最大努力的数据传输服务(不保证数据传输的可靠性),简单高效

网络层(Network Layer)

网络层(也称网际层或 IP 层)负责为分组交换网上的不同主机提供通信服务,在发送数据时,网络层把传输层产生的报文段或用户数据报封装成分组和包进行传送,在 TCP/IP 体系结构中,由于网络层使用 IP 协议,因此分组也叫 IP 数据报或数据报

注意:不要弄混传输层的 UDP 用户数据报和网络层的 IP 数据报

网络层的另一个任务是选择合适的路由,使源主机传输层所传下来的用户数据报,能通过网络层中的路由器找到对应的目标主机

网络层中的网络指的不是具体的网络,而是计算机网络系统结构中的第三层

网络层常见协议:

网络层协议.png (709×352)

  • IP(Internet Protocol,网际协议):TCP/IP 模型(协议)中最重要的协议之一,主要作用是定义数据包的格式、对数据包进行路由和寻址,以使它们可以跨网络传播并抵达正确目的地;目前 IP 协议主要分为两种,一种是过去的 IPv4,一种是较新的 IPv6,两种协议都在使用中,但未来倾向于使用更新的 IPv6 作为选择
  • ARP(Address Resolution Protocol,地址解析协议):ARP 协议解决的是网络层地址和链路层地址之间的转换问题,因为一个 IP 数据报在物理上传输的过程中,需要知道下一跳(物理上的下一个目的地)该去往何处,但 IP 地址属于逻辑地址,而 MAC 地址才是物理地址,ARP 协议解决了 IP 地址转 MAC 地址的一些问题
  • ICMP(Internet Control Message Protocol,互联网控制报文协议):一种用于传输网络状态和错误消息的协议,常用于网络诊断和故障排除,例如 Ping 工具就是用了 ICMP 协议来测试网络连通性
  • NAT(Network Address Translation,网络地址转换协议):NAT 协议的应用场景如同其名称 — 网络地址转换,应用于内部网到外部网的地址转换过程中;具体来说,在一个局域网(LAN)内,各主机使用的是同一个 LAN 下的 IP 地址,但在该 LAN 以外,在广域网(WAN)中,需要一个统一的 IP 地址来标识该 LAN 在整个 Internet 上的位置
  • OSPF(Open Shortest Path First,开放式最短路径优先):一种内部网关协议(Interior Gateway Protocol,IGP),也是广泛使用的一种动态路由协议,基于链路状态算法,考虑了链路的带宽、延迟等因素来选择最佳路径
  • RIP(Routing Information Protocol,路由信息协议):一种内部网关协议(Interior Gateway Protocol,IGP),也是一种动态路由协议,基于距离向量算法,使用固定的跳数作为度量标准,选择跳数最少的路径作为最佳路径
  • BGP(Border Gateway Protocol,边界网关协议):一种用来在路由选择域之间交换网络层可达性信息(Network Layer Reachability Information,NLRI)的路由选择协议,具有高度的灵活性和可扩展性

网络接口层(Network Interface Layer)

网络接口层作为数据链路层和物理层的合体

  • 数据链路层(Data Link Layer)通常称为链路层(两台主机之间的数据传输,总是在一段一段的链路上传送的);数据链路层的作用是将网络层交下来的 IP 数据报组装成帧,在两个相邻节点间的链路上传送帧,每一帧包括数据和必要的控制信息,如同步信息、地址信息、差错控制等
  • 物理层的作用是实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异

网络接口层包括的重要功能和协议:

  • CSMA/CD
  • MAC
  • 差错检测
  • 多路访问
  • 以太网

总结

计算机网络模型结构.png (821×523)

应用层协议 :

  • HTTP(Hypertext Transfer Protocol,超文本传输协议)
  • SMTP(Simple Mail Transfer Protocol,简单邮件发送协议)
  • POP3/IMAP(邮件接收协议)
  • FTP(File Transfer Protocol,文件传输协议)
  • Telnet(远程登陆协议)
  • SSH(Secure Shell Protocol,安全的网络传输协议)
  • RTP(Real-time Transport Protocol,实时传输协议)
  • DNS(Domain Name System,域名管理系统)

传输层协议 :

  • TCP 协议
    • 报文段结构
    • 可靠数据传输
    • 流量控制
    • 拥塞控制
  • UDP 协议
    • 报文段结构
    • RDT(可靠数据传输协议)

网络层协议 :

  • IP(Internet Protocol,网际协议)
  • ARP(Address Resolution Protocol,地址解析协议)
  • ICMP 协议(控制报文协议,用于发送控制消息)
  • NAT(Network Address Translation,网络地址转换协议)
  • OSPF(Open Shortest Path First,开放式最短路径优先)
  • RIP(Routing Information Protocol,路由信息协议)
  • BGP(Border Gateway Protocol,边界网关协议)

网络接口层 :

  • 差错检测技术
  • 多路访问协议(信道复用技术)
  • CSMA/CD 协议
  • MAC 协议
  • 以太网技术

浅析网络分层的原因

为什么网络要分层呢

复杂的系统需要分层,因为每一层都需要专注于一类事情,网络分层也是一样,每一层处理一类事情

  • 各层之间相互独立,解耦,只需要实现自己的功能即可,其它的通过调用上下层提供的实现
  • 提供了整体灵活性,每一层都可以使用最适合的技术来实现,只需要保证提供的功能及接口的规则不发生改变即可
  • 大问题化小,分层可以将复杂的网络问题分解为许多比较小的、界限比较情况的简单问题来处理和解决,这样使得复杂的计算机网络系统变得易于设计、实现和标准化

参考

OSI 和 TCP/IP 网络分层模型详解(基础

计算机网络的七层结构、五层结构和四层结构 - 知乎