网络模型,是指计算机网络中的一种架构或布局,用于实现数据传输和通信。
网络模型的诞生是为了满足资源共享、通信需求,实现互操作性,提供管理和分层设计的框架,并方便故障隔离和调试。它们为计算机网络的发展和应用奠定了基础,并在各个领域广泛应用。
理解好网络模型,有助于帮助我们深入理解计算机网络,利用计算机网络做出更多有用的东西。
常见的网络模型有:
- OSI模型(Open Systems Interconnection model):由国际标准化组织(ISO)制定的一个开放系统互联模型,将计算机网络分为七个层次,从物理层到应用层,每一层都有特定的功能和协议;
- TCP/IP模型(Transmission Control Protocol/Internet Protocol model):TCP/IP是互联网通信的基本协议,它将网络分为四个层次,包括网络接口层、网络层、传输层和应用层;
- 五层模型:这是一个简化的网络模型,将计算机网络划分为五个层次,包括物理层、数据链路层、网络层、传输层和应用层。这种模型常用于描述局域网(LAN)中的网络结构。
在三种网络模型中,TCP/IP 模型被广泛应用于当今的互联网。我们从 TCP/IP 模型上深入学习,其他模型基本上都差不多。
TCP/IP 网络模型
TCP/IP 模型主要分为四层,从上而下分别是应用层、传输层、网络层和网络接口层,如下图所示:
应用层
应用层是网络通信中的最高层,负责处理用户应用程序和网络之间的交互。应用层提供了各种协议和服务,以满足不同应用程序的需求。
应用层常用的协议有:
- HTTP(Hypertext Transfer Protocol):用于在 Web 浏览器和 Web 服务器之间传输超文本文档,支持Web页面的访问和数据传输;
- FTP(File Transfer Protocol):用于客户端和服务器端之间的文件传输,包括文件上传、下载、删除和重命名等功能;
- SMTP(Simple Mail Transfer Protocol):用于电子邮件的发送,SMTP 将邮件从发送方传输到接收方的邮件服务器;
- 除此之外还有 DNS、DHCP 和 SNMP 等协议。
应用层的数据单位我们会称为报文,例如 HTTP 报文,主要包含首部和数据部分,如下图所示:
传输层
传输层位于网络层之上,应用层之下,负责提供可靠的端到端数据传输服务,并提供端口号来区分不同的应用程序。
传输层中主要有两个协议,分别是 TCP 和 UDP 协议:
- TCP 协议全称是传输控制协议,是一个可靠、按需和面向连接的传输协议。TCP 具备很多优秀的特性,如超时重传、流量控制和拥塞控制等。
- UDP 协议全称是用户数据报协议,是一个不可靠、尽最大交付的无连接的传输协议。虽然 UDP 协议不保证可靠,不提供流量控制等。但实时性好,传输速率高,经常用在游戏和音视频传输上。
应用层的报文会在传输层进一步封装,如 HTTP 报文交付到传输层后,TCP 协议会将 HTTP 报文当做数据部分,若 HTTP 报文超过最大限制,会进行分段,每一段再加上 TCP 首部会生成数据段,如下图所示:
传输层协议是面向端口到端口的通信,通过端口来标识不同的应用程序或服务。每个应用程序或服务都会使用一个特殊的端口号来标识,保证数据能够正确应用的到达指定的应用程序或服务。端口会被记录在协议的首部里。
网络层
网络层是位于传输层下面的一层协议,主要负责在不同的两个网络节点之间进行数据的寻址和路由的选择,主要目标是实现端到端的数据传输,将数据从源主机传送到目标主机。
网络层中主要使用的协议是 IP 协议,IP 协议会将传输层的报文作为数据部分,加上 IP 首部即可组成 IP 数据包。IP 协议对数据包的大小有一个最大限制,即 MTU,通常 MTU 不能超过 1500 个字节。因此,IP 首部加上IP 数据部分 不能超过 1500 个字节,若超过了会进行分包。如下图所示:
网络层的寻址能力是由 IP 协议提供的,IP 协议通过 IP 地址进行寻址。在 IPv4 协议中,IP 地址共 32 位,由网络号和主机号组成。其中,网络号用于表示该 IP 地址属于哪一个子网,主机号用于表示 IP 地址属于该子网下的哪一个主机。
举个例子,比如我们需要对 IP 地址为 10.100.122.2/24 的主机发送一份数据,24 对应的子网掩码为 255.255.255.0。
第一步我们需要找到 IP 地址对应的子网,将 10.100.122.2 和 255.255.255.0 进行 AND 运算,得出子网号为 10.100.122.0,如下图所示:
第二步,子网掩码取反后为 0.0.0.255,将 10.100.122.2 和 0.0.0.255 进行 AND 运算,得出主机号为 0.0.0.2。
所以我们的数据是发送给 10.100.122.0 子网下的 0.0.0.2 主机。
除了寻址功能,网络层还需要 IP 协议提供路由选择的能力。路由器需要通过选择找到目标地址的子网,进而将数据包转发到对应的网路中。所以,IP 协议通过寻址告诉数据下一个目的地往哪个方向,而路由则是根据下一个目的地来选择路径。寻址像导航,路由像方向盘。
网络接口层
网络接口层位于 TCP/IP 模型的底层,负责处理物理网络和数据链路之间的通信。它封装和解封数据链路层帧,进行物理寻址,实现媒体访问控制,执行错误检测和纠正,并提供流量控制和差错控制等功能。
常见的网络接口层技术包括以太网(Ethernet)、Wi-Fi、令牌环网(Token Ring)等。它们定义了物理层接口和数据链路层协议,使不同类型的网络设备能够在网络中进行通信。
网络接口层会将网络层的数据包封装成数据帧,会在首部添加 MAC 地址。MAC地址是一个由48位二进制数组成的地址,用于唯一标识网络中的每个网络设备,例如计算机、路由器、交换机等。如下图所示:
总述
综上所述,TCP/IP 网络通常是由上到下分成 4 层,分别是应用层,传输层,网络层和网络接口层。如下所示:
除此之外,我们还解析了各个层的功能和相关协议,以及每个协议的数据单元的组成。希望可以帮助读者更好理解 TCP/IP 模型。