news 2026/7/21 16:57:45

网络基础概念 [ 上 ]

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
网络基础概念 [ 上 ]

计算机网络背景

网络发展:从孤立到互联的演变

独立模式:计算机的孤岛时代

在早期的计算机时代,每台计算机都是一个独立的个体,彼此之间没有联系。就像办公室里的独立办公桌,每个办公桌代表一台计算机,它们各自为政,互不干扰。

  • 独立模式的特点

    • 每台计算机独立运行,没有数据共享。

    • 每个终端(如终端A、终端B、终端C)各自持有客户数据。

    • 计算机之间没有协作,各自完成独立的任务。

这种模式就像孤岛,虽然每台计算机都能完成自己的任务,但效率低下,资源共享困难。(之间的业务分工都是需要等待前一个人完成,然后再通过一个叫做软盘的东西,进行数据的拷贝,以及传递的)(通过软盘实现主机之间的数据拷贝)

也就是在没有网络时,计算机之间也是可以进行数据交互的,只不过需要人之间的协作(数据拷贝是需要人来参与的:这就是效率低)。

互联模式:打破孤岛,实现数据共享

随着业务需求的增长,计算机之间的协作变得越来越重要。于是,网络互联应运而生,多台计算机连接在一起,实现了数据共享。

  • 互联模式的特点

    • 计算机之间通过网络连接,可以共享数据。

    • 业务①、业务②、业务③可以分别在不同的终端上运行,但数据可以在网络中传递。

    • 提高了工作效率,减少了重复劳动。

这种模式就像办公室里的共享文件柜,员工们可以共享文件,提高工作效率。

局域网模式:协同工作的高效网络

随着技术的进步,网络规模逐渐扩大,形成了局域网(LAN)。局域网将多台计算机连接在一起,形成一个较大的网络环境,可以看作是一个比较大的局域网。

  • 局域网模式的特点

    • 多台计算机连接在一起,形成一个网络。

    • 业务①、业务②、业务③可以共享服务器资源。

    • 提高了资源利用率,减少了硬件成本。

    • 支持复杂的协同工作,如文件共享、打印共享等。

这种模式就像一个团队,成员之间分工合作,共享资源,提高效率。

广域网模式:跨越地理边界的全球网络

随着需求的进一步扩展,广域网(WAN)应运而生。广域网是一种覆盖较大地理范围的计算机网络,用于连接不同城市、国家甚至是跨洲的网络。

  • 广域网的特点

    • 覆盖范围广泛:广域网可以跨越城市、国家甚至全球范围,连接不同地理位置的局域网。

    • 高速数据传输:广域网采用高速传输介质(如光纤、卫星)和专用线路,确保数据传输的高效性。

    • 高可靠性和安全性:广域网通过冗余设计和加密技术,确保数据传输的稳定性和安全性。

    • 支持多种网络协议:广域网兼容多种网络协议(如TCP/IP),能够连接不同类型的设备和网络。

  • 广域网的应用场景

    • 企业网络连接:广域网可以将企业的分支机构连接在一起,实现数据共享和协同工作。

    • 远程教育和医疗:广域网为远程教育和医疗提供了基础设施,使得学生和患者能够通过互联网接受服务。

    • 云计算服务:广域网为云计算服务提供了高速、稳定的网络连接,支持大规模数据的存储和处理。

这种模式就像一个全球化的网络,将世界各地的人们和资源连接在一起,推动了信息的共享和交流。

所谓"局域网"和"广域网"只是一个相对的概念。比如,我们有"天朝特色"的广域网,也可以看做一个比较大的局域网.

从独立模式到互联模式,再到局域网和广域网模式,网络的发展经历了从孤立到互联的演变。这种演变不仅提高了工作效率,还为现代网络的复杂应用奠定了基础。

  • 独立模式:计算机各自为政,效率低下。

  • 互联模式:打破孤岛,实现数据共享。

  • 局域网模式:协同工作,资源共享,效率最大化。

  • 广域网模式:跨越地理边界,连接全球资源,推动信息共享。

网络的发展是人类协作需求的自然延伸,随着技术的进步,网络将继续演化,为人类带来更多便利和可能性。


网络的发展

