资讯中心

网络基础概念 [ 上 ]

📅 2026/7/21 16:57:54
网络基础概念 [ 上 ]
计算机网络背景网络发展从孤立到互联的演变独立模式计算机的孤岛时代在早期的计算机时代每台计算机都是一个独立的个体彼此之间没有联系。就像办公室里的独立办公桌每个办公桌代表一台计算机它们各自为政互不干扰。独立模式的特点每台计算机独立运行没有数据共享。每个终端如终端A、终端B、终端C各自持有客户数据。计算机之间没有协作各自完成独立的任务。这种模式就像孤岛虽然每台计算机都能完成自己的任务但效率低下资源共享困难。之间的业务分工都是需要等待前一个人完成然后再通过一个叫做软盘的东西进行数据的拷贝以及传递的通过软盘实现主机之间的数据拷贝也就是在没有网络时计算机之间也是可以进行数据交互的只不过需要人之间的协作数据拷贝是需要人来参与的这就是效率低。互联模式打破孤岛实现数据共享随着业务需求的增长计算机之间的协作变得越来越重要。于是网络互联应运而生多台计算机连接在一起实现了数据共享。互联模式的特点计算机之间通过网络连接可以共享数据。业务①、业务②、业务③可以分别在不同的终端上运行但数据可以在网络中传递。提高了工作效率减少了重复劳动。这种模式就像办公室里的共享文件柜员工们可以共享文件提高工作效率。局域网模式协同工作的高效网络随着技术的进步网络规模逐渐扩大形成了局域网LAN。局域网将多台计算机连接在一起形成一个较大的网络环境可以看作是一个比较大的局域网。局域网模式的特点多台计算机连接在一起形成一个网络。业务①、业务②、业务③可以共享服务器资源。提高了资源利用率减少了硬件成本。支持复杂的协同工作如文件共享、打印共享等。这种模式就像一个团队成员之间分工合作共享资源提高效率。广域网模式跨越地理边界的全球网络随着需求的进一步扩展广域网WAN应运而生。广域网是一种覆盖较大地理范围的计算机网络用于连接不同城市、国家甚至是跨洲的网络。广域网的特点覆盖范围广泛广域网可以跨越城市、国家甚至全球范围连接不同地理位置的局域网。高速数据传输广域网采用高速传输介质如光纤、卫星和专用线路确保数据传输的高效性。高可靠性和安全性广域网通过冗余设计和加密技术确保数据传输的稳定性和安全性。支持多种网络协议广域网兼容多种网络协议如TCP/IP能够连接不同类型的设备和网络。广域网的应用场景企业网络连接广域网可以将企业的分支机构连接在一起实现数据共享和协同工作。远程教育和医疗广域网为远程教育和医疗提供了基础设施使得学生和患者能够通过互联网接受服务。云计算服务广域网为云计算服务提供了高速、稳定的网络连接支持大规模数据的存储和处理。这种模式就像一个全球化的网络将世界各地的人们和资源连接在一起推动了信息的共享和交流。所谓局域网和广域网只是一个相对的概念。比如我们有天朝特色的广域网也可以看做一个比较大的局域网.从独立模式到互联模式再到局域网和广域网模式网络的发展经历了从孤立到互联的演变。这种演变不仅提高了工作效率还为现代网络的复杂应用奠定了基础。独立模式计算机各自为政效率低下。互联模式打破孤岛实现数据共享。局域网模式协同工作资源共享效率最大化。广域网模式跨越地理边界连接全球资源推动信息共享。网络的发展是人类协作需求的自然延伸随着技术的进步网络将继续演化为人类带来更多便利和可能性。网络的发展运营商、互联网公司、通信公司三者之间的关系一、角色定位角色定义代表企业运营商提供网络基础设施确保网络的稳定运行。中国移动、中国联通、中国电信、ATT美国、Verizon美国互联网公司提供各种互联网服务如搜索引擎、社交媒体、电子商务等。谷歌、亚马逊、阿里巴巴、腾讯、字节跳动通信公司开发通信技术提供网络设备和技术支持。华为、诺基亚、爱立信、中兴通讯、思科二、相互关系运营商与互联网公司提供服务运营商为互联网公司提供网络基础设施确保其服务能够稳定运行。合作与竞争互联网公司依赖运营商的网络但也在某些领域如内容分发网络CDN与运营商竞争。运营商与通信公司设备供应通信公司为运营商提供网络设备和技术支持帮助运营商构建和优化网络。技术合作运营商与通信公司合作共同推动新技术的研发和应用。互联网公司与通信公司技术支持通信公司为互联网公司提供底层通信技术支持。服务优化互联网公司利用通信公司的技术优化其服务的性能和用户体验。三、螺旋式发展早期发展互联网公司早期互联网公司如雅虎、谷歌主要提供信息检索和邮件服务。运营商运营商如ATT、中国移动提供基础网络服务确保互联网公司能够稳定运行。通信公司通信公司如华为、诺基亚提供网络设备支持运营商的网络建设。相互推动互联网公司推动运营商随着互联网服务的普及用户对网络带宽和稳定性的需求增加推动运营商不断升级网络。运营商推动通信公司运营商需要更高效、更稳定的网络设备推动通信公司研发新技术。通信公司推动互联网公司通信公司提供的新技术如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 七层模型OSIOpen System Interconnection开放系统互连七层网络模型称为开放式系统互联参考模型是一个逻辑上的定义和规范把网络从逻辑上分为了7层。每一层都有相关、相对应的物理设备比如路由器交换机OSI 七层模型是一种框架性的设计方法其最主要的功能就是帮助不同类型的主机实现数据传输它的最大优点是将服务、接口和协议这三个概念明确地区分开来概念清楚理论也比较完整。通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯但是它既复杂又不实用所以我们按照 TCP/IP 四层模型来讲解。OSI 模型其实定义得特别好只不过我们刚开始学习网络的时候还没有基本的将应用层代码写过一段时间我们感觉不到他的好所以在这里不强调OSI 在这里定义的 7 层协议每一层都有用每一层在我们之后的代码当中都会体现只不过现在还看不出来。OSI 定义出来的7层模型是需要由对应的工程师LinuxWindows 等操作系统做实现的但是工程师们在实现的时候发现这 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 协议本质就是一种网络长距离通信的解决方案即便是单机你的计算机内部其实都是存在协议的比如其他设备和 内存通信会有内存协议。其他设备和磁盘通信会有磁盘相关的协议比如 SATAIDESCSI 等。只不过我们感知不到罢了。而且这些协议都在本地主机各自的硬件中通信的成本、问题比较少。其次网络通信最大的特点就是主机之间变远了。任何通信特征的变化一定会带来新的问题有问题就得解决问题所以需要新的协议咯。什么是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并且准确提取 a10b20c30 吗回答答案是肯定的。因为双方都有同样的结构体类型struct protocol。也就是说用同样的代码实现协议用同样的自定义数据类型天然就具有“共识”能够识别对方发来的数据这不就是约定吗网络部分是一样的关于协议的朴素理解所谓协议就是通信双方都认识的结构化的数据类型。因为协议栈是分层的所以每一层都有双方都有的协议同层之间互相可以认识对方的协议。网络购物快递单的例子可以将网络协议与快递单进行类比当你在网上购物时商家需要将商品通过快递发送给你。快递单上的信息如收件人姓名、地址、电话等就相当于网络协议中的结构化数据。快递员通过快递单上的信息来识别包裹的目的地和收件人这与主机通过协议识别和提取数据的过程类似。如果没有统一的快递单格式快递员可能无法正确地将包裹送达同样如果网络通信中没有统一的协议数据也无法被正确识别和处理。因此无论是快递单还是网络协议它们都提供了一种标准化的方式来确保信息的准确传输和识别。这种标准化是实现有效通信的基础。