TCP/IP 模型解析

网络模型,是指计算机网络中的一种架构或布局,用于实现数据传输和通信。

网络模型的诞生是为了满足资源共享、通信需求,实现互操作性,提供管理和分层设计的框架,并方便故障隔离和调试。它们为计算机网络的发展和应用奠定了基础,并在各个领域广泛应用。

理解好网络模型,有助于帮助我们深入理解计算机网络,利用计算机网络做出更多有用的东西。

常见的网络模型有:

  • 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 模型主要分为四层,从上而下分别是应用层、传输层、网络层和网络接口层,如下图所示:

iOS-计算及网络基础 (3).jpg

应用层

iOS-计算及网络基础 (2).jpg

应用层是网络通信中的最高层,负责处理用户应用程序和网络之间的交互。应用层提供了各种协议和服务,以满足不同应用程序的需求。

应用层常用的协议有:

  • HTTP(Hypertext Transfer Protocol):用于在 Web 浏览器和 Web 服务器之间传输超文本文档,支持Web页面的访问和数据传输;
  • FTP(File Transfer Protocol):用于客户端和服务器端之间的文件传输,包括文件上传、下载、删除和重命名等功能;
  • SMTP(Simple Mail Transfer Protocol):用于电子邮件的发送,SMTP 将邮件从发送方传输到接收方的邮件服务器;
  • 除此之外还有 DNS、DHCP 和 SNMP 等协议。

应用层的数据单位我们会称为报文,例如 HTTP 报文,主要包含首部和数据部分,如下图所示:

iOS-计算机网络协议.jpg

传输层

iOS-计算及网络基础 (4).jpg

传输层位于网络层之上,应用层之下,负责提供可靠的端到端数据传输服务,并提供端口号来区分不同的应用程序。

传输层中主要有两个协议,分别是 TCP 和 UDP 协议:

  • TCP 协议全称是传输控制协议,是一个可靠、按需和面向连接的传输协议。TCP 具备很多优秀的特性,如超时重传、流量控制和拥塞控制等。
  • UDP 协议全称是用户数据报协议,是一个不可靠、尽最大交付的无连接的传输协议。虽然 UDP 协议不保证可靠,不提供流量控制等。但实时性好,传输速率高,经常用在游戏和音视频传输上。

应用层的报文会在传输层进一步封装,如 HTTP 报文交付到传输层后,TCP 协议会将 HTTP 报文当做数据部分,若 HTTP 报文超过最大限制,会进行分段,每一段再加上 TCP 首部会生成数据段,如下图所示:

iOS-计算机网络协议 (3).jpg

传输层协议是面向端口到端口的通信,通过端口来标识不同的应用程序或服务。每个应用程序或服务都会使用一个特殊的端口号来标识,保证数据能够正确应用的到达指定的应用程序或服务。端口会被记录在协议的首部里。

网络层

iOS-计算及网络基础 (5).jpg

网络层是位于传输层下面的一层协议,主要负责在不同的两个网络节点之间进行数据的寻址和路由的选择,主要目标是实现端到端的数据传输,将数据从源主机传送到目标主机。

网络层中主要使用的协议是 IP 协议,IP 协议会将传输层的报文作为数据部分,加上 IP 首部即可组成 IP 数据包。IP 协议对数据包的大小有一个最大限制,即 MTU,通常 MTU 不能超过 1500 个字节。因此,IP 首部加上IP 数据部分 不能超过 1500 个字节,若超过了会进行分包。如下图所示:

iOS-计算机网络协议 (4).jpg

网络层的寻址能力是由 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,如下图所示:

iOS-计算及网络基础 (1).jpg

第二步,子网掩码取反后为 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 协议通过寻址告诉数据下一个目的地往哪个方向,而路由则是根据下一个目的地来选择路径。寻址像导航,路由像方向盘。

网络接口层

iOS-计算及网络基础 (6).jpg

网络接口层位于 TCP/IP 模型的底层,负责处理物理网络和数据链路之间的通信。它封装和解封数据链路层帧,进行物理寻址,实现媒体访问控制,执行错误检测和纠正,并提供流量控制和差错控制等功能。

常见的网络接口层技术包括以太网(Ethernet)、Wi-Fi、令牌环网(Token Ring)等。它们定义了物理层接口和数据链路层协议,使不同类型的网络设备能够在网络中进行通信。

网络接口层会将网络层的数据包封装成数据帧,会在首部添加 MAC 地址。MAC地址是一个由48位二进制数组成的地址,用于唯一标识网络中的每个网络设备,例如计算机、路由器、交换机等。如下图所示:

iOS-计算机网络协议 (5).jpg

总述

综上所述,TCP/IP 网络通常是由上到下分成 4 层,分别是应用层,传输层,网络层和网络接口层。如下所示:

iOS-计算及网络基础 (7).jpg

除此之外,我们还解析了各个层的功能和相关协议,以及每个协议的数据单元的组成。希望可以帮助读者更好理解 TCP/IP 模型。

© 版权声明
THE END
喜欢就支持一下吧
点赞0

Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MYzJZmdJ' (Errcode: 28 - No space left on device) in /www/wwwroot/583.cn/wp-includes/class-wpdb.php on line 2345
admin的头像-五八三
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

图形验证码
取消
昵称代码图片