运营商、互联网公司、通信公司三者之间的关系
一、角色定位
角色定义代表企业
运营商提供网络基础设施,确保网络的稳定运行。中国移动、中国联通、中国电信、AT&T(美国)、Verizon(美国)
互联网公司提供各种互联网服务,如搜索引擎、社交媒体、电子商务等。谷歌、亚马逊、阿里巴巴、腾讯、字节跳动
通信公司开发通信技术,提供网络设备和技术支持。华为、诺基亚、爱立信、中兴通讯、思科
二、相互关系

运营商与互联网公司

  • 提供服务:运营商为互联网公司提供网络基础设施,确保其服务能够稳定运行。

  • 合作与竞争:互联网公司依赖运营商的网络,但也在某些领域(如内容分发网络CDN)与运营商竞争。

运营商与通信公司

  • 设备供应:通信公司为运营商提供网络设备和技术支持,帮助运营商构建和优化网络。

  • 技术合作:运营商与通信公司合作,共同推动新技术的研发和应用。

互联网公司与通信公司

  • 技术支持:通信公司为互联网公司提供底层通信技术支持。

  • 服务优化:互联网公司利用通信公司的技术,优化其服务的性能和用户体验。

三、螺旋式发展

早期发展

  • 互联网公司:早期互联网公司(如雅虎、谷歌)主要提供信息检索和邮件服务。

  • 运营商:运营商(如AT&T、中国移动)提供基础网络服务,确保互联网公司能够稳定运行。

  • 通信公司:通信公司(如华为、诺基亚)提供网络设备,支持运营商的网络建设。

相互推动

  • 互联网公司推动运营商:随着互联网服务的普及,用户对网络带宽和稳定性的需求增加,推动运营商不断升级网络。

  • 运营商推动通信公司:运营商需要更高效、更稳定的网络设备,推动通信公司研发新技术。

  • 通信公司推动互联网公司:通信公司提供的新技术(如5G)为互联网公司提供了更高的网络性能,支持更多创新服务。

协同发展

  • 云计算与边缘计算:互联网公司利用运营商的网络和通信公司的技术,开发云计算和边缘计算服务。

  • 物联网与智能家居:通信公司提供底层技术支持,运营商提供网络连接,互联网公司开发应用服务。

  • 人工智能与大数据:互联网公司利用通信公司的硬件支持和运营商的网络,推动人工智能和大数据的发展。

未来趋势

  • 6G与量子通信:通信公司继续研发下一代通信技术,为运营商和互联网公司提供更高的网络性能。

  • 元宇宙与虚拟现实:互联网公司利用新技术开发沉浸式体验,推动网络需求进一步增长。

  • 全球化与本地化:运营商和通信公司通过全球化布局,支持互联网公司的本地化服务。


运营商、互联网公司和通信公司之间形成了一个相互依赖、协同发展的生态系统。这种螺旋式的发展模式不仅推动了技术的进步,也促进了服务的创新和用户体验的提升。随着技术的不断进步,这一生态系统将继续演化,为人类社会带来更多可能性。

初识协议

在计算机里,只要涉及长距离通信,就必然会存在一个概念叫做协议。那么这个协议有什么用呢?协议可以减少我们通信的成本,用于快速形成共识。

举个例子:

想象一下,如果没有交通规则,道路上的车辆会陷入混乱。红灯停、绿灯行,这就是一种交通协议。通过这种简单的约定,所有司机都能快速理解彼此的意图,避免碰撞和混乱,从而高效地完成通行。如果没有这个协议,司机们需要花大量时间去判断对方的意图,甚至可能导致事故。

所以,协议本质就是一种约定!(协议的第一层理解)它通过明确的规则,确保通信双方能够高效、准确地交换信息,减少误解和混乱。

计算机只认识二进制,二进制在计算机内部,冯诺依曼体系中,可能用有无来表示0/1,但是网络中,在远距离传播通信时,可能是通过各种波形图,各种数字信号来进行长距离传输,所以计算机内只认识二进制,网络当中也是只认识二进制的;计算机之间的传输媒介是光信号和电信号。通过 "频率" 或 "强弱" 等来表示 0 和 1 这样的信息。要想传递各种不同的信息,就需要约定好双方的数据格式。

