1. 计算机网络背景
文章目录
- 1. 计算机网络背景
- 网络发展
- 2. 初识协议
- 2.1 协议分层
- 软件分层的好处
- 2.2 OSI七层模型
- 2.3 TCP/IP五层(或四层)模型
网络发展
独立模式
独立模式是计算机网络发展的最初阶段,主要特点如下:
-
单机工作环境:
- 每台计算机完全独立运行
- 没有网络连接或数据共享能力
- 所有数据处理都在本地完成
-
典型应用场景:
- 早期大型计算机系统(如20世纪60年代)
- 个人计算机普及初期(1980年代)
- 需要高度安全隔离的特定环境(如军事系统)
-
主要局限性:
- 数据无法在不同计算机间传输
- 资源无法共享(打印机、存储等)
- 工作效率低下,需要人工搬运数据介质(如磁带、软盘)
-
技术特点:
- 使用批处理操作系统
- 通过物理介质(打孔卡片、磁带)交换数据
- 计算任务排队执行,无并发处理能力
-
代表性系统:
- IBM 360大型机系统
- 早期UNIVAC计算机
- 第一代个人计算机如Apple II、IBM PC
网络互联
网络互联是指通过有线或无线通信技术,将分布在不同地理位置的计算机、服务器、网络设备等连接起来,形成一个统一的通信系统,实现数据共享和资源互通。现代网络互联主要采用TCP/IP协议作为基础通信协议,通过路由器、交换机等网络设备实现数据的传输和转发。
典型的网络互联形式包括:
- 局域网(LAN):覆盖范围通常在几公里内,如办公室、学校或家庭内部的网络,通过交换机和路由器连接在一起;
- 广域网(WAN):将远隔千里的计算机都连在一起,跨越城市、国家甚至全球的网络,如互联网
所谓 “局域网” (Local Area Network, LAN) 和 “广域网” (Wide Area Network, WAN) 其实是一个相对的概念,主要区别在于网络覆盖范围和连接方式。局域网通常指小范围内的网络,比如家庭、办公室或校园网络,使用以太网或Wi-Fi等连接方式;而广域网则覆盖更大地理范围,如城市间或国际网络,通过光纤、卫星等远程通信技术连接。
在中国特色的网络环境下,“国家广域网"这一概念颇有深意。从技术层面看,中国的互联网通过"防火长城”(Great Firewall)系统实现了与国际互联网的隔离式连接,形成了独特的网络生态。这种架构使得整个国家的网络在某种程度上可以视为一个超大规模的局域网
计算机作为人类的重要工具,其发展历程始终围绕着提升工作效率和促进协作这一核心目标。从早期的大型主机到现代的个人电脑,计算机的计算能力虽然不断提升,但单机工作的局限性日益凸显。
- 信息孤岛问题
- 在非联网环境下,每台计算机就像一座信息孤岛
- 数据交换依赖物理介质(如软盘、磁带),效率低下
- 版本控制困难,容易产生"文件冲突"
- 协同工作的刚性需求
- 科研领域:需要共享实验数据和计算结果(如CERN的粒子对撞实验)
- 商业领域:跨部门协作、供应链管理
- 教育领域:资源共享、远程教学
- 网络技术的发展历程
- 1969年ARPANET诞生,实现4个节点的互联
- 1983年TCP/IP协议成为标准
- 1991年万维网(WWW)的出现彻底改变了信息共享方式
- 现代网络应用场景
- 云计算:Google Docs实现多人实时协作编辑
- 版本控制:GitHub促进全球开发者协同编程
- 物联网:智能家居设备间的互联互通
网络不仅是计算机发展的必然产物,更是人类协作方式革命性变革的催化剂。
2. 初识协议
"协议"是一种正式的约定或规范,它定义了通信双方或多方之间交互的规则、格式和程序。在通信领域中,协议确保不同设备或系统能够相互理解并正确交换信息,就像人类社会中人们通过共同遵守的规则来有效沟通一样。
以电话通信为例,一个典型的协议约定可以体现在电话铃响次数的约定上:
- 当电话铃响1次时,可能表示"我在办公室,请过来"
- 当电话铃响2次时,可能表示"有急事,请立即回电"
- 当电话铃响3次时,可能表示"常规通话请求"
这种预先约定的铃声次数协议,在没有来电显示功能的早期电话系统中特别常见,它帮助人们在不接通电话的情况下就能传递基础信息。
计算机之间的传输媒介主要依赖于光信号和电信号。在物理层面上,这些信号通过"频率"(如电磁波的振荡次数)和"强弱"(如电压的高低或光强度的变化)来编码表示二进制的0和1。例如,在光纤通信中,强光脉冲可能代表1,而弱光或无光则代表0;在电缆传输中,高电压可能代表1,低电压代表0。
要想实现有效的信息传递,通信双方必须严格约定数据格式。这包括:
- 信号的物理表示方式(如用哪种调制技术)
- 数据的组织方式(如数据帧结构)
- 时序控制(如同步机制)
- 错误检测与纠正方法
深入思考:仅仅两台主机之间约定协议是否足够?
即使双方都同意使用某种协议,但如果对基础信号的解释方式不同,就如同两个人都同意用语言交流,但一个说中文一个说葡萄牙语,是无法进行交流的。
对应计算机中例如:
- A设备用高频信号表示1,低频表示0
- B设备用强信号表示1,弱信号表示0
这种情况下,虽然都遵守了"用信号表示二进制"的基本协议,但因编码方式不同,仍无法正常通信。
现实的复杂性体现在:
- 计算机硬件厂商方面:有Intel、AMD、苹果、华为等众多厂商
- 操作系统方面:存在Windows、Linux、macOS、Android等多个系统
- 网络设备方面:思科、华为、Juniper等厂商的设备各有特点
- 传输介质方面:包括光纤、双绞线、同轴电缆、无线等多种形式
要确保这些异构系统能够互联互通,就需要建立统一的网络协议标准。典型的标准化组织包括:
- 国际组织:如ISO(国际标准化组织)、ITU(国际电信联盟)
- 行业协会:如IEEE(电气电子工程师学会)制定802系列标准
- 互联网组织:如IETF(互联网工程任务组)制定TCP/IP协议
- 商业联盟:如Wi-Fi联盟认证无线设备
这些组织通常具有以下特征:
- 在行业内具有权威性和公信力
- 成员包括主要的技术厂商和科研机构
- 制定过程公开透明,接受行业评议
- 标准文档完整规范,具有法律效力
例如,IEEE 802.3标准详细规定了以太网的:
- 物理层特性(电缆类型、连接器等)
- 数据链路层格式(MAC帧结构)
- 传输速率(10Mbps到400Gbps)
- 错误处理机制等
这些标准的建立使得不同厂商的设备可以互操作,推动了全球互联网的发展。
以下内容由DeepSeek生成:
能定制协议标准的组织或公司
协议标准的制定和定制是一个多层次、多角色的生态系统,主要包括以下几类参与者:
-
国际标准化组织 (International Standards Organizations)
这类组织通常由各国成员体组成,制定的是最基础、最通用、旨在全球范围内推广的标准。-
ISO (国际标准化组织):其最著名的贡献是OSI七层模型。它制定的标准覆盖了从质量管理体系(ISO 9001)到各种工业技术协议的方方面面。
-
IEC (国际电工委员会):负责所有电气、电子和相关技术的国际标准。经常与ISO联合成立JTC 1 (信息技术联合技术委员会),共同制定信息技术领域的国际标准(如ISO/IEC标准)。
-
ITU (国际电信联盟):作为联合国机构,其ITU-T部门制定的电信标准(如G.711语音编码、H.264/265视频编码)是全球通信网络的基石。
-
IEEE (电气和电子工程师协会):其IEEE 802系列(以太网802.3、Wi-Fi 802.11、蓝牙802.15.1)是局域网领域的绝对核心。
-
-
互联网标准机构 (Internet Standards Bodies)
这类组织专注于互联网相关的核心协议,运作模式更具开放性和协作性。-
IETF (互联网工程任务组):这是互联网的“宪法”制定者。我们每天使用的TCP/IP、HTTP、DNS、SMTP等几乎所有核心互联网协议,都以RFC文档的形式由此组织发布。其原则是“粗略共识和运行代码”,非常务实。
-
IRTF (互联网研究任务组):专注于互联网长期性、理论性的研究,为IETF提供未来的技术方向。
-
ICANN (互联网名称与数字地址分配机构):虽然不制定技术协议,但它管理着互联网的域名系统(DNS)根区、IP地址分配等,是互联网能够互联互通的基础保障机构。
-
-
行业联盟与协会 (Industry Consortia & Alliances)
这是当今技术领域最活跃的标准制定力量。它们由行业内的重要企业联合成立,旨在快速推动特定技术领域的标准统一和产业化。-
蓝牙技术联盟 (SIG):负责制定和维护蓝牙技术标准。公司需要成为其会员才能获得协议栈并进行产品认证。
-
Wi-Fi联盟 (Wi-Fi Alliance):不仅推广IEEE 802.11标准,更重要的是负责Wi-Fi品牌的认证和商标授权,确保不同厂商设备的互操作性。
-
Connectivity Standards Alliance (连接标准联盟,前身为Zigbee联盟):这是智能家居领域的关键组织。它主导开发并推广了Matter协议(基于IP的统一应用层协议),以及Zigbee等标准。加入该联盟是开发智能家居产品的必经之路。
-
Thread Group:推动Thread网络协议(基于IPv6的低功耗Mesh网络协议),是Matter协议的底层网络技术之一。
-
NFC Forum (近场通信论坛):推动NFC技术的标准化和普及。
-
OMA (开放移动联盟):曾制定过WAP等移动服务标准,现在仍活跃在设备管理(DM)等领域。
-
-
开源社区与基金会 (Open Source Communities & Foundations)
开源模式本身已经成为一种“事实标准”的制定方式。基金会通过托管关键开源项目,引导其发展并形成生态。-
Apache软件基金会:其项目(如Kafka, Hadoop)在大数据、中间件等领域形成了事实上的API和协议标准。
-
Linux基金会:托管了无数关键项目,其中最著名的包括:
-
CNCF (云原生计算基金会):制定了Kubernetes容器编排标准,以及gRPC、Envoy等云原生技术标准。
-
LF Edge:推动边缘计算框架和标准。
-
Eclipse基金会:在物联网(IoT)、边缘计算和开发工具领域拥有大量项目(如Eclipse IoT Mosquitto, Eclipse Che)。
-
-
公司 (Companies)
大型科技公司通过其巨大的市场影响力,使其内部技术或解决方案成为“事实标准”。-
苹果、谷歌、微软、亚马逊:这些巨头通过其主导的操作系统和云平台,定义了大量的API、数据格式和连接协议。例如:
-
Apple的AirPlay和MFi (Made for iPhone) 配件认证计划。
-
Google的Cast协议。
-
-
华为、高通、英特尔:作为通信和芯片领域的巨头,它们深度参与甚至主导3GPP等组织的标准制定,并拥有大量核心专利。
-
泰凌微电子:这类公司是协议栈的实现者和定制者。它们基于国际/行业标准(如蓝牙、Zigbee),开发出更稳定、高效或针对特定场景优化的协议栈软件,并将其与自家的芯片硬件结合,为客户提供交钥匙解决方案。这是产业链中至关重要的一环。
-
-
官方政府机构 (Official Government Agencies)
主要负责频谱分配、设备准入和宏观政策制定,而非具体技术协议的开发。-
FCC (美国联邦通信委员会):任何在美国销售的电于设备都必须符合FCC的规定(如电磁兼容、射频辐射等)。
-
中国工信部 (MIIT):中国的类似机构,负责中国的无线电频率分配和电信设备进网许可。
-
对于一家想要开发产品的公司来说,流程通常是:遵循国际标准 -> 加入相关行业联盟获取详细协议和认证 -> 选择像泰凌微这样的芯片/方案提供商获取实现好的协议栈 -> 确保产品符合官方机构的法规要求。
2.1 协议分层
协议本质也是软件,在设计上为了更好的进行模块化、解耦合,通常采用分层架构设计。这种层状结构的设计思想源于计算机科学中的"分层抽象"原则
软件分层的好处
描述
图片展示了分层通信模型的示意图,包含“语言层”和“通信设备层”两层结构。上层(语言层)通过“接口”与下层(通信设备层)交互:
上侧示例:A(汉语)与C(汉语)通过“电话机”通信,依赖“汉语协议”和“电话机协议”,且仅通信设备层变更时(如换电话机)不影响语言层;
右侧示例:B(英语)与C(英语)通过“电话机”通信,依赖“英语协议”和“电话机协议”,仅语言层变更时(如换语言)不影响通信设备层;
底部扩展示例:A与C也可通过“无线电”通信(依赖“无线电协议”),B与C通过“电话机”通信(依赖“电话协议”),体现分层模型的灵活性。
在这个例子中,我们的"协议"只有两层:语言层和通信设备层。这种简单的分层结构帮助我们理解了基本的网络通信概念。
语言层负责处理信息的表达和解析,比如:
- 定义双方都能理解的语法规则
- 确保信息格式统一
- 处理编码/解码过程
通信设备层则负责实际的物理传输,包括:
- 信号调制解调
- 物理连接管理
- 数据传输质量控制
但是实际的网络通信协议(如TCP/IP协议栈)会设计得更加复杂,通常分为更多的功能层。通过这个简单例子,我们可以理解分层架构带来的关键优势:
- 解耦合:各层独立发展,互不影响
- 模块化:可以单独优化或替换某一层
- 标准化:定义清晰的接口规范
- 降低维护成本:问题可以快速定位到特定层次
例如,当网络传输出现问题时:
- 可以首先检查物理连接(通信设备层)
- 然后验证语言协议(语言层)
- 而不需要检查整个系统
这种分层设计使得现代复杂的网络系统能够保持可维护性和可扩展性。
2.2 OSI七层模型
OSI(Open System Interconnection,开放系统互连)七层网络模型是国际标准化组织(ISO)在1984年提出的一个网络通信的概念性框架。该模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范,主要用于指导网络协议的设计和实现。
主要特点包括:
- 分层架构设计
- 把网络从逻辑上分为7个层次,每个层次都具有明确定义的功能
- 每层都建立在下一层的服务之上,并为上一层提供服务
- 各层有对应的物理设备实现,例如:
- 物理层:网卡、集线器
- 数据链路层:交换机、网桥
- 网络层:路由器
- 标准化框架
- 是一种框架性的设计方法
- 主要功能是帮助不同类型的主机(如Windows、Linux、Mac等)实现跨平台数据传输
- 通过七个层次化的结构模型使不同系统、不同网络之间实现可靠通讯
- 概念区分明确
- 最大优点是将服务、接口和协议这三个概念明确区分:
- 服务:定义该层为上层提供什么功能
- 接口:定义上层如何使用本层服务
- 协议:定义本层内部如何实现服务
- 这种区分使得模型概念清晰,理论体系完整
实际应用情况:
- 虽然理论完备,但由于过于复杂,在实际应用中较少直接使用完整的七层模型
在网络架构设计中,OSI(Open Systems Interconnection)七层模型确实提供了一个非常完善的理论框架。然而在实际工程实践中,由于操作系统实现和网络协议栈设计的限制,完整的七层模型往往需要进行简化。
具体来说,OSI模型中的会话层(第5层)和表示层(第6层)在现实应用中存在以下问题:
- 功能重叠:会话层管理通信会话的功能通常已经被传输层(TCP的连接管理)和应用层(应用协议的状态管理)所覆盖
- 实现困难:表示层的数据格式转换、加密解密等操作很难作为一个独立层次集成到现代操作系统中
- 性能考量:过多的协议层次会增加数据处理的延迟和系统开销
因此,在实际网络协议栈实现中,工程师们普遍采用简化的五层模型:
- 物理层(Physical Layer)
- 数据链路层(Data Link Layer)
- 网络层(Network Layer)
- 传输层(Transport Layer)
- 应用层(Application Layer)
2.3 TCP/IP五层(或四层)模型
TCP/IP是一组协议的代名词,它不仅仅包括TCP和IP两个协议,而是由众多协议组成的完整协议簇,构成了现代互联网的基础架构。TCP/IP协议簇采用5层模型的分层结构,每一层都调用其下一层所提供的网络服务来完成自身功能需求,各层之间通过明确定义的接口进行通信。
TCP/IP五层模型,可是为什么又被称为四层模型呢?
简单来说,TCP/IP五层模型和四层模型描述的是同一个协议栈,只是对最底层“物理媒介”的抽象程度不同。它们没有本质区别,核心的TCP/IP协议簇本身依然是那四个核心层。
1. 经典的“TCP/IP四层模型”
这个模型源于TCP/IP协议族的原始设计文档(如RFC 1122),它严格按照协议本身来划分层次:
层级 | 名称 | 功能描述 | 核心协议 |
---|---|---|---|
4 | 应用层 | 提供特定于应用程序的服务和用户接口 | HTTP, FTP, DNS, SMTP, Telnet |
3 | 传输层 | 提供端到端的通信服务,负责数据分段、流量控制和可靠性 | TCP, UDP |
2 | 网络互联层 | 负责将数据包从源主机路由到目标主机,进行逻辑寻址 | IP, ICMP, ARP* |
1 | 网络接口层 | 负责在物理网络上发送和接收数据帧 | Ethernet, WiFi, ATM, Frame Relay |
*注:关于ARP(地址解析协议)属于哪一层一直有争论,通常认为它跨越了网络互联层和网络接口层。
在这个模型中,网络接口层是一个广义的概念,它涵盖了所有与底层硬件打交道的细节,相当于将“数据链路层”和“物理层”合并成了一层。
2. 教学常用的“TCP/IP五层模型”
这个模型是为了教学和理解方便而诞生的。它是一个混合模型,融合了OSI七层模型的清晰架构和TCP/IP四层模型的实际协议。
层级 | 名称 | 功能描述 | 核心协议/设备 |
---|---|---|---|
5 | 应用层 | (与四层模型相同) | HTTP, FTP, DNS, SMTP |
4 | 传输层 | (与四层模型相同) | TCP, UDP |
3 | 网络层 | (与四层模型的“网络互联层”相同) | IP, 路由器 |
2 | 数据链路层 | 从“网络接口层”中分离出来,负责在直接相连的节点间传输数据帧 | Ethernet, WiFi, 交换机 |
1 | 物理层 | 从“网络接口层”中分离出来,负责传输原始的比特流 | 双绞线、光纤、光/电信号、集线器 |
五层模型将四层模型中的“网络接口层”进一步拆解为更精细的“数据链路层”和“物理层”,这使得各层的职责更加清晰,更容易与OSI模型和设备(如交换机、集线器)对应起来。
为什么会有两种说法?
你可以这样理解:
从软件和协议的角度看:一个软件开发人员可能更关心协议本身。对他而言,只要操作系统提供了驱动(即“网络接口层”),他就可以调用Socket API通过IP地址发送数据,而无需关心数据是通过WiFi信号还是网线里的电信号传输的。因此,四层模型足够用了。
从硬件和网络工程的角度看:一个网络工程师必须清楚地知道,数据帧在交换机(数据链路层)如何转发,以及路由器(网络层)如何路由。他需要关心物理介质的选择(物理层)。因此,五层模型提供了更精确的描述。
结论
二者没有根本性的区别,描述的是同一个东西。
-
TCP/IP四层模型是协议栈的正式、原始的划分方法。
-
TCP/IP五层模型是为了教学和工程讲解方便,将最底层的“网络接口层”进一步细分后的结果,是目前最常用、最清晰的模型。
当别人提到“TCP/IP四层模型”时,他指的是协议本身;当提到“五层模型”时,他通常是在一个需要详细讨论底层网络技术的语境中。在实际交流和工作中,五层模型的使用更为普遍。
下面我们来详细介绍一下TCP/IP五层模型:
1. 物理层 (Physical Layer)
物理层是最底层,主要负责原始比特流在物理介质上的传输。该层定义了:
- 电气特性:如电压水平、传输速率等
- 机械特性:如连接器规格、线缆类型等
- 功能特性:如信号线功能定义
- 规程特性:如信号时序、同步方式
常见物理层实现包括:
- 有线传输:双绞线(如Cat5e、Cat6)、同轴电缆(RG-6用于有线电视)、光纤(单模/多模)
- 无线传输:Wi-Fi(2.4GHz/5GHz频段)、蓝牙、Zigbee等射频技术
- 新兴技术:可见光通信(Li-Fi)、电力线通信(PLC)
物理层设备示例:
- 集线器(Hub):简单信号放大和中继,所有端口共享带宽
- 中继器(Repeater):延长信号传输距离
- 调制解调器(Modem):完成数字信号与模拟信号的转换
2. 数据链路层 (Data Link Layer)
数据链路层负责在直接相连的节点间可靠地传输数据帧,主要功能包括:
- 成帧:将原始比特流组织为有意义的帧结构
- 物理地址寻址:使用MAC地址标识设备
- 差错控制:通过CRC校验检测传输错误
- 流量控制:防止快速发送方淹没慢速接收方
典型协议和技术:
- 以太网协议(IEEE 802.3):最普遍的局域网技术
- 无线局域网(Wi-Fi, IEEE 802.11)
- 点对点协议(PPP):常用于拨号上网
- 高级数据链路控制(HDLC)
- 虚拟局域网(VLAN)技术
数据链路层设备:
- 交换机(Switch):基于MAC地址转发帧,每个端口独享带宽
- 网桥(Bridge):连接不同物理介质的网络段
3. 网络层 (Network Layer)
网络层实现端到端的逻辑通信,主要职责包括:
- 逻辑地址分配:如IP地址系统
- 路由选择:确定数据包从源到目的的最佳路径
- 分组转发:根据路由表转发数据包
- 拥塞控制:避免网络过载
核心协议和技术:
- IP协议(IPv4/IPv6):提供无连接的数据报服务
- 路由协议:如RIP、OSPF、BGP等
- ICMP协议:用于网络诊断(ping/traceroute)
- ARP协议:IP地址到MAC地址的解析
- NAT技术:地址转换解决IPv4短缺问题
网络层设备:
- 路由器(Router):连接不同网络,基于IP地址进行路由选择
- 三层交换机:结合交换和路由功能的高性能设备
4. 传输层 (Transport Layer)
传输层提供端到端的可靠数据传输服务,主要功能:
- 进程到进程的通信:通过端口号标识应用
- 可靠性保障:如TCP的确认重传机制
- 流量控制:滑动窗口机制
- 拥塞控制:动态调整发送速率
主要协议:
- TCP协议:面向连接、可靠传输
- 三次握手建立连接
- 四次挥手释放连接
- 超时重传确保可靠性
- UDP协议:无连接、高效传输
- 适用于实时应用(视频会议、在线游戏)
- 无连接建立开销
- 不保证可靠性但延迟低
5. 应用层 (Application Layer)
应用层直接为用户应用程序提供网络服务,典型协议包括:
- 超文本传输协议(HTTP/HTTPS):Web浏览
- 文件传输协议(FTP):文件上传下载
- 简单邮件传输协议(SMTP):电子邮件发送
- 域名系统(DNS):域名到IP地址解析
- 动态主机配置协议(DHCP):自动IP地址分配
- 安全外壳协议(SSH):加密的远程登录
应用层编程接口:
- Socket API:TCP/IP网络编程的基础接口
- HTTP API:RESTful风格的Web服务接口
- gRPC:高性能的RPC框架
在计算机网络体系结构中,TCP/IP四层模型
是实际应用中最常见的参考模型。这个模型之所以被广泛采用,是因为在大多数软件开发和网络应用中,我们主要关注的是从传输层到应用层的功能实现,而物理层(包括具体的传输介质、信号调制等硬件相关部分)通常由专门的硬件厂商实现。
通常情况下:
- 主机操作系统内核负责实现从传输层到物理层的功能;
- 路由器主要实现网络层到物理层的功能;
- 交换机通常实现数据链路层到物理层的功能;
- 集线器仅实现物理层功能;
需要注意的是,实际设备可能存在功能扩展:
- 部分交换机具备网络层转发能力;
- 某些路由器也实现了传输层的部分功能(如端口转发)。
因此,从软件开发的视角,“物理层”
和“数据链路层”
被合并为了一个看不见的“网络接口层”
。整个通信栈看起来就是这样:
应用层 -> 传输层 -> 网络层 -> (操作系统和硬件处理的下层)
文章中我们从单机到引入网络,然后介绍了一些网络的基本概念,可能一些相关的协议和技术我们还不能弄懂,但是这里只是介绍一些基本概念,我们只需要知道即可,后面我们会详细介绍