文章目录
- 1.网络的发展历程
- 1.1 诞生阶段(20世纪60年代 - 70年代)
- 1.2. 分组交换技术与协议标准化阶段(20世纪70年代 - 80年代)
- 1.3. 局域网与广域网发展阶段(20世纪80年代 - 90年代)
- 1.4. 互联网商业化与普及阶段(20世纪90年代 - 21世纪初)
- 1.5. 移动互联网与云计算阶段(21世纪初 - 2010年代)
- 1.6. 物联网与人工智能融合阶段(2010年代 - 至今)
- 2. 网络分类
- 按地理范围分类
- 按拓扑结构分类
- 按传输介质分类
- 按使用目的分类
- 3. 网络协议
- 4. 网络模型
- 5.TCP/IP通讯过程
- 6. IP和MAC
- IP
- MAC
- MAC 地址和 IP 地址的区别
- MAC 地址和 IP 地址的功能
1.网络的发展历程
1.1 诞生阶段(20世纪60年代 - 70年代)
- 起源背景:20世纪60年代,冷战时期美国为了保障军事指挥系统在遭受核打击等极端情况下仍能正常运转,美国国防部高级研究计划局(ARPA)启动了一项名为ARPANET的研究项目,这便是现代计算机网络的雏形。
- 重要里程碑:1969年,ARPANET成功实现了加州大学洛杉矶分校、斯坦福研究院等四台计算机的互联,标志着计算机网络的正式诞生。当时的网络主要用于军事和科研领域,实现了计算机之间的简单数据传输。
1.2. 分组交换技术与协议标准化阶段(20世纪70年代 - 80年代)
- 分组交换技术:这一时期,分组交换技术得到广泛应用和发展。分组交换将数据分割成多个小块(分组),每个分组独立传输,在目的地再重新组装。这种技术提高了网络的传输效率和可靠性,成为现代网络通信的基础。
- 协议标准化:为了实现不同计算机系统之间的互联互通,网络协议的标准化工作变得至关重要。1974年,Vinton Cerf和Bob Kahn提出了TCP/IP协议(传输控制协议/网际协议),为互联网的发展奠定了坚实的基础。1983年,ARPANET全面采用TCP/IP协议,标志着互联网的正式诞生。
1.3. 局域网与广域网发展阶段(20世纪80年代 - 90年代)
- 局域网(LAN):随着计算机技术的普及,企业和机构内部对计算机之间通信的需求日益增长,局域网技术应运而生。以太网(Ethernet)是这一时期最具代表性的局域网技术,它以其低成本、高速度和易于安装的特点,迅速得到广泛应用。
- 广域网(WAN):为了实现不同地区之间的计算机网络互联,广域网技术也得到了快速发展。例如,X.25、帧中继等广域网技术相继出现,使得不同地区的局域网可以通过广域网连接起来,形成更大规模的网络。
1.4. 互联网商业化与普及阶段(20世纪90年代 - 21世纪初)
- 商业化浪潮:20世纪90年代初,互联网开始向商业化方向发展。1991年,欧洲核子研究中心(CERN)的Tim Berners - Lee发明了万维网(World Wide Web),并提出了超文本标记语言(HTML)和超文本传输协议(HTTP),使得互联网上的信息共享和浏览变得更加方便和直观。
- 互联网普及:随着浏览器(如Netscape Navigator、Internet Explorer等)的出现和广泛使用,互联网迅速走进千家万户。电子商务、在线媒体、社交网络等互联网应用如雨后春笋般涌现,极大地改变了人们的生活和工作方式。
1.5. 移动互联网与云计算阶段(21世纪初 - 2010年代)
略。
1.6. 物联网与人工智能融合阶段(2010年代 - 至今)
略。
来源:https://www.doubao.com/chat/
2. 网络分类
按地理范围分类
- 局域网(Local Area Network,LAN)
- 定义:是指在某一区域内由多台计算机互联成的计算机组,覆盖范围一般在几千米以内,如一个办公室、一栋楼、一个校园等。
- 特点:通常由一个组织或单位自行建设和管理,数据传输速率高(如常见的百兆、千兆以太网),误码率低,拓扑结构相对简单,便于维护和管理。
- 应用场景:广泛应用于企业办公、学校教学、家庭网络等,实现设备之间的资源共享(如文件共享、打印机共享)和通信(如内部聊天、视频会议等)。
- 城域网(Metropolitan Area Network,MAN)
- 定义:覆盖范围介于局域网和广域网之间,一般是一个城市或地区,范围通常在10 - 100千米。
- 特点:可能由多个局域网通过互联设备连接而成,采用的技术和设备较为复杂,数据传输速率也较高。
- 应用场景:常用于连接城市内的政府部门、企业分支机构、学校等,实现城市范围内的资源共享和信息传输。
- 广域网(Wide Area Network,WAN)
- 定义:覆盖范围非常广泛,可以跨越城市、国家甚至全球,如互联网就是最大的广域网。
- 特点:通常由多个城域网或局域网通过通信运营商的网络连接而成,传输距离远,传输速率相对较低,且受地理环境和通信线路质量的影响较大。
- 应用场景:实现全球范围内的信息交流和资源共享,如跨国企业的远程办公、国际间的电子商务、全球新闻传播等。
按拓扑结构分类
- 总线型网络
- 结构:所有设备都连接在一条称为总线的公共传输介质上,信息沿着总线进行传输。
- 特点:结构简单,易于安装和扩展,成本较低。但缺点是一旦总线出现故障,整个网络将受到影响,且容易发生信号冲突。
- 应用场景:早期的局域网中曾广泛使用,如早期的以太网。
- 星型网络
- 环型网络
- 树型网络
- 网状网络
按传输介质分类
按使用目的分类
3. 网络协议
3.1 概念
在计算机网络中,不同的设备可能具有不同的硬件架构、操作系统和软件应用。为了使这些设备能够相互理解和交换数据,就需要遵循一套共同的规则和约定,这就是网络协议。简单来说,网络协议就像是一种 “语言”,让不同的计算机设备能够 “对话”。
3.2 组成
- 语法:规定了数据与控制信息的结构或格式,即 “怎么讲”。例如,在一个网络数据包中,各个字段的长度、顺序和编码方式等都属于语法的范畴。
- 语义:定义了需要发出何种控制信息,以及完成的动作与做出的响应,即 “讲什么”。比如,一个请求消息中包含的请求类型(如查询、修改等)和对应的参数就是语义的体现。
- 时序:也称为同步,明确了事件实现顺序的详细说明,即 “何时讲”。例如,在进行数据传输时,规定了发送方和接收方的发送和接收时机、速率等。
3.3 常见网络协议
网络层协议
IP 协议(Internet Protocol):是互联网的基础协议,负责将数据包从源地址传输到目的地址。它为每个连接到网络的设备分配唯一的 IP 地址,实现了不同网络之间的互联。IP 协议分为 IPv4 和 IPv6 两个版本,由于 IPv4 地址资源有限,IPv6 正逐渐得到广泛应用。
ICMP 协议(Internet Control Message Protocol):用于在 IP 主机、路由器之间传递控制消息,如网络通断、主机可达性等信息。常见的 ping 命令就是基于 ICMP 协议实现的,用于测试网络的连通性。
传输层协议
TCP 协议(Transmission Control Protocol):是一种面向连接的、可靠的传输协议。在进行数据传输之前,需要先建立连接,传输过程中会进行数据确认、重传等操作,确保数据的完整性和顺序性。常用于对数据准确性要求较高的应用,如文件传输、电子邮件等。
UDP 协议(User Datagram Protocol):是一种无连接的、不可靠的传输协议。它不需要建立连接,直接将数据包发送出去,不保证数据的可靠传输。但由于其开销小、传输速度快,常用于对实时性要求较高的应用,如视频会议、在线游戏等。
应用层协议
HTTP 协议(Hypertext Transfer Protocol):是用于传输超文本(如 HTML 页面)的协议,是万维网的数据通信基础。它基于请求 - 响应模型,客户端向服务器发送请求,服务器返回相应的响应。随着互联网的发展,HTTP 协议也不断演进,目前广泛使用的是 HTTP/2 和 HTTP/3 版本。
SMTP 协议(Simple Mail Transfer Protocol):用于发送电子邮件,它规定了邮件客户端与邮件服务器之间以及邮件服务器之间如何传输邮件。与之对应的还有 POP3(Post Office Protocol 3)和 IMAP(Internet Message Access Protocol)协议,用于接收电子邮件。
网络协议通常按照网络模型的层次结构进行组织,常见的有 OSI 七层模型和 TCP/IP 四层模型。
4. 网络模型
网络模型是为了便于对计算机网络进行研究、设计和实现,将网络的功能和结构进行抽象和分层的一种体系结构。
4.1 OSI七层模型
OSI(Open Systems Interconnection)七层模型是由国际标准化组织(ISO)在1984年提出的一个开放式系统互联参考模型,它将计算机网络的功能划分为七个层次,从下到上依次为:
物理层(Physical Layer)
- 功能:负责传输比特流,定义了传输介质(如电缆、光纤、无线等)、连接器的规格、信号的编码方式、传输速率等物理特性。
- 示例:网线、光纤、无线信号等都属于物理层的范畴。例如,以太网使用的双绞线电缆,规定了其线序、阻抗等物理参数。
数据链路层(Data Link Layer)
- 功能:将物理层传输的比特流封装成帧,负责帧的传输、差错检测和纠正、流量控制等。同时,它还处理介质访问控制,决定哪个设备可以在共享介质上发送数据。
- 示例:以太网帧是数据链路层的典型数据单元,它包含源MAC地址、目的MAC地址、数据和校验码等信息。MAC地址(Media Access Control Address)是网络设备在数据链路层的唯一标识符。
网络层(Network Layer)
- 功能:负责将数据包从源节点传输到目的节点,进行路由选择和转发。它为每个网络设备分配唯一的IP地址,根据IP地址确定数据包的传输路径。
- 示例:路由器工作在网络层,它根据路由表中的信息,决定将数据包转发到哪个网络接口。IP协议(Internet Protocol)是网络层的核心协议,分为IPv4和IPv6两个版本。
传输层(Transport Layer)
- 功能:提供端到端的可靠传输或不可靠传输服务,确保数据的完整性和顺序性。它处理端口号,区分不同的应用程序,并进行流量控制和拥塞控制。
- 示例:TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)是传输层的两个重要协议。TCP是面向连接的、可靠的传输协议,常用于文件传输、电子邮件等应用;UDP是无连接的、不可靠的传输协议,常用于实时音视频、在线游戏等对实时性要求较高的应用。
会话层(Session Layer)
- 功能:负责建立、维护和管理应用程序之间的会话连接。它提供会话的建立、拆除和同步机制,确保不同应用程序之间的通信有序进行。
- 示例:在远程登录、文件传输等应用中,会话层负责建立和管理客户端与服务器之间的会话。例如,使用Telnet协议进行远程登录时,会话层会处理登录过程中的连接建立、认证和会话保持等操作。
表示层(Presentation Layer)
- 功能:处理数据的表示和转换,如数据的加密、解密、压缩、解压缩等。它确保不同系统之间能够正确理解和处理交换的数据。
- 示例:在进行文件传输时,如果文件采用了某种压缩格式(如ZIP、RAR),表示层会负责对文件进行解压缩;在进行安全通信时,会对数据进行加密和解密操作。
应用层(Application Layer)
- 功能:为用户的应用程序提供网络服务,是用户直接接触的一层。它包含了各种应用协议,如HTTP、FTP、SMTP等。
- 示例:当你使用浏览器访问网页时,使用的是HTTP协议;当你进行文件上传和下载时,使用的是FTP(File Transfer Protocol)协议;当你发送电子邮件时,使用的是SMTP(Simple Mail Transfer Protocol)协议。
4.2 TCP/IP四层模型
TCP/IP(Transmission Control Protocol/Internet Protocol)四层模型是在实际的互联网应用中广泛使用的网络模型,它将OSI七层模型进行了简化,分为以下四层:
网络接口层(Network Interface Layer)
- 功能:负责将数据包封装成适合在物理网络上传输的帧,并进行物理传输。它涵盖了OSI模型中的物理层和数据链路层的功能。
- 示例:不同类型的网络接口(如以太网接口、无线网卡等)都属于网络接口层,它们负责将数据通过物理介质进行传输。
网络层(Internet Layer)
- 功能:与OSI模型的网络层类似。
传输层(Transport Layer)
- 功能:与OSI模型的传输层类似。
应用层(Application Layer)
如果不将物理层和数据链路层合并,就是五层模型。
详情请查看计算机网络模型(TCP/IP五层模型)
4.3 网络协议栈
网络协议栈是网络通信中用于实现各种网络协议的软件模块集合,它是网络通信的基础。
概念及作用
网络协议栈就像是网络通信中的“语言库”和“指挥中心”,每一层协议都有特定的功能和任务,它们协同工作,使得不同设备之间能够准确、高效地进行数据传输和通信。它将复杂的网络通信过程分解为多个层次,每个层次负责完成一部分功能,通过各层之间的交互和协作,实现端到端的数据传输和各种网络应用。
常见网络协议栈
- TCP/IP协议栈:是互联网中最常用的协议栈,对应于TCP/IP四层模型,包含网络接口层协议如以太网协议、网络层的IP协议、传输层的TCP和UDP协议以及应用层的HTTP、FTP、SMTP等协议。
- OSI协议栈:基于OSI七层模型,从下到上包括物理层协议、数据链路层协议、网络层的无连接网络协议(CLNP)等、传输层的传输控制协议(TP)等,以及会话层、表示层和应用层的一系列协议,不过在实际应用中不如TCP/IP协议栈广泛。
工作原理
以TCP/IP协议栈为例,当应用程序要发送数据时:
- 应用层:应用程序生成数据,通过特定的应用层协议(如HTTP)对数据进行格式化和封装,添加相应的应用层头部信息,然后将数据传递给下一层。
- 传输层:如果使用TCP协议,传输层会为数据添加TCP头部,包括源端口号、目的端口号、序列号、确认号等信息,用于建立连接、保证数据的可靠传输和流量控制等。如果使用UDP协议,则添加UDP头部,主要包含源端口和目的端口,用于标识应用程序。
- 网络层:网络层的IP协议会为数据添加IP头部,包含源IP地址和目的IP地址等信息,以便在网络中进行路由选择和数据转发。路由器根据IP地址来决定数据的传输路径。
- 网络接口层:将IP数据包封装成适合在物理网络上传输的帧,添加数据链路层头部和尾部,包含源MAC地址、目的MAC地址等信息,然后通过物理介质将数据帧发送出去。
在接收数据时,过程则相反,数据从物理介质进入网络接口层,然后依次向上经过各层,每一层根据相应的协议头部信息进行解封装和处理,最终将数据传递给应用层的应用程序。
与网络模型的关系
网络协议栈是网络模型的具体实现,网络模型定义了网络通信的层次结构和各层的功能,而网络协议栈则是在软件或硬件中具体实现这些功能的协议集合。网络协议栈中的每一层协议都对应于网络模型中的相应层次,遵循该层次的功能规范和接口标准,通过各层协议的协同工作,实现网络模型所定义的网络通信功能。
网络协议栈在计算机体系结构中的作用
我们以TCP五层协议栈为例,物理层具体设计就体现在底层硬件上,其中数据链路层是驱动程序,网络层和传输层都是内嵌于操作系统,属于操作系统的模块之一,应用层对应着按照各种协议制作出的软件。
在计算机网络体系中,网络协议栈是实现不同计算机之间互联和通信的基础。它通过各层协议的协同工作,将数据从源计算机的应用程序传输到目标计算机的应用程序,屏蔽了不同网络硬件和操作系统之间的差异,使得网络中的计算机能够相互通信和共享资源。
5.TCP/IP通讯过程
我们以TCP/IP四层协议栈为例,电脑A和电脑B通过以太网技术进行通讯,A发送数据,B接收数据,本质上是A上的某个程序发送数据,数据在网络中传输,B上的某个程序接收数据。
5.1 电脑A发送数据
应用层
- 数据产生:用户使用的应用程序(如浏览器、电子邮件客户端等)生成需要传输的数据。例如,当在浏览器中输入网址并回车后,浏览器会产生一个HTTP请求,请求获取对应网页的内容。
- 协议封装:应用程序依据自身需求选择合适的应用层协议对数据进行封装。不同应用层协议有特定的数据格式,如HTTP请求消息包含请求行、请求头和请求体等部分。封装后的数据会被传递给传输层。
传输层(以TCP为例)
- 分段处理:TCP协议会将应用层传来的数据分割成合适大小的数据段。这是因为网络中不同的链路可能对数据传输的最大长度有限制。
- TCP头部添加:为每个数据段添加TCP头部,其中包含源端口号、目的端口号、序列号、确认号、窗口大小等重要信息。源端口号和目的端口号用于标识发送方和接收方的应用程序;序列号用于确保数据段的正确排序;确认号用于确认已成功接收的数据;窗口大小用于进行流量控制。
- 建立连接(三次握手)
- 客户端发送SYN包:客户端向服务器发送一个带有SYN(同步)标志位的TCP段,其中包含客户端初始序列号(ISN),表明客户端希望建立连接。
- 服务器响应SYN + ACK包:服务器收到客户端的SYN包后,向客户端发送一个带有SYN和ACK(确认)标志位的TCP段,包含服务器的初始序列号和对客户端序列号的确认号。
- 客户端发送ACK包:客户端收到服务器的SYN + ACK包后,向服务器发送一个带有ACK标志位的TCP段,确认服务器的序列号,至此连接建立成功。
网络层
- IP封装:网络层接收传输层的数据段后,将其封装成IP数据包。IP数据包包含IP头部和TCP数据段,IP头部包含源IP地址和目的IP地址,用于在网络中进行路由选择。
- 路由选择:路由器根据IP地址和路由表确定IP数据包的传输路径。路由表记录了网络的拓扑结构和各个网络节点的可达性信息,路由器通过查找路由表,选择最优路径将数据包转发到下一个节点。
数据链路层
- 帧封装:数据链路层将IP数据包封装成数据帧。数据帧包含帧头部、IP数据包和帧尾部,帧头部包含源MAC地址和目的MAC地址,用于在本地网络中标识发送和接收设备;帧尾部包含校验信息,用于检测数据在传输过程中是否发生错误。
- 介质访问控制:在共享介质的网络中(如以太网),设备通过介质访问控制协议(如CSMA/CD)来竞争使用物理介质,确保数据帧能正确发送。
物理层
- 信号转换与传输:物理层将数据帧转换为适合在物理介质上传输的信号(如电信号、光信号等),并通过物理介质(如网线、光纤等)将信号发送出去。
5.2 数据传输阶段
- 中间节点转发:IP数据包在网络中传输时,会经过多个中间节点(如路由器)。每个路由器接收到数据包后,会根据其IP头部的目的IP地址查找路由表,确定下一跳的地址,并将数据包转发出去,直到到达目标网络。
- 拥塞控制:在传输过程中,TCP协议会进行拥塞控制,以避免网络拥塞。常见的拥塞控制算法有慢启动、拥塞避免、快速重传和快速恢复等,通过调整发送窗口的大小来控制数据的发送速率。
5.3 电脑B接收数据
物理层
- 信号接收与转换:目标设备的物理层接收到信号后,将其转换为数字数据帧,并传递给数据链路层。
数据链路层
- 帧校验与解封装:数据链路层检查数据帧的校验信息,若校验无误,则去除帧头部和帧尾部,将IP数据包传递给网络层。
网络层
- IP解封装:网络层对IP数据包进行解封装,检查IP头部信息,根据目的IP地址判断是否是本设备的数据包。若是,则去除IP头部,将TCP数据段传递给传输层;若不是,则继续进行路由转发。
传输层(以TCP为例)
- TCP解封装与确认:传输层对TCP数据段进行解封装,检查TCP头部信息,根据序列号对数据段进行排序和重组。同时,向发送方发送确认信息(ACK包),告知发送方哪些数据段已成功接收。
- 连接关闭(四次挥手)
- 客户端发送FIN包:当客户端完成数据发送后,向服务器发送一个带有FIN(结束)标志位的TCP段,表示请求关闭连接。
- 服务器响应ACK包:服务器收到客户端的FIN包后,向客户端发送一个带有ACK标志位的TCP段,确认客户端的关闭请求。
- 服务器发送FIN包:服务器在处理完剩余数据后,向客户端发送一个带有FIN标志位的TCP段,表示自己也请求关闭连接。
- 客户端响应ACK包:客户端收到服务器的FIN包后,向服务器发送一个带有ACK标志位的TCP段,确认服务器的关闭请求,至此连接关闭。
应用层
- 数据处理:传输层将重组后的应用层数据传递给相应的应用程序,应用程序对数据进行处理和显示,完成整个TCP/IP通讯过程。
6. IP和MAC
IP
IP(Internet Protocol),一般是指IP协议或IP地址,IP协议是TCP/IP协议族的核心协议之一。IP地址是IP协议提供的一种统一地址格式,为联网的每台设备分配的逻辑地址。
MAC
MAC(Media Access Control)通常指媒体访问控制,在计算机网络领域,它有两个紧密相关且重要的概念,分别是 MAC 地址和 MAC 层协议,
MAC(Media Access Control)地址也称为物理地址或硬件地址,是网络设备制造商在生产设备时烧录在网卡中的地址。
MAC 层是数据链路层的子层,主要负责控制网络设备对共享介质的访问,确保数据能够在物理介质上正确、有序地传输。
常见的MAC层协议:以太网协议,Wi - Fi 协议。
MAC 地址和 IP 地址的区别
-
MAC地址是物理地址IP地址是逻辑地址
-
MAC地址具有具有全球唯一性,IP地址具有逻辑性(可变),MAC地址由 IEEE(电气和电子工程师协会)分配给不同制造商,且固定在设备硬件中,就如同设备的 “身份证号”,不会因设备所处网络环境的改变而变化。
IP地址是根据网络拓扑和配置动态或静态分配的,会随着设备接入网络的不同而改变。例如,一台笔记本电脑在家中连接家庭网络和在办公室连接公司网络时,所获取的 IP 地址通常是不一样的。
MAC 地址和 IP 地址的功能
MAC 地址确保数据在本地网络内准确传输到目标设备。在局域网中,交换机等设备根据 MAC 地址表转发数据帧,实现设备间的通信。
IP 地址实现不同网络之间的通信,屏蔽了底层物理网络的差异。通过 IP 地址,数据包可以跨越多个网络,从源主机传输到全球任意一个目标主机。
参考:
1.https://tonydeng.github.io/sdn-handbook/basic/tcpip.html
2.https://www.doubao.com/chat/
本文内容主要来自豆包的回答。