思考:只要通信的两台主机,约定好协议就可以了么?

  • 定好协议,但是你用频率表示 01,我用强弱表示 01,就好比我用中国话,你用葡萄牙语一样,虽然大家可能遵守的一套通信规则,但是语言不同,即是订好了基本的协议,也是无法正常通信的。(要么一起用频率来表示,或者一同使用强弱来表示)

所以,完善的协议,不仅仅是0/1达成对应的共识,还需要更多更细致的规定,并让参与的人都要遵守。

  • 计算机生产厂商有很多;

  • 计算机操作系统,也有很多;

  • 计算机网络硬件设备,还是有很多;

  • 如何让这些不同厂商之间生产的计算机能够相互顺畅的通信?就需要有人站出来,约定一个共同的标准,大家都来遵守,这就是网络协议;

一般具有定制协议或者标准的资格的组织或者公司都必须是业界公认或者具有江湖地位的组织或者公司,下面是文心一言生成的标准制定组织,大家看一下就可以。

问:能定制协议标准的组织或公司???

国际标准化组织

  • IEEE(电气和电子工程师协会):在通信协议领域贡献突出,制定了全球约30%的电子、电气和计算机科学标准,包括IEEE 802系列标准,涵盖局域网(LAN)到广域网(WAN)等多种网络技术。

  • ISO(国际标准化组织):在开放系统互连(OSI)模型方面工作著名,定义了网络通信的七层协议结构,尽管TCP/IP协议族在实际应用中更普遍,但OSI模型在学术和理论研究中仍占重要地位。(只提供标准,不提供代码的)

  • ITU(国际电信联盟):联合国下属专门机构,负责制定电信领域国际标准,ITU-T制定的标准涵盖电话和网络通信,与ISO合作确保通信技术全球兼容性和互操作性。

区域标准化组织

  • ETSI(欧洲电信标准学会):由欧洲共同体各国政府资助,由电信行业厂商与研究机构参与,从事研究开发到标准制定。

  • ASTAP(亚洲与泛太平洋电信标准化协会):1998年由日本与韩国发起成立,旨在加强亚洲与太平洋地区各国信息通信基础设施及其相互连接的标准化工作协作。

公司

  • 泰凌微:自研各种标准的软件协议栈,包括低功耗蓝牙、Zigbee、Thread及Matter等,并可进行定制化改动,这是其核心竞争力之一。还计划重点发展智能电子价签、智能遥控、智能家居等市场。

民间国际团体

  • IETF(互联网工程师任务组):负责开发和推广互联网协议,特别是构成TCP/IP协议族的协议,通过RFC发布新的或取代老的协议标准。

官方机构

  • FCC(联邦通信委员会):美国对通信技术管理的官方机构,主要职责是通过对无线电、电视和有线通信的管理来保护公众利益,也对包括标准化在内的通信产品技术特性进行审查和监督。

以上这些组织或公司都能在一定程度上定制协议标准,以满足特定需求或推动技术发展。

这些协议主要是提供标准和规则,而不是具体的代码实现。协议定义了通信的规则、数据格式、传输方式等,确保不同厂商和开发者能够基于相同的规则开发兼容的系统和应用程序。具体的代码实现则由开发者根据这些协议标准来编写。(从软件到硬件,从上到下各种细节全部约定好)

如果计算机之间不遵守协议,就好比人们在交流时不遵守交通规则。如果没有红绿灯或者大家不按红绿灯行事,路上的车就会乱成一团,经常撞车,谁也别想顺利到达目的地。同样,计算机如果不按协议办事,数据传输就会乱套,谁也别想好好上网。所以,协议就是计算机之间的“交通规则”,大家都得遵守,不然整个网络就会乱成一锅粥。

就像我们约定好“3”代表“开门”,如果一方不遵守协议,把“3”理解成“关门”,那就会出问题。协议就是大家事先约定好的“暗号”,大家都按这个“暗号”来做事,才能保证数据传输不出乱子。要是有人不按“暗号”来,那整个通信过程就会乱套,甚至完全失败。

所以计算机之间是如何进行约定的呢?

计算机之间通过遵循共同的协议来进行约定和通信。这些协议是预先定义好的规则和标准,确保了不同厂商生产的计算机能够相互理解和顺畅地交换数据。主要的协议包括TCP/IP协议族,它涵盖了从链路层到应用层的多个层次,如以太网协议、IP、TCP、UDP、HTTP 等。这些协议规定了数据的格式、传输方式、错误检测与纠正等,使得计算机之间能够高效、可靠地进行通信。虽然 ISO 的 OSI 模型提供了一个理论框架,但在实际应用中,TCP/IP 协议族更为广泛使用,它确保了不同计算机系统之间的互操作性。


协议分层

协议本质上是一种规定,它定义了通信的规则和标准。然而,协议的实现通常需要通过软件来完成,因为软件是实现这些规则的具体方式。

所以协议的本质也是软件,在设计上为了更好的进行模块化,解耦合,也是被设计成为层状结构的。

对于协议来讲,很显然,将协议定好了,不同的协议肯定有各种各样的功能需要,但是协议最终在软件上是层状式的设计的。关于软件去分层这件事,我们肯定不陌生了,在语言层面上,C++ 中的一套继承体系:基类 --- 子类就是对应的软件分层。在 Linux 内核中,内核源代码时,对应的内核结构 struct file 包含了对应的底层的函数指针,可以指向底层不同的方法,这就是我们一切皆文件的时候的分层,我们的软件,一旦设计了,基本都是层状结构的,层状结构可以更好的进行模块化,解耦合。

今天有两个人,一个 A,一个 C,他们两个间通过电话机,使用汉语进行交流,那汉语用电话来进行通信。当我们两个人打电话的时候,站在人的视角上,是我们人之间在进行直接沟通,但是在工程师的视角当中,A 说的话并不是直接到了 C 的这里,而是把自己说的话,交给了电话,电话对 A 的声音做采集,压缩,加密,然后以特定的频率或方式发送出去,因为两个电话是接通的,将电话信息转到对方的电话机当中,对方再做解密,解压,然后调用听筒,把信息播放出来,C 就可以听到了,C 对 A 反向的也是如此。

所以,我们有两种视角来看到软件层状结构这种东西:

  • 普通用户视角:认为两个用户之间在进行直接通信,两台电话也在直接通信;
  • 工程师视角:用户 - 电话机 - 电话机 - 用户。(分装分用)

还有:同层之间,是不可以进行"直接"(不调用任何接口)通信的!!!

后来,A 和 C 之间使用无线电进行通信了,不再使用座机了,手机打电话只是将底层协议,设备给换了,但是上层还是可以直接沟通的,上层不受影响。一样的,拿这两个座机不是两个中国人,是外国人,在上层使用英语,也就可以直接沟通了。

所以,一旦软件分层之后,可以对任意层进行无障碍替换,这就是软件分层带来的解耦合的好处,也就是软件的可维护性强。

  • 在这个例子中,我们的"协议"只有两层:语言层、通信设备层;
  • 但是实际的网络通信协议,设计的会更加复杂,需要分更多的层;
  • 但是通过上面的简单例子,我们是能理解,分层可以实现解耦合,让软件维护的成本更低。

我们后面要学习的网络协议栈就是分层的!

OSI 七层模型

OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范;把网络从逻辑上分为了7层。每一层都有相关、相对应的物理设备,比如路由器,交换机;OSI 七层模型是一种框架性的设计方法,其最主要的功能就是帮助不同类型的主机实现数据传输;它的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整。通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯;但是,它既复杂又不实用;所以我们按照 TCP/IP 四层模型来讲解。

OSI 模型其实定义得特别好,只不过我们刚开始学习网络的时候,还没有基本的将应用层代码写过一段时间,我们感觉不到他的好,所以在这里不强调,OSI 在这里定义的 7 层协议,每一层都有用,每一层在我们之后的代码当中都会体现,只不过现在还看不出来。

OSI 定义出来的7层模型,是需要由对应的工程师(Linux,Windows 等操作系统),做实现的,但是工程师们在实现的时候,发现,这 7 层模型是无法全部实现的,这个为什么问题,我们后面会提到。

所以实际生活中,我们使用的网络协议是按照 TCP/IP 模型的。

TCP/IP五层(或四层)模型

TCP/IP 是一组协议的代名词,它还包括许多协议,组成了 TCP/IP 协议簇。 TCP/IP 通讯协议采用了 5 层的层级结构(多了一层物理层),每一层都呼叫它的下一层所提供的网络来完成自己的需求。

  • 物理层:负责光/电信号的传递方式。比如现在以太网通用的网线(双绞线)、早期以太网采用的同轴电缆(现在主要用于有线电视)、光纤,现在的 wifi 无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等。集线器(Hub)(做信号放大)工作在物理层。

  • 数据链路层:负责设备之间的数据帧的传送和识别。例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作。有以太网、令牌环网、无线LAN等标准。交换机(Switch)工作在数据链路层。

  • 网络层:负责地址管理和路由选择。例如在 IP 协议中,通过 IP 地址来标识一台主机,并通过路由表的方式规划出两台主机之间的数据传输的线路(路由)。路由器(Router)工作在网络层。

  • 传输层:负责两台主机之间的数据传输。如传输控制协议(TCP),能够确保数据可靠的从源主机发送到目标主机。

  • 应用层:负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。我们的网络编程主要就是针对应用层。



TCP/IP 解决的是长距离网络通信的问题;

以太网、令牌环网、无线 LAN 等标准,对应的是局域网通信的原理:

因为网络的产生是由局部到整体的,在刚开始并没有一个统一的网络通信的标准,只能是各搞各的(贝尔实验室,麻省理工,清华大学...... ),所以在网络的初期,一定会诞生大量不同的局域网通信的标准,后来随着大浪淘沙,一定会淘汰掉一部分,留下来的常见的就三个以太网、令牌环网、无线 LAN。

所以为什么局域网会有那么多种,原因是网络发展是由局部到整体的。局域网一旦要从局部过度到整体,他没有办法直接过度,需要从硬件到软件全部都要由各种人去支持,所以在过度就需要有一个组织来订一套标准。所以长距离传输的解决方案必须是唯一的,否则就会造成我们的整个网络是分裂的。

所以现实的网络是:多种局域网通信标准 + 一种广域网通信标准。

不是有一种广域网通信标准了嘛,为什么还要有多种局域网通信标准?

这个问题其实很复杂,如果我们舍弃局域网通信这种标准的话,在我们网络通信的时候,局域网通信还是肯定要存在的,因为我们将数据从 A 主机送到 B 主机,我们首先还是要将数据送到路由器的,而主句和路由器本质就是局域网通信,路由器到下一个路径还是局域网通信......

局域网通信连接起来构成了一种广域网通信,换句话说,如果我们定义出来了一种广域网通信的标准,我们把局域网通信给放弃了,这就像是我们C语言翻译成汇编到二进制,将汇编砍掉,直接从C语言到二进制,这不就将巨人的肩膀给砍掉了吗?!所以局域网其实可以看成是广域网的底层技术!

TCP/IP 的应用层合并了 OSI 的应用层,表示层,会话层。

再识协议

协议是计算机必须要遵守的,在计算机角度,OS 角度,我们该如何理解协议呢?

计算机角度其实就是硬件角度,我们可以不用聊,就是电器特性,就像我是用波峰波谷,你也要使用波峰波谷,这就是计算机角度。

在 OS 角度:我们先来理解:

为什么要有 TCP/IP 协议?

本地通信 VS 网络通信

本地通信:计算机内部的交流

想象一下,你的计算机就像一个繁忙的小镇,里面有各种建筑和居民。内存是小镇的仓库,CPU 是镇上的工厂,输入输出设备(如键盘、鼠标、显示器)是小镇的进出口。这些“居民”之间需要交流,比如从仓库(内存)拿原材料到工厂(CPU)加工,再将成品送回仓库或通过进出口发送出去。

在计算机内部,这些交流是通过“道路”(总线)进行的。IO 总线是连接仓库和进出口的道路,系统总线是连接工厂和仓库的道路。这些道路让数据(小镇的货物)可以在计算机的不同部分之间流动。

如果我们把这些“道路”想象成可以无限延伸的,那么我们可以把小镇的各个建筑(计算机的各个部件)分散到很远的地方,只要道路(总线)还连着,小镇就能正常运作。这就是为什么计算机内部的冯诺依曼体系结构本质上可以看作是一个网络结构。

网络通信:多台计算机的对话

现在,想象我们有几个这样的小镇(多台计算机),它们之间也有道路(网络)连接。这些小镇可以通过道路互相发送货物(数据)。这就是网络通信的本质:设备之间的交流。

通过网络,一个小镇(计算机)可以请求另一个小镇的工厂(CPU)帮忙加工一些特殊的原材料(处理数据),或者交换一些成品(共享文件)。这和小镇内部的交流很相似,只是距离更远,可能需要更复杂的交通规则(网络协议)来确保货物安全、准确地到达目的地。

所以,无论是计算机内部的部件交流,还是多台计算机之间的网络通信,本质上都是数据从一个地方移动到另一个地方的过程。这个过程需要一些规则(协议)来确保一切顺利进行,就像小镇需要交通规则来确保货物安全一样。

所以:

  • 本地通信和网络通信没有本质区别,都是将数据从一个设备传到另外一个设备!!!
  • 其中唯一的区别:单纯的距离变长了!!!

单纯距离变长就会引发新的问题:

数据丢了怎么办?

怎么定位目标主机的问题?(网络通信又没有直接拿一根线连着)

怎么解决当下立即要去哪里(是要经过一/多台路由器,该怎么中转?)(下一站在哪?)

假如上面三个过程实现了,但是真正的目的,并不是将数据传递到目标位置就可以了,真正的目的是数据传到了,该如何处理数据?

其实对于上面的前三个问题,本地通信根本就不需要考虑,网络通信就会带来这些问题,那么有问题,就需要有解决问题的方案,这个解决方案就是 TCP/IP 协议!

所以,TCP/IP 协议本质就是一种网络长距离通信的解决方案!!!

即便是单机,你的计算机内部,其实都是存在协议的,比如:其他设备和 内存通信,会有内存协议。其他设备和磁盘通信,会有磁盘相关的协议,比如: SATA,IDE,SCSI 等。只不过我们感知不到罢了。而且这些协议都在本地主机各自的硬件中,通信的成本、问题比较少。

其次,网络通信最大的特点就是主机之间变远了。任何通信特征的变化,一定会带来新的问题,有问题就得解决问题,所以需要新的协议咯。

什么是TCP/IP协议?

  • TCP/IP 协议的本质是一种解决方案;
  • TCP/IP 协议能分层,前提是因为问题们本身能分层。

TCP/IP 协议与操作系统的关系(宏观上,怎么实现的)

在网络当中,网络对应的底层硬件是网卡。接着往上就是驱动程序,也就是网卡驱动,网卡驱动内部就必须实现一层协议,叫做数据链路层,接下来,需要网络层负责网络通信,网络层是在操作系统内实现的,还有一层是传输层,也是在内核操作系统当中实现的,接下来,应用层也就是在用户层当中实现的。

其中,传输层最典型的代表协议是 TCP,而网络层最典型的代表协议叫做 IP,传输层和网络层是在操作系统内实现的,所以,为了能让上层使用它的对应功能,就必须提供系统调用。

在不同层的协议,每一层都会解决长距离传输的问题。

在整个网络协议栈的实现里,整个网络协议栈,最终也都是整体在你的体系结构/操作系统内部的,其中传输层和网络层是在操作系统本身的操作系统层实现的,处于核心地位,所以,我们将网络通信的这些协议,叫做 TCP/IP 协议,因为操作系统软硬件体结构是分层的,注定了协议栈必定也是分层的。

所以,网络是操作系统的一部分!!!

操作系统的个性化主要体现在用户界面和用户体验上。不同的操作系统,如 Windows 11、Linux等,提供了丰富的个性化设置,包括主题、背景、颜色、图标等,用户可以通过这些设置改变操作系统的外观和感觉。例如,Windows 11提供了多种主题,用户可以根据自己的喜好选择不同的主题。Linux 系统则允许用户通过修改配置文件或使用图形界面工具来个性化桌面环境。

然而,尽管操作系统在个性化方面可能有很大差异,它们在网络通信方面却有着共同的基础。这是因为网络通信依赖于一套标准化的协议,这些协议确保了不同操作系统之间的设备能够互相理解和交换数据。网络协议的标准化是网络技术发展的基石,也是网络交互的基本规范和约束。TCP/IP协议是网络世界的基础,它的发展和标准化经历了几个阶段,从最初的ARPANET到今天的互联网,TCP/IP协议已成为全球性的标准。

在图中,我们可以看到 Linux 和 Windows 操作系统在应用层提供了各自独特的服务和接口,但在网络层、传输层和数据链路层,它们的实现是相同的,都遵循 TCP/IP 协议族的标准。这种标准化的网络协议层确保了不同操作系统的设备,比如手机和电脑,能够通过网络进行通信。无论设备运行的是 Android、iOS 还是 Windows,只要它们遵循相同的网络协议,就能够发送和接收数据,实现无缝通信。

因此,尽管操作系统在个性化方面可能有很大差异,但它们在网络通信方面却有着共同的基础,这使得不同设备之间的互联互通成为可能。这种统一的网络协议层是现代网络通信的基石,它支撑着我们日常使用的互联网服务和应用。

究竟什么是协议?

操作系统内的协议非常多,每一层都有对应的协议,将来网络还有报文,报文里会携带各种协议字段,有这么多的协议,未来有这么多的报文,操作系统就需要管理这些协议和报文,如果要管理,又该如何管理?------ 先描述再组织!!!

协议本质就是约定好的结构体。

问题:主机 B 能够识别 data,并且准确提取 a=10,b=20,c=30 吗?

回答:答案是肯定的。因为双方都有同样的结构体类型struct protocol。也就是说,用同样的代码实现协议,用同样的自定义数据类型,天然就具有“共识”,能够识别对方发来的数据,这不就是约定吗?(网络部分是一样的)

关于协议的朴素理解:所谓协议,就是通信双方都认识的结构化的数据类型。因为协议栈是分层的,所以每一层都有双方都有的协议,同层之间,互相可以认识对方的协议。

网络购物,快递单的例子:

可以将网络协议与快递单进行类比:当你在网上购物时,商家需要将商品通过快递发送给你。快递单上的信息(如收件人姓名、地址、电话等)就相当于网络协议中的结构化数据。快递员通过快递单上的信息来识别包裹的目的地和收件人,这与主机通过协议识别和提取数据的过程类似。如果没有统一的快递单格式,快递员可能无法正确地将包裹送达,同样,如果网络通信中没有统一的协议,数据也无法被正确识别和处理。

因此,无论是快递单还是网络协议,它们都提供了一种标准化的方式来确保信息的准确传输和识别。这种标准化是实现有效通信的基础。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/21 16:57:17

找准AI数据基础设施赛道机会与厂商定位,爱分析提出高增长细分打法

内容来源:《2026爱分析AI数据基础设施市场规模报告》发布时间:2026年7月发布机构:爱分析ifenxi关键词:AI数据基础设施、赛道机会、厂商定位、本体平台、AI商业化、AI行业分析、多模态数据管理摘要:知名AI研究机构爱分析…

作者头像 李华
网站建设 2026/7/21 16:56:16

计算机毕业设计之基于springboot的习题管理系统的设计与实现

随着新经济的需求和新技术的发展,特别是网络技术的发展,如果可以建立起习题管理系统,可以改变传统线下管理方式,在过去的时代里都使用传统的方式实行,既花费了时间,又浪费了精力。在信息如此发达的今天&…

作者头像 李华
网站建设 2026/7/21 16:51:53

服装AI质检特殊场景下的疵点标注?

在工业质检、纺织服装、材料科学等领域,基于视觉的疵点检测与标注是训练高质量AI模型的关键步骤。然而,实际生产环境中遇到的疵点千变万化,远非理想实验室条件下的标准图像可比。面对褶皱上的疵点、复杂纹理背景、低对比度目标、跨区域大面积…

作者头像 李华
网站建设 2026/7/21 16:51:12

OneDev vs GitLab:轻量级自托管DevOps平台终极性能对比与选型指南

OneDev vs GitLab:轻量级自托管DevOps平台终极性能对比与选型指南 【免费下载链接】onedev The Unified and Autonomous Development Platform 项目地址: https://gitcode.com/gh_mirrors/on/onedev 在当今DevOps工具选型中,技术决策者面临一个重…

作者头像 李华
网站建设 2026/7/21 16:49:21

node-cobol开源社区与支持:如何获取帮助与贡献代码

node-cobol开源社区与支持:如何获取帮助与贡献代码 【免费下载链接】node-cobol :tv: COBOL bridge for NodeJS which allows you to run COBOL code from NodeJS. 项目地址: https://gitcode.com/gh_mirrors/no/node-cobol node-cobol是一个为NodeJS构建的C…

作者头像 李华