tcp硬件校验和rx&tx开启是啥意思_一文读懂 TCP/IP 网络模型

34f0122b24bccd621ca1bd22c5fcd9cc.png

前言

互联网是怎么构成的,又是怎么运作的?什么面试官老喜欢问 TCP/IP 网络?为什么远隔万里的计算机可以互相通信?计算机网络作为 IT 行业的基石,是工程师永远绕不开的话题。

网络的分层体系结构

计算机网络是一个非常庞大且复杂的系统,所以在设计之初就严格遵守着「分层」的设计理念。分层将庞大的问题细分为了若干个局部的小问题,具有下列好处:

  • 分层隔离
  • 灵活性好
  • 易于实现和维护
  • 能促进标准化工作

其中「标准化」是促进互联网全球化的关键,在计算机网络领域,你会听说到各种各样的协议,这些都是标准化的结果。试想,如果每个网卡厂商都使用了不同的网线接口风格,那无疑是一个灾难。

主流网络分层体系结构有两种:

  • OSI(Open Systems Interconnection Reference Model,开放系统互联基本参考模型),就是常说的七层网络模型。
  • TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/因特网协议)四层网络模型,也有人愿意归为 “五层网络模型”,以其中最重要的 TCP 协议和 IP 协议命名。
tcp硬件校验和rx&tx开启是啥意思_一文读懂 TCP/IP 网络模型_第1张图片

值得一提的是,由国际化标准组织制定的 OSI 模型,本来是最应该在全球范围内推广的网络模型,不过因为 OSI 的设计过于理想不合实际,再加上当时应用 TCP/IP 模型的因特网(Internet)已经覆盖了全球大部分地区。种种原因,导致 OSI 并没有取得市场化的成功,仅仅是获得了理论上的研究成果。而 TCP/IP 模型则被作为了事实上的国际标准。

TCP/IP 网络模型

请注意,计算机网络的分层体系结构虽然是抽象的,但实现则是具体的。

tcp硬件校验和rx&tx开启是啥意思_一文读懂 TCP/IP 网络模型_第2张图片

上图展示了 HTTP 应用数据在主机间传输的过程,首先自上而下、宏观的来看数据在分层网络模型里的流转。

  • 应用层的 “HTTP 数据” 是实际需要被传输的数据
  • “HTTP 数据” 被下发到传输层,并添加上 TCP 首部成为传输层的 PDU(Protocol Data Unit,协议数据单元),称作数据段(Segment)。
  • 数据段再被下发到网络层,添加了 IP 首部后成为网络层的 PDU,称作数据包(Packet)。
  • 数据包再被下发到数据链路层添加了 Ethernet 首部后得到的 PDU 被称为数据帧(Frame)。
  • 数据帧最后被下发到物理层,以 01 电信号(比特数据位)的形式在物理介质中传输。

TCP/IP 的每个层级都依赖于下层支撑,越往上就离用户越近,反正则离硬件越近。从上至下,不断为应用数据附加首部的过程称为封装,从下至上不断解析首部的过程则称为解封装

tcp硬件校验和rx&tx开启是啥意思_一文读懂 TCP/IP 网络模型_第3张图片

最终在物理层传输的数据帧如上图所示,含有多个首部(Head),它们具有不同的数据结构和功能,服务于数据传输的可行性。学习计算机网络,其实就是学习各式 Head 的功能,学习每一层的核心协议以及它所解决的问题。下面继续自下而上的对数据帧进行解析,深入各层级的实现细节。

物理介质层

物理介质是连接网络终端设备(计算机、交换机、路由器)的物理手段,最常见的有网线(双绞线),除此还有光纤、无线电波等。不同的物理介质决定了电信号传输的距离、带宽、速率、抗干扰能力等性能参数。

所以物理介质层主要解决的问题是:

  • 规范了网络终端设备之间的电气、机械、流程和功能等方面的要求
  • 规范了电频、速率、最大传输距离和物理接口等特征

物理层所带来的最直观的好处就是,我们可以使用同一根网线插进任何品牌的计算机上。

tcp硬件校验和rx&tx开启是啥意思_一文读懂 TCP/IP 网络模型_第4张图片

数据链路层

上文提到,数据实际会以电信号的形式在物理介质中传输,不过单纯的 01 数字显然是没有价值的,需要为电信号进行分组和排序,以特有的组织方式来赋予其特定的含义。数据链路层为了解决这个问题先后提出过包括有 Ethernet v.2、IEEE 802.2、Internetwork 在内的多种协议,其中又以 Ethernet 协议占据主导地位。

Ethernet 协议,即以太网协议,规定了电信号的分组方式。一组电信号称为一个数据帧,数据帧又由帧首、数据和帧尾三部分组成。发送方通过物理介质把数据帧发送给接收方,接收方接收到一组电信号,就会认为是接收到了一个数据帧。

你可能感兴趣的:(tcp硬件校验和rx&tx开启是啥意思_一文读懂 TCP/IP 网络模型)