山东大学计算机网络期末复习(2024版)
第一章 概述
1.1 计算机网络的定义与P2P(Peer-to-Peer)
计算机网络的定义
计算机网络是由多台计算机及其相关设备通过通信介质相互连接,按照一定的通信协议进行数据交换与资源共享的系统。它的基本功能包括:
- 数据传输:计算机之间传输各种类型的数据(如文本、音频、视频等)。
- 资源共享:不同计算机共享硬件资源(如打印机、磁盘)和软件资源(如数据库、应用程序)。
- 分布式处理:通过网络将计算任务分配到不同计算机上共同完成,增强处理能力。
P2P(Peer-to-Peer)网络
P2P网络是一种对等网络,其中网络中的每个节点既可以作为客户端,也可以作为服务器,直接与其他节点进行通信和资源共享。P2P与传统的客户端-服务器模式不同,去除了中心化的服务器,由多个节点直接参与数据传输和管理。
- 特点:
- 去中心化:没有中央服务器,每个节点既是资源提供者也是消费者。
- 资源共享:节点之间可以自由共享文件、计算能力等资源。
- 常见应用:文件共享(如BitTorrent)、分布式计算(如SETI@home)等。
1.2 网络硬件
Broadcasting
广播是指发送方将数据包同时传输给网络中所有节点的一种通信方式。广播传输通常仅适用于局域网(LAN)中。
Multicasting
多播是指发送方将数据包传输给一组特定的接收者,而非所有节点。多播是比广播更高效的一种数据传输方式,常用于视频会议、实时广播等应用。
Unicasting
单播是指发送方将数据包仅传输给一个特定的接收者。它是最常见的网络通信方式,通常用于互联网中的大多数通信,如浏览网页、发送电子邮件等。
LAN(Local Area Network)局域网
局域网是一个覆盖范围小、传输速率高、成本低的网络,通常用于连接同一建筑或有限地理范围内的计算机、打印机、路由器等设备。LAN可以通过有线或无线方式连接。
MAN(Metropolitan Area Network)城域网
城域网通常覆盖一个城市或大范围的区域,连接多个局域网。MAN的传输速率比WAN高,延迟和成本相对较低,广泛应用于城市级的互联网和广播系统。
WAN(Wide Area Network)广域网
广域网是覆盖广泛地理范围的网络,通常跨越城市、国家或甚至全球。互联网就是最大的广域网。WAN的传输速率较低,延迟较高,涉及的技术包括光纤传输、卫星通信等。
Internet(互联网)
互联网是一个全球性的计算机网络,连接了世界各地的数十亿台计算机。它采用了标准的通信协议(如TCP/IP),使得信息可以在不同类型和规模的计算机之间自由交换。
Packet Switching(分组交换)
分组交换是一种数据传输方式,将数据分成若干小的包,每个数据包都包含源地址、目的地址及数据部分,然后通过网络独立传输,最后在目的地重新组合成完整的数据。它比电路交换更加高效,能够充分利用网络带宽,减少延迟。
1.3 网络软件
Protocol(协议)
协议是计算机网络中用于规范通信双方之间数据传输规则的约定。它规定了数据格式、传输顺序、错误处理等内容。常见的协议包括TCP/IP、HTTP、FTP等。
Layer(层)
网络协议通常按照功能进行分层,每一层承担不同的功能。常见的分层模型包括OSI参考模型和TCP/IP参考模型。每一层通过接口与上下层进行交互。
Interface(接口)
接口是两个层之间通信的约定。接口定义了数据如何从一层传递到另一层,以及传输过程中需要遵循的规则。
Service(服务)
服务是网络层次向上层提供的功能。服务可以是面向连接的(例如TCP)或者无连接的(例如UDP)。服务通常由协议实现,定义了通信中应提供的功能和性能保证。
差错控制
差错控制是指网络通信中用于检测和修正数据传输过程中可能发生的错误的技术。常用的技术包括奇偶校验、循环冗余校验(CRC)、重传机制等。
流量控制
流量控制是指在数据传输过程中,发送方和接收方之间协调数据流的速率,避免接收方处理不过来,造成数据丢失。常见的流量控制机制有基于窗口的流量控制(如TCP中的滑动窗口机制)。
面向连接与无连接的服务
- 面向连接服务:通信双方在传输数据之前必须建立连接,并在数据传输结束后释放连接。TCP是一个面向连接的协议,提供可靠的通信。
- 无连接服务:通信双方不需要建立连接,数据以独立的方式传输,UDP就是无连接的协议,它不保证数据的可靠性,但提供较低的延迟。
可靠与不可靠的服务
- 可靠服务:保证数据的完整性、顺序和交付。TCP提供的是可靠的服务。
- 不可靠服务:不保证数据的传输顺序和完整性,UDP提供的是不可靠的服务。
服务与协议的关系
服务是网络层次提供的功能,而协议是实现这些功能的具体规则。服务是抽象的,而协议是具体的实现。一个服务通常由多个协议实现,协议提供了服务的实现细节。
1.4 OSI参考模型
OSI(Open Systems Interconnection)参考模型是国际标准化组织(ISO)提出的网络体系结构模型,它将网络通信划分为七个层次,从下到上依次是:
- 物理层:负责数据的物理传输,定义了电气特性、光学特性、传输介质等。
- 数据链路层:负责在物理媒介上传输数据帧,并进行差错检测和修正。
- 网络层:负责在不同网络之间转发数据包,处理路由选择,主要协议为IP。
- 传输层:提供端到端的通信,保证数据的可靠传输。常见协议有TCP、UDP。
- 会话层:管理不同应用程序之间的会话,提供数据同步和恢复功能。
- 表示层:负责数据的编码和解码,提供数据格式的转换。
- 应用层:为用户提供应用服务,如电子邮件、文件传输、网页浏览等。
1.5 TCP/IP参考模型
TCP/IP参考模型是互联网的核心协议架构,通常由四层构成,分别是:
- 链路层:对应于OSI模型的物理层和数据链路层,负责在特定的网络介质上传输数据。
- 网络层:负责包的路由和转发,主要协议为IP(Internet Protocol)。
- 传输层:负责提供端到端的通信服务,主要协议是TCP和UDP。
- 应用层:提供具体的网络服务,包含各种应用协议如HTTP、FTP、SMTP等。
1.6 802协议与网络标准化
802协议
IEEE 802是一个关于局域网和城域网的标准化委员会,制定了一系列网络通信协议,主要包括:
- IEEE 802.3:以太网(Ethernet)标准,定义了局域网的数据链路层和物理层。
- IEEE 802.11:无线局域网(Wi-Fi)标准,定义了无线网络的通信方式。
- IEEE 802.15:无线个人局域网(WPAN)标准,如蓝牙(Bluetooth)。
网络标准化
网络标准化是确保不同厂商设备、不同技术和协议能够互通的重要手段。通过标准化,网络设备能够根据统一的协议规范进行协作,确保网络的可互操作性。全球性的标准化组织包括:
- ISO(国际标准化组织):负责OSI参考模型等网络标准的制定。
- IETF(互联网工程任务组):负责制定TCP/IP协议族等互联网相关标准。
- IEEE(电气和电子工程师协会):负责制定局域网、无线网等技术标准。
第二章 物理层
2.1 数据通信的理论基础
带宽(Bandwidth)
带宽是指通信信道能够传输的最大数据量,通常以赫兹(Hz)为单位来表示。在数据传输中,带宽指的是信道能够承载的频率范围,频率越高,能传输的数据量越大。带宽决定了传输速率的上限。例如,音频信号的带宽较小,而视频信号的带宽则较大。
在数字通信中,带宽通常与传输速率(比特率)直接相关。例如,如果一个信道的带宽是 3 kHz,它能传输的数据量可能是几千比特每秒(bps),具体取决于其他因素,如噪声和信号调制方式。
尼奎斯特定理(Nyquist Theorem)
尼奎斯特定理给出了在无噪声情况下,传输速率的最大值与信号带宽的关系。它的基本表述是:
-
对于一个理想的无噪声传输信道,最高的传输速率 \(C_{max}\) 可以由下式表示:
\[C_{max} = 2B \cdot \log_2(M) \]其中:
- \(B\) 是信道的带宽(单位:赫兹)
- \(M\) 是每个信号符号的可能状态数(如调制方式的阶数,2代表二进制信号)
-
在简单的二进制信号情况下,\(M = 2\),尼奎斯特定理简化为:
\[C_{max} = 2B \]这意味着,带宽越大,传输速率也可以越高,但这是在没有噪声的理想条件下的理论极限。
香农定理(Shannon Theorem)
香农定理给出了在有噪声的情况下,信道的最大传输速率与带宽和信噪比(SNR)之间的关系。它的基本表述是:
其中:
- \(C\) 是信道的最大数据传输速率(单位:比特每秒,bps)
- \(B\) 是信道的带宽(单位:赫兹)
- \(S\) 是信号的功率
- \(N\) 是噪声的功率
香农定理表明,在实际的通信中,噪声不可避免,传输速率的上限不仅与带宽有关,还与信号与噪声的比值(SNR)紧密相关。当SNR增加时,最大传输速率也增加。香农定理为设计通信系统提供了理论基础,帮助理解如何在实际应用中尽量减少噪声的影响。
2.2 有导向的传输介质
有导向传输介质(Guided Media)
有导向传输介质是指传输信号通过物理导体(如电缆、光纤)进行传输。常见的有导向介质包括:
-
双绞线(Twisted Pair Cable):由两根互相扭绞的导线组成,常用于电话线路和局域网中。其优点是成本较低,缺点是易受电磁干扰,传输距离较短。
-
同轴电缆(Coaxial Cable):由内导体、外导体和绝缘层组成,常用于电视信号传输和有线电视网络。相比双绞线,同轴电缆具有更好的抗干扰性能和更长的传输距离。
-
光纤(Optical Fiber):通过光信号传输数据,具有极高的传输速率和极长的传输距离。光纤对电磁干扰不敏感,适用于高速互联网、长距离通信等场合。
这些有导向介质都能够有效地限制信号的传播范围,确保信号的稳定传输。
2.3 PSTN电话系统与调制解调器(Modem)
PSTN电话系统(Public Switched Telephone Network,公共交换电话网)
PSTN是一种传统的模拟电话系统,广泛用于语音通信。它通过有线的电话线路来传输信号,并采用电路交换的方式连接两端的通信设备。
调制解调器(Modem)
调制解调器(Modem,Modulator-Demodulator)用于在电话线上传输数字数据,它通过将数字信号转换成模拟信号(调制),并在接收端将模拟信号转换回数字信号(解调),使得计算机能够通过PSTN进行数据通信。
- 调制方式:
- 调幅(AM,Amplitude Modulation):通过改变载波的振幅来传输信号。调幅的优点是简单,但它容易受到噪声的影响。
- 调频(FM,Frequency Modulation):通过改变载波的频率来传输信息。调频比调幅更抗干扰,适用于远距离通信。
ADSL(Asymmetric Digital Subscriber Line)
ADSL是一种通过现有的电话线提供宽带互联网接入的技术。与传统的拨号上网不同,ADSL可以同时支持语音和数据通信,且数据传输速率更高。ADSL的上行速率(从用户到网络)较低,而下行速率(从网络到用户)较高,适用于家庭用户和小型办公室。
干线与复用技术
-
FDM(Frequency Division Multiplexing,频分复用)
FDM通过将可用带宽划分为多个小的频段,每个频段承载不同的信号。这种技术常用于广播电台、电视台等。 -
WDM(Wavelength Division Multiplexing,波分复用)
WDM是光纤通信中的复用技术,通过将光信号的不同波长分配给不同的信号,从而在同一根光纤中传输多个信号。WDM技术大大增加了光纤的传输容量,是现代高速光纤通信系统的关键技术之一。 -
TDM(Time Division Multiplexing,时分复用)
TDM通过在同一信道上分时段地发送多个信号。在每个时间段内,只有一个信号在传输,信号的发送时序是严格划分的。TDM常用于数字电话和卫星通信系统。
电路交换、分组交换及其比较
-
电路交换(Circuit Switching)
电路交换是一种通信方式,通信双方在通信过程中通过专用的物理通道进行连接。这种方式确保通信时的信道是专用的,不会被其他通信占用,具有很高的可靠性和稳定性。传统的电话系统就是基于电路交换的。- 优点:通信质量高、延迟低。
- 缺点:占用信道,效率较低,即使通信双方不在传输数据时,也会占用通信资源。
-
分组交换(Packet Switching)
分组交换是将数据分成若干个小的数据包,每个数据包都包含目的地址等信息,数据包在网络中独立传输,最终再根据目的地址组合成完整的信息。这种方式较为灵活,可以充分利用网络资源,不会在不需要时占用通道。- 优点:效率高、资源利用充分、适应性强。
- 缺点:存在一定的延迟,可能出现丢包和乱序等问题。
-
电路交换与分组交换的比较
- 电路交换:适用于语音通信等对实时性要求较高的应用,通信质量稳定,但资源利用率较低。
- 分组交换:适用于数据通信,尤其是大流量和突发流量的应用,效率较高,但对实时性要求较高的应用(如视频通话)可能不够理想。
综合来看,电路交换适用于对时延敏感、连续性强的通信(如传统电话),而分组交换更适合数据流量较大的互联网通信。
第三章 数据链路层
3.1 成帧(位填充、字节填充)
成帧是数据链路层的一个重要功能,它的目的是将网络层传输过来的数据分成适合在物理层上传输的帧。成帧的过程涉及如何将数据包装成帧的形式,并添加头部、尾部以及必要的控制信息。成帧的方式有不同的技术,其中位填充和字节填充是常见的两种方法。
-
位填充(Bit Stuffing)
位填充是一种通过在数据中插入额外的位来避免数据和帧标识符冲突的方法。通常情况下,帧的起始和结束会有一个特定的标志,比如 "01111110"。当数据中出现五个连续的1时,系统会自动插入一个0,以避免误判帧的结束。例如,如果数据中出现了 "111110",则会进行位填充,变成 "111110 0"。
- 优点:避免了帧头和数据冲突。
- 缺点:每个帧需要额外的处理,可能增加开销。
-
字节填充(Byte Stuffing)
字节填充通过插入特定的控制字节来避免帧头或帧尾出现在数据部分。常见的方法是,如果数据中包含帧的特殊字节(例如帧开始的字节“0x7E”),则将其替换为特定的转义字符(如“0x7D”),并在后面加上一个控制字节。例如,如果帧头是“0x7E”,而数据部分也包含“0x7E”,则将数据中的“0x7E”替换为“0x7D 0x5E”。
- 优点:简单易实现,适用于小数据帧。
- 缺点:会增加额外的数据开销和计算复杂度。
3.2 错误检测和纠正(CRC)
循环冗余检查(CRC,Cyclic Redundancy Check)
CRC是一种广泛使用的错误检测技术,用于检测在数据传输或存储过程中发生的错误。CRC基于二进制除法,通过将数据看作一个大整数,对数据进行模2除法操作,计算出余数。该余数作为一个校验值,附加到数据的尾部。
-
工作原理:
- 选择一个固定的生成多项式(通常称为CRC生成多项式)。
- 将数据视为二进制字符串,与生成多项式进行除法运算,得到余数。
- 将余数附加到数据后面,构成带有CRC校验的帧。
- 接收端重新计算CRC校验,如果得到的CRC值与接收到的CRC值匹配,则说明数据传输没有错误,否则说明有错误发生。
-
CRC的优点:
- CRC能够检测到多种类型的错误,包括单个比特错误、偶数个比特错误、以及较长的错误。
- CRC算法简单,计算快速。
-
CRC的应用:
CRC广泛应用于以太网(Ethernet)、光纤通道(Fibre Channel)、以及各种数据存储设备(如硬盘)等系统中。 -
错误纠正:
虽然CRC本身主要是一个错误检测机制,但通过某些扩展技术(如汉明码、Turbo码等),它可以结合纠错功能来实现一定的错误修复。CRC的纠错能力通常受限,主要应用于检测数据是否有误。
3.3 基本数据链路协议(停等协议)
停等协议(Stop-and-Wait Protocol)
停等协议是一种简单的、可靠的数据链路协议,常用于点对点通信中。它的基本思想是:发送方每发送一帧数据后,必须等待接收方的确认(ACK),才能继续发送下一帧数据。
-
工作原理:
- 发送方发送一帧数据并等待接收方的确认。
- 接收方收到数据后,发送确认信号(ACK)。
- 发送方收到确认后,发送下一帧数据。
-
优点:实现简单,容易理解和设计。
-
缺点:效率低,发送方在每次发送数据后都需要等待接收方的确认,这样会造成大量的空闲时间,尤其是在延迟较大的网络中。
3.4 滑动窗口协议
滑动窗口协议通过引入窗口机制,允许发送方在等待确认时可以发送多帧数据,极大地提高了数据传输的效率。滑动窗口协议是一种高效的流控制协议,常用于网络通信中。
捎带确认(Piggybacking)
捎带确认是一种优化机制,发送方可以在发送数据时附带接收方的确认信息(即在数据帧中加入确认信号),而不是等待单独的确认帧。这样可以减少网络上的控制帧,提高传输效率。
发送窗口(Send Window)
发送窗口指的是发送方可以发送的最大帧数,且这些帧在等待确认的过程中不会被重发。窗口大小决定了发送方的并发能力。发送窗口随着确认的接收而滑动,发送方在窗口范围内发送数据。
接收窗口(Receive Window)
接收窗口指接收方能够同时接收并处理的最大帧数。接收窗口的大小通常与发送窗口的大小相关联,确保数据不会因为网络延迟或拥塞而丢失。
一位滑动窗口协议(1-bit Sliding Window)
一位滑动窗口协议是一种简单的滑动窗口协议,窗口大小为1,意味着每次只能发送一帧数据,发送方发送一帧后必须等待确认才能继续发送。尽管这种协议是滑动窗口协议的特殊情况,但它仍然比停等协议要高效一些。
回退N协议(Go-Back-N ARQ)
回退N协议是一种允许发送方在等待确认时发送多帧数据的滑动窗口协议。发送方的窗口大小为N,表示可以同时发送N帧数据。当某一帧数据出现错误时,接收方会丢弃该帧并要求重新发送该帧及其后的所有帧。即使只有一帧出错,发送方也会回退N帧,重新发送。
选择性重发协议(Selective Repeat ARQ)
选择性重发协议与回退N协议相似,但它更加高效。在选择性重发协议中,只有错误的帧会被重发,而无需重发所有后续帧。接收方会缓存正确接收的数据帧,直到所有数据帧都被正确接收并按顺序排列。
- 优点:比回退N协议更加高效,因为只需要重发出现错误的帧,减少了带宽的浪费。
- 缺点:实现复杂,需要接收方缓存已接收的帧。
第四章 介质访问子层
4.1 静态和动态信道分配
信道分配是介质访问控制(MAC)的一部分,用于确定如何在多个通信节点之间共享传输介质。介质访问子层的主要目标之一是高效且公平地分配信道。
静态信道分配
静态信道分配方式通常通过预先分配固定的信道或时间槽来进行。这种方式适用于固定通信需求的环境。例如,时分多址(TDMA)就是一种静态信道分配方法,通信的时间被分成固定的时隙,每个通信节点都有一个固定的时间窗口来进行数据传输。
优点:
- 实现简单,易于管理。
- 确保每个节点的带宽资源。
缺点:
- 静态分配可能导致资源的浪费,特别是在某些节点没有数据需要发送时,仍然占用信道。
- 缺乏灵活性,不能动态响应网络负载变化。
动态信道分配
动态信道分配方式是基于网络的实际需求动态地分配信道。例如,频分多址(FDMA)和载波侦听多路访问(CSMA)等方法允许节点根据当前网络负载和冲突情况动态获取信道。
优点:
- 更加灵活,能够根据实际网络需求自动调整资源。
- 资源利用率较高,能够根据实际流量变化分配信道。
缺点:
- 实现较为复杂,可能导致较高的协议开销。
- 动态分配可能带来更多的冲突,需要额外的冲突检测和处理机制。
4.2 多路访问协议
多路访问协议(Multiple Access Protocols)用于控制多个通信节点如何共享相同的信道,防止冲突并高效地利用带宽。常见的多路访问协议包括ALOHA、CSMA、CSMA/CD、最小帧长和MACAW等。
ALOHA(自适应轮询)
ALOHA协议是最早的多路访问协议之一,工作原理简单:发送节点可以在任何时候发送数据,如果发送成功,接收方会返回确认信息;如果没有接收到确认,则发送方会在随机时间后重新发送数据。
优点:简单易实现。
缺点:效率低,容易发生冲突,特别是在负载较高时。
CSMA(载波侦听多路访问)
在CSMA中,节点在发送数据之前会监听信道。如果信道空闲,则可以发送数据;如果信道忙碌,则等待一段时间后重新尝试发送。
优点:相比ALOHA,减少了碰撞的发生。
缺点:不适合高度拥塞的网络,可能导致“盲目重传”现象。
CSMA/CD(载波侦听多路访问/碰撞检测)
CSMA/CD是CSMA的改进版,在数据发送后,发送方会继续监听信道,检测是否发生碰撞。如果发生碰撞,则立即停止发送并在随机时间后重新尝试发送。
优点:更有效的冲突管理,适用于有较高冲突概率的环境(如以太网)。
缺点:碰撞仍然会发生,且当网络负载较高时,重传次数可能增加,降低效率。
最小帧长(Minimum Frame Size)
在CSMA/CD中,为了确保发送方能够在发送完数据后及时检测到碰撞,规定了最小帧长。这是因为如果帧太短,发送方可能在检测到碰撞之前已经完成发送。
优点:保证碰撞能被及时检测到。
缺点:增加了数据传输的延迟,尤其在网络负载较低时。
MACAW(无线局域网的多接入协议)
MACAW(MACA for Wireless)是一种无线多路访问协议,基于CSMA,但为了适应无线网络中的特殊问题(如隐藏站问题和暴露站问题),MACAW增加了明确的握手机制,以减少碰撞和冲突。
优点:通过引入握手和确认机制,提高了无线网络的性能。
缺点:协议复杂,且存在一定的协议开销。
4.3 以太网
以太网是目前最广泛使用的局域网技术之一。其关键特性包括二进制指数后退算法、最小帧长、编码方式等。
二进制指数后退算法(Binary Exponential Backoff)
在以太网中,当节点发生碰撞后,它们不会立即重新发送,而是通过二进制指数后退算法随机选择一个时间段进行重试。随着冲突次数的增加,重试的间隔时间指数增长,从而减少网络的进一步拥塞。
优点:有效减少了频繁冲突后的网络拥堵。
缺点:在高负载情况下,重传时间的指数增长可能导致较长的延迟。
最小帧长(Minimum Frame Size)
以太网定义了最小帧长,通常为64字节。这样做是为了确保帧发送过程中能够充分检测到碰撞。
曼彻斯特编码(Manchester Encoding)
曼彻斯特编码通过在每个比特周期中使用两个电平变化来表示0和1。这种编码方式可以在物理层上实现自同步。
差分曼彻斯特编码(Differential Manchester Encoding)
差分曼彻斯特编码是曼彻斯特编码的一种变种,它通过检测电平的变化来表示比特。与曼彻斯特编码不同,差分曼彻斯特编码不直接依赖于信号的起始状态。
802.3帧格式
802.3是以太网标准的基础,其帧格式包括:
- 前导码(7字节):帮助接收设备同步。
- 目标MAC地址(6字节):指定接收设备。
- 源MAC地址(6字节):发送设备的地址。
- 长度/类型字段(2字节):标识帧数据的长度或类型。
- 数据部分(46-1500字节):实际的传输数据。
- 循环冗余校验(CRC)(4字节):用于检测传输中的错误。
4.4 WLAN
无线局域网(WLAN)是局域网的一种类型,采用无线方式进行通信。常见的WLAN技术包括IEEE 802.11系列。
隐藏站问题(Hidden Station Problem)
在无线网络中,如果两个站点彼此无法直接听到对方的信号,则会发生隐藏站问题。即一个站点A和站点B都能与站点C通信,但它们无法彼此听到对方的信号。这可能导致它们在发送数据时发生冲突。
暴露站问题(Exposed Station Problem)
如果一个站点A在发送数据时,站点B无法发送数据,因为它误认为站点A正在占用信道。其实,站点B与站点A的通信不会发生冲突,这就是暴露站问题。
CSMA/CA(载波侦听多路访问/冲突避免)
无线网络使用CSMA/CA来避免冲突。与CSMA/CD不同,CSMA/CA在发送数据前会进行“请求发送”(RTS)和“清除发送”(CTS)机制的握手,以减少冲突的概率。
802.11 MAC子层协议
IEEE 802.11定义了用于无线局域网的MAC子层协议。它包括信道分配、帧传输、错误检测等机制,保证了无线通信的可靠性和效率。
4.5 数据链路层交换
数据链路层交换是指在数据链路层通过设备(如网桥、交换机等)进行数据的转发和路径选择。数据链路层交换可以有效地提高网络的效率,减少网络拥塞,并确保数据的正确传输。
网桥(Bridge)
网桥(Bridge)是一种连接两个或多个局域网段的设备,通过学习和转发MAC地址来实现不同网络段之间的通信。网桥的工作原理基于地址学习和过滤机制。
-
散列表(Hash Table):网桥会建立一个散列表(或称为地址表),其中存储着MAC地址和它们对应的端口信息。网桥通过查看帧的目标MAC地址来判断将该帧转发到哪个端口。
-
转发算法(Forwarding Algorithm):网桥根据散列表中的信息判断目标MAC地址所在的网络段,并将数据帧转发到正确的网络段。如果目标MAC地址在表中,网桥会通过相应的端口转发;如果目标MAC地址不在表中,网桥会广播该帧。
-
逆向学习(Reverse Learning):网桥还具有逆向学习的功能,通常当网桥接收到一个帧时,它不仅根据目标MAC地址转发数据帧,还可以学习源MAC地址的位置,并更新散列表。
-
动态拓扑结构变化:网桥能够动态应对网络拓扑的变化。如果某个网络段发生变化,网桥可以根据新网络拓扑自动调整转发路径,保持网络的连通性。
生成树网桥(Spanning Tree Bridge)
生成树协议(STP,Spanning Tree Protocol)用于避免网桥在网络中形成环路,确保数据帧在网络中只沿着一条路径转发。环路会导致数据帧在网络中无限循环,从而占用网络带宽并导致网络拥塞。
生成树协议的工作流程包括:
-
根桥选举:在STP协议中,首先会选举出一个根桥(Root Bridge)。根桥是整个网络的逻辑中心,其他所有网桥的路径都要以根桥为中心进行计算。
-
路径成本计算:每个网桥根据到达根桥的路径成本计算最短路径。路径成本通常由链路的带宽决定,带宽越大,路径成本越低。
-
阻塞冗余路径:生成树协议通过阻塞部分冗余路径来避免环路的形成,只允许数据帧通过一条最短路径进行转发。当某条路径出现故障时,生成树协议会重新计算路径并激活备份路径。
生成树协议的核心优势是消除网络环路,确保数据传输的高效和稳定。
中继器、集线器、交换机、路由器、网关
这些设备在不同的网络层次上起着不同的作用,帮助网络通信更高效地进行。以下是这些设备在数据链路层及其上层的角色:
-
中继器(Repeater):中继器工作在物理层,它用于扩展网络的传输距离,通过放大信号来延长传输范围。它不关心数据的内容,仅负责传输信号。
-
集线器(Hub):集线器也是工作在物理层的设备,主要用于将多个设备连接在一起。集线器将接收到的信号广播到所有端口。它是一个无智能的设备,无法识别设备间的通信关系,所有端口上的设备都共享带宽,容易发生冲突。
-
交换机(Switch):交换机工作在数据链路层,具有较高的智能。它通过学习并维护MAC地址表,将数据帧精确地转发到目标设备。相比集线器,交换机能够减少冲突,提高网络效率。
-
路由器(Router):路由器工作在网络层,负责根据目标IP地址选择最佳的路径转发数据包。路由器具有较高的智能,可以通过不同的协议(如OSPF、BGP等)动态决定数据的转发路径。路由器还可以将不同网络之间进行连接。
-
网关(Gateway):网关是网络中最复杂的设备,工作在OSI模型的各个层次。它不仅可以进行协议转换,还可以连接不同类型的网络(如不同协议族的网络)。网关可以处理传输层、会话层、表示层等各种协议数据。
网络设备与层次的对应关系
在OSI模型中,不同的网络设备会根据其工作层次的不同来进行分类。以下是常见网络设备与其对应的层次:
设备 | OSI层级 | 说明 |
---|---|---|
中继器 | 物理层(Layer 1) | 仅传输信号,没有数据处理功能。 |
集线器 | 物理层(Layer 1) | 将信号广播到所有连接的端口,没有数据处理功能。 |
交换机 | 数据链路层(Layer 2) | 根据MAC地址进行数据帧转发,减少网络冲突。 |
路由器 | 网络层(Layer 3) | 根据IP地址转发数据包,提供不同网络间的连接。 |
网关 | 各层(Layer 1-7) | 能够跨越多个协议层进行通信,通常用于协议转换。 |
这种层次化的设备分工使得网络能够更高效地进行数据转发和路径选择,从而提供更好的网络性能和稳定性。
第五章 网络层
网络层主要负责在不同网络之间转发数据包,并提供逻辑地址的分配、路由选择等功能。它的设计目标是高效、可靠地将数据从源设备传输到目标设备。网络层设计的核心要点包括虚电路子网与数据报子网的选择、路由算法、拥塞控制、服务质量保障、网络互连等内容。
5.1 网络层设计要点
网络层可以通过不同的方式来设计和实现数据的传输。常见的两种基本子网架构是虚电路子网和数据报子网。
虚电路子网(Virtual Circuit Subnet)
虚电路子网是一种面向连接的网络模型,在数据传输开始之前,需要建立一个虚电路(类似于电话网络中的拨号过程)。虚电路子网的特点包括:
- 连接建立:在数据传输之前,源节点和目标节点之间需要通过路由器或交换机建立虚电路。建立时会分配虚电路标识符(VCI)。
- 固定路径转发:数据帧通过事先建立好的路径进行转发,这些路径在数据传输过程中不会改变。
- 错误检测:由于有固定路径,虚电路可以更加有效地进行错误检测与恢复。
虚电路模型的优点是能提供可靠的传输、低延迟,且能够进行流量控制和拥塞控制。但是,它的缺点是路由计算比较复杂,且无法应对网络拓扑的动态变化。
数据报子网(Datagram Subnet)
数据报子网是一种无连接的网络模型,数据包的每个传输都是独立的。数据报子网的特点包括:
- 无需连接建立:数据包每次传输时,都会独立选择路径。数据包的传输不依赖于先前的连接状态。
- 动态路由:每个数据包可以根据当前的网络状态动态选择路径,适应网络拓扑的变化。
- 容错性强:由于没有固定路径,数据包在传输过程中若发生丢失或阻塞,可能会选择其他路径继续传输。
数据报子网的优点是灵活、可扩展,特别适用于大规模、动态变化的网络环境,但在网络拥塞时可能会导致较高的延迟。
5.2 路由算法
路由算法的目标是为数据包选择一条最佳的路径。常见的路由算法包括最优化原则、最短路径路由、距离矢量路由、链路状态路由等。
最优化原则(Optimization Principle)
最优化原则在路由选择中指的是寻找一条满足某些性能标准(如最短路径、最少延迟、最小带宽等)的最佳路径。网络层路由的目标就是在各种约束条件下,确保数据包能够最优地传输。
Sink Tree(汇聚树)
Sink Tree是一个由网络中所有节点构成的树结构,根节点通常是目的节点,树的其他节点为源节点。每个节点通过最短路径到达目标节点,类似于最短路径算法。汇聚树常用于广播路由和多播路由中。
最短路径路由(Shortest Path Routing)
最短路径路由是最常见的路由算法,通过选择从源节点到目标节点的最短路径来进行路由。常见的最短路径算法有:
- Dijkstra算法:适用于所有节点之间的最短路径计算。
- Bellman-Ford算法:适用于带有负权边的图,能够处理网络中的路径更新。
距离矢量路由(Distance Vector Routing)
距离矢量路由是基于邻居节点的路由算法,节点会定期向其邻居报告自己的路由表,并根据邻居的更新来更新自己的路由表。常见的距离矢量路由协议包括RIP(路由信息协议)。
- 优点:实现简单,适合小规模网络。
- 缺点:收敛速度慢,容易产生环路,存在无穷计算问题(Infinity Loop),这是当路由表信息不准确时导致的计算误差。
链路状态路由(Link-State Routing)
链路状态路由算法要求每个路由器保持整个网络的拓扑信息。每个路由器通过定期广播其链路状态信息来同步网络拓扑。常见的链路状态路由协议包括OSPF(开放最短路径优先协议)。
- 优点:能够更快收敛,适应性强,能够精确计算最短路径。
- 缺点:需要更高的计算和存储开销。
距离矢量路由与链路状态路由的比较
特性 | 距离矢量路由(DV) | 链路状态路由(LS) |
---|---|---|
路由信息更新方式 | 每隔一段时间向邻居广播 | 广播整个网络的链路状态信息 |
收敛速度 | 较慢 | 较快 |
计算开销 | 较小 | 较大 |
路由环路问题 | 容易产生环路 | 没有环路问题 |
协议复杂度 | 简单 | 较复杂 |
分级路由(Hierarchical Routing)
分级路由通过将整个网络分成多个区域,每个区域内部有自己的路由信息,只有在需要时才通过区域间的路由器进行跨区域通信。这种方法可以有效地减少路由表的规模,并提高路由效率。
广播路由(Broadcast Routing)
广播路由是指将数据包发送到网络中所有节点的过程。广播路由通常用于某些类型的网络发现、服务发现或控制消息的传输。
移动路由(Mobile Routing)
移动路由用于无线网络和移动设备网络中,移动设备可能会经常改变位置,因此需要动态的路由选择。常见的移动路由协议有AODV(按需距离矢量路由协议)和DSR(动态源路由协议)。
5.3 拥塞控制(Congestion Control)
拥塞控制旨在避免网络中出现过多的数据包导致的拥堵问题。常见的拥塞控制算法包括:
- RED(Random Early Detection):RED是一种基于队列长度的拥塞控制方法,它通过在队列满之前随机丢弃数据包来防止队列积压过多数据。RED能够有效降低拥塞,减少丢包率,并提高网络的利用率。
5.4 服务质量(Quality of Service, QoS)
服务质量(QoS)是指对网络中数据流的传输性能(如带宽、延迟、抖动、丢包率等)进行保证和优化。常见的QoS技术包括:
- 资源预留:通过协议如RSVP来保证应用程序或服务的带宽需求。
- 缓冲:用于临时存储数据,避免因网络瞬时拥塞导致的数据丢失。
- 抖动:抖动是指数据包到达的延迟波动,QoS需要尽量减少抖动,以保证实时应用的质量。
- 漏桶算法:用于平滑数据流,限制数据的流量。
- 令牌桶算法:控制数据流量,允许突发数据传输,但会对突发流量进行限制。
5.5 网络互连(隧道技术)
隧道技术用于将不同类型的网络进行连接。它通过封装协议使得不同协议的数据能够在不兼容的网络之间传输。常见的隧道技术有:
- VPN(虚拟专用网络):通过在公共网络(如互联网)上建立加密的“隧道”连接两个网络。
- GRE隧道(Generic Routing Encapsulation):一种简单的隧道协议,用于在不同的协议之间进行数据封装和传输。
5.6 Internet的网络层
在互联网的网络层中,IP协议是最核心的协议,负责将数据从源主机传送到目的主机。以下是互联网网络层中的一些重要概念和技术。
IPv4协议
IPv4(Internet Protocol version 4)是当前广泛使用的网络层协议。IPv4使用32位的地址空间,能够表示约42亿个地址。IPv4协议具有以下特点:
- 地址格式:IPv4地址由4个字节(32位)组成,每个字节由8位二进制数表示,通常以点分十进制形式表示,如
192.168.1.1
。 - 无连接性:IPv4是无连接的协议,不保证数据包的可靠性、顺序等,只负责将数据从源传输到目的地。
- 路由功能:IPv4通过路由器来转发数据包,利用目标地址来选择下一跳路由器。
- 分片与重组:IPv4支持数据包的分片与重组。由于网络中不同链路的MTU(最大传输单元)不同,IPv4可以将大数据包分片,直到达到目的地再进行重组。
IP地址与子网
IP地址是网络层的核心元素,它用于唯一标识每台设备或主机。IP地址由两个部分组成:
- 网络部分:表示主机所在的网络。
- 主机部分:表示网络中具体的设备。
通过子网掩码,可以将IP地址划分为多个子网。子网掩码通过“与”操作将IP地址划分为网络部分和主机部分。例如,IPv4地址192.168.1.1
和子网掩码255.255.255.0
表示的子网范围是192.168.1.0/24
,其中/24
表示网络部分占24位。
子网划分(Subnetting)
子网划分是将一个大的IP地址块划分为多个较小的子网,这样可以提高IP地址的利用率,并增加网络的可管理性。子网划分需要了解如何计算子网掩码和网络范围。例如,使用CIDR(无类域间路由)方法时,可以通过不同的掩码长度来划分子网,如192.168.1.0/26
表示网络地址范围是从192.168.1.0
到192.168.1.63
。
CIDR(无类域间路由,Classless Inter-Domain Routing)
CIDR是对传统IPv4地址类别(A类、B类、C类等)的一种改进。CIDR通过灵活的子网掩码长度来划分IP地址块,而不再依赖固定的网络类别。这使得IP地址分配更为灵活且有效率。例如,192.168.0.0/22
表示一个地址块,它包含192.168.0.0
到192.168.3.255
的地址范围。
CIDR的优点包括:
- 更高效的地址利用:避免了浪费大量的IP地址。
- 路由表的聚合:可以通过一个CIDR前缀表示多个IP地址块,减少路由表的条目数量。
地址聚合技术(Address Aggregation)
地址聚合技术是一种减少路由表条目数量的技术,常见于ISP(互联网服务提供商)和运营商网络中。通过将多个IP地址块合并为一个单一的地址块,可以减少全网路由器中存储的路由信息数量,从而提高路由效率并减少路由表的规模。
例如,多个192.168.1.0/24
、192.168.2.0/24
、192.168.3.0/24
等网络可以聚合成一个192.168.0.0/22
的网络地址块。
NAT(网络地址转换)
NAT是一种在IPv4网络中广泛使用的技术,允许将私有网络中的多个设备映射到一个公网IP地址上,从而解决IPv4地址不足的问题。NAT工作原理:
- 源NAT(SNAT):用于将内部网络设备发出的数据包的源IP地址替换为公共IP地址。
- 目的NAT(DNAT):用于将外部访问的数据包的目标IP地址替换为内部网络设备的IP地址。
NAT的优点是能够有效节约IP地址资源,但它也有一些缺点,如影响端到端的可达性和某些协议的支持(如FTP、P2P等)。
ICMP(互联网控制消息协议)
ICMP是互联网协议族中的一种重要协议,用于报告网络通信中的错误、提供诊断功能等。ICMP最常见的用途包括:
- ping命令:使用ICMP Echo请求和Echo响应来测试网络连接性。
- 路由器告警消息:当路由器遇到错误时,它会向源设备发送ICMP错误消息,如“目标不可达”。
- 时间戳和重定向:ICMP还可以提供时间戳服务以及路由重定向信息。
ARP(地址解析协议)工作过程
ARP用于将IPv4地址解析为物理地址(MAC地址)。在局域网中,设备通过ARP请求来查找其他设备的MAC地址,ARP的工作过程如下:
- 主机A要发送数据给主机B,但只知道B的IP地址。
- 主机A向网络发送ARP请求,广播询问“谁拥有IP地址192.168.1.2?”
- 主机B接收到ARP请求并返回一个ARP响应,告知其MAC地址。
- 主机A根据返回的MAC地址,使用数据链路层协议发送数据。
ARP表会在设备中缓存这些映射信息,减少频繁的ARP请求。
DHCP(动态主机配置协议)
DHCP用于自动分配IP地址及其他网络配置参数(如子网掩码、网关地址等)。通过DHCP,网络中的设备可以在连接时自动获取一个IP地址,简化了网络配置。DHCP的工作过程如下:
- DHCP发现(DHCP Discover):客户端发送一个广播包,寻找DHCP服务器。
- DHCP提供(DHCP Offer):DHCP服务器回应一个可用的IP地址以及其他配置信息。
- DHCP请求(DHCP Request):客户端确认接受提供的IP地址。
- DHCP确认(DHCP Ack):DHCP服务器确认并分配IP地址给客户端。
OSPF(开放最短路径优先协议)
OSPF是一个基于链路状态的内部网关协议(IGP),用于计算最短路径并动态更新路由信息。OSPF的主要特点包括:
- 区域化(Area):OSPF将网络划分为多个区域,每个区域有自己的路由信息。这样可以减少路由计算的开销,并提高网络的可扩展性。
- 使用Dijkstra算法:OSPF使用Dijkstra算法来计算网络中从源路由器到其他路由器的最短路径。
- 支持VLSM(变长子网掩码):OSPF支持不同子网掩码长度,提高了地址利用率。
BGP(边界网关协议)
BGP是一个用于不同自治系统(AS)之间的外部网关协议。BGP的主要作用是实现不同AS之间的路由信息交换和路由选择。BGP是基于路径向量的协议,通过交换路由前缀和路径信息来进行路由决策。
- BGP的特点:BGP能够支持非常大的网络,且能处理复杂的路由策略。BGP可以避免环路,采用路径属性来决定最佳路径。
- AS(自治系统):BGP通过AS号来区分不同的自治系统,决定如何跨AS传输数据。
第六章 传输层
传输层位于OSI模型的第四层,主要负责端到端的通信控制,它为应用层提供可靠的数据传输服务。传输层的主要协议有TCP(传输控制协议)和UDP(用户数据报协议)。下面详细介绍传输层的各个要素和协议。
6.1 传输协议的要素
在传输层中,传输协议需要处理以下几个重要要素:
寻址(Addressing)
传输层的寻址是通过端口号来实现的。端口号结合IP地址可以唯一标识网络上的一个应用程序进程。常见的端口号有:
- HTTP:80
- HTTPS:443
- FTP:21
- DNS:53
- SMTP:25
端口号的分配通常分为三类:
- 知名端口(Well-known ports):0-1023,保留给常用的服务。
- 注册端口(Registered ports):1024-49151,给用户自定义应用分配。
- 动态/私有端口(Dynamic/Private ports):49152-65535,通常用于临时分配。
建立连接(三次握手)
在TCP协议中,连接的建立通过三次握手(Three-Way Handshake)来完成。其过程如下:
- 第一次握手:客户端向服务器发送一个SYN(同步)包,表示请求建立连接。
- 第二次握手:服务器收到SYN包后,回应一个SYN-ACK包,表示同意建立连接并确认客户端的请求。
- 第三次握手:客户端收到SYN-ACK包后,发送一个ACK包,表示连接已成功建立。
这个过程确保双方的序列号和连接状态一致,避免了因丢包或重传导致的错误。
释放连接(四次挥手)
连接的释放通过四次挥手(Four-Way Handshake)来完成。其过程如下:
- 第一次挥手:主动关闭连接的一方发送一个FIN(结束)包,表示希望关闭连接。
- 第二次挥手:接收方回复一个ACK包,确认接收到关闭连接的请求,但此时接收方仍可能有数据要发送。
- 第三次挥手:接收方在完成数据传输后发送一个FIN包,表示也准备关闭连接。
- 第四次挥手:主动关闭连接的一方发送一个ACK包,表示连接完全关闭。
四次挥手确保了双方都已完成数据的发送和接收,连接才被完全释放。
流控制和缓冲
流控制是传输层的一项重要功能,目的是避免发送方发送数据过快导致接收方的缓存溢出。流控制通过滑动窗口机制(Sliding Window)来实现。每个连接会维护一个接收窗口,发送方根据接收方的窗口大小来调节发送速率。
缓冲区则用于存储待处理或正在传输的数据,它在流控制中起到了暂存和调节速率的作用。传输层协议(如TCP)会根据窗口大小动态调整发送数据的量。
6.2 UDP(用户数据报协议)
UDP(User Datagram Protocol)是一种无连接、轻量级的传输层协议。与TCP不同,UDP不进行连接的建立和释放,也不提供可靠的数据传输保障。其特点包括:
- 无连接:UDP不需要进行三次握手和四次挥手,它直接将数据包发送给目的主机,无需保证数据包到达。
- 不保证可靠性:UDP不对数据的顺序、完整性或重传进行处理。丢失或乱序的数据包不会被自动重发。
- 简单的头部结构:UDP头部较TCP头部简单,开销小,适合需要快速传输的场景(如实时视频、语音等)。
UDP的结构:
- 源端口:发送方端口号。
- 目标端口:接收方端口号。
- 长度:UDP头部和数据部分的总长度。
- 校验和:用于数据校验。
UDP适合那些不需要高可靠性的应用,如DNS查询、视频流、在线游戏等。
6.3 TCP(传输控制协议)
TCP(Transmission Control Protocol)是一种面向连接的可靠传输协议。它通过建立连接、数据确认、重传机制等手段,保证数据的可靠传输。TCP协议提供以下特性:
TCP服务模型
TCP提供的是一个面向连接、可靠、全双工的服务模型。它保证数据的可靠交付,并支持按顺序传输。TCP的主要特性包括:
- 可靠性:通过确认、重传、校验和等机制,确保数据不丢失、不重复、不乱序。
- 顺序性:数据按发送的顺序到达接收端。
- 流控制:通过滑动窗口机制调节数据传输速率。
- 拥塞控制:通过算法控制网络中的数据流量,避免网络过载。
TCP协议
TCP协议的主要任务是保证可靠的端到端数据传输,它包括以下机制:
- 序列号:TCP每个字节都有一个序列号,用于标识数据的顺序。
- 确认应答:接收方发送确认(ACK)包,确认已收到数据。
- 重传机制:如果发送方在指定时间内没有收到确认包,它会重新发送数据。
- 流控制:通过滑动窗口机制调整发送方的发送速率,避免接收方处理不过来。
TCP连接建立(三次握手)
如前所述,TCP的连接建立过程是通过三次握手完成的:
- 客户端发送SYN包,请求建立连接。
- 服务器响应SYN-ACK包,表示同意建立连接。
- 客户端发送ACK包,表示连接建立完成。
TCP连接释放(四次挥手)
TCP连接的释放通过四次挥手来完成:
- 主动关闭方发送一个FIN包,表示准备关闭连接。
- 接收方回复一个ACK包,确认关闭请求。
- 接收方发送一个FIN包,表示也准备关闭连接。
- 主动关闭方发送一个ACK包,确认连接已关闭。
TCP滑动窗口协议
TCP通过滑动窗口协议实现流控制。滑动窗口的大小由接收方的缓冲区大小决定,发送方根据接收方的窗口大小来控制发送速率,避免过多的数据进入接收方,造成溢出。
- 窗口大小:指接收方可以接收的最大字节数。发送方通过此窗口控制发送速率。
- 确认机制:每个数据包都需要收到确认应答。确认包中包含下一个期望接收的字节序列号。
Nagle算法
Nagle算法用于减少小包的数量,提高网络效率。它通过将多个小数据包合并为一个较大的数据包来减少网络负担。
- 原理:当发送方有小的数据要发送时,Nagle算法会等待,直到收到前一个数据包的确认,或者发送一定数量的数据。
- 应用场景:该算法在延迟敏感的网络中可能导致不必要的延迟,因此某些应用(如实时应用)可以禁用Nagle算法。
愚笨窗口综合症(TCP Window Scale Problem)
愚笨窗口综合症是指当TCP窗口大小较小时,导致网络带宽的利用率低。具体表现为尽管网络有足够的带宽,TCP却由于窗口大小限制,不能有效利用这些带宽。为解决这一问题,可以使用窗口扩大因子(Window Scaling),将窗口大小扩展至64KB以上。
TCP拥塞控制
TCP拥塞控制旨在避免网络过载,通过动态调整发送速率来应对网络的拥塞。TCP拥塞控制包含以下几种算法:
- 慢启动(Slow Start):连接开始时,TCP的拥塞窗口从1个MSS(最大报文段长度)开始,每收到一个确认就加倍窗口,直到遇到丢包。
- 拥塞避免(Congestion Avoidance):当窗口增大到一定程度后,拥塞窗口的增长速度减慢,避免快速加大负载。
- 快速重传(Fast Retransmit)和快速恢复(Fast Recovery):当检测到丢包时,TCP会触发快速重传机制,立即重新发送丢失的数据包,而不需要等待超时。此外,TCP还会使用快速恢复算法,在检测到丢包后,通过减少窗口大小来控制拥塞,但不像慢启动那样从头开始。
第七章 应用层
应用层是OSI模型的第七层,也是最接近用户的一层。它主要负责为用户提供各种网络服务。应用层协议包括了许多不同类型的服务,如网页浏览(HTTP)、文件传输(FTP)、电子邮件传送(SMTP)、域名解析(DNS)等。本章将重点介绍DNS及应用层的一些常见协议。
7.1 DNS(域名系统)
DNS(Domain Name System,域名系统)是互联网中的一种分布式的命名系统,负责将用户友好的域名(如www.example.com
)转换为机器可理解的IP地址(如192.168.1.1
)。由于人类难以记住IP地址而容易记住域名,DNS使得互联网上的资源能够通过域名访问,而无需了解其背后的IP地址。
域名系统的工作原理
DNS的主要作用是将域名解析为IP地址。用户在浏览器中输入一个URL(例如 www.google.com
),浏览器就会向DNS服务器发起查询请求,获取对应的IP地址以便与目标服务器建立连接。其工作过程如下:
- 用户输入域名:当用户在浏览器中输入域名时(如
www.example.com
),浏览器会发起DNS查询请求。 - DNS查询:如果本地缓存中没有该域名对应的IP地址,DNS请求将被发送到配置的DNS服务器(通常是ISP提供的DNS服务器)。
- 递归查询与迭代查询:
- 递归查询:如果DNS服务器不知道某个域名的IP地址,它会向其他DNS服务器发起查询请求,直到找到域名的IP地址并返回给用户。
- 迭代查询:DNS服务器逐步查询更高层次的服务器(从根DNS服务器到权威DNS服务器),直到找到目标IP。
- 域名解析结果:最终,DNS服务器将解析出的IP地址返回给用户,用户的浏览器将根据该IP地址与目标服务器建立连接。
DNS的层次结构
DNS采用分层的树形结构,根节点是“根域名”,每一层代表一个域(如顶级域名、二级域名等)。从上到下,域名逐级划分,形成完整的域名,如www.example.com
。DNS的层次结构可以分为以下几部分:
- 根域名(Root Domain):位于DNS树的顶端,用
.
表示。根域名负责管理顶级域(TLD)。 - 顶级域名(TLD):包括国家域名(如
.cn
、.us
)和通用顶级域名(如.com
、.org
、.edu
等)。 - 二级域名:例如
example.com
中的example
,它是顶级域名下的一个域名。 - 子域名:例如
www.example.com
中的www
,它是二级域名下的一个子域。
DNS服务器
DNS系统由多个类型的服务器组成,负责不同的解析工作。常见的DNS服务器包括:
- 递归解析服务器(Recursive Resolver):负责接受客户端发出的DNS查询请求,查找最终的IP地址,并将结果返回给客户端。
- 权威域名服务器(Authoritative Name Server):负责存储域名到IP地址的映射,并提供最终的解析结果。每个域名必须有一个权威DNS服务器,处理该域名的查询。
- 根DNS服务器(Root Name Server):管理整个域名系统的根节点,它们会指向各个顶级域名(TLD)服务器。
7.2 其他常见协议
应用层协议是计算机网络中用于实现应用服务的协议,以下是几种常见的应用层协议:
HTTP(超文本传输协议)
HTTP(HyperText Transfer Protocol,超文本传输协议)是Web服务中最常用的协议,它定义了Web浏览器和Web服务器之间通信的规则。HTTP协议基于请求/响应模型,通过无状态、无连接的方式传输数据。
- 请求/响应模型:客户端向服务器发送HTTP请求,服务器响应客户端的请求。请求和响应通常包括头部信息(Headers)和主体内容(Body)。
- 无状态:每个HTTP请求是独立的,服务器不会记住先前的请求状态。
- 无连接:每个HTTP请求/响应都是独立的,完成一次通信后连接会关闭,不会持续保持连接。
HTTP的常用方法:
- GET:从服务器获取数据。
- POST:向服务器提交数据。
- PUT:更新服务器上的资源。
- DELETE:删除服务器上的资源。
HTTP的版本:
- HTTP/1.0:最早的版本,性能较差。
- HTTP/1.1:对1.0进行了改进,支持持久连接、管道化请求等。
- HTTP/2:进一步提升性能,支持多路复用、头部压缩等特性。
- HTTP/3:基于QUIC协议,使用UDP来提升连接速度和性能。
FTP(文件传输协议)
FTP(File Transfer Protocol,文件传输协议)是用于在计算机之间传输文件的标准协议。FTP基于客户端-服务器模型,通常用于上传和下载文件。
-
工作方式:
- 控制连接:FTP使用一个控制连接(通常在21端口)来传输命令和响应。
- 数据连接:当客户端请求文件传输时,会通过另一个数据连接进行传输。数据连接的端口可以是动态分配的,取决于服务器的配置。
-
FTP命令:
- USER:指定用户名。
- PASS:指定密码。
- LIST:列出目录内容。
- RETR:下载文件。
- STOR:上传文件。
-
模式:
- 主动模式(Active Mode):客户端与服务器建立数据连接,客户端监听数据端口。
- 被动模式(Passive Mode):服务器开启数据连接,客户端连接到服务器的指定端口。
SMTP(简单邮件传输协议)
SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)用于发送电子邮件。SMTP协议是基于文本的协议,它定义了邮件从发送方到接收方的传输方式。SMTP只负责邮件的发送,而不负责接收,接收邮件通常使用POP3或IMAP协议。
-
工作过程:
- 客户端通过SMTP服务器将邮件发送到接收方的SMTP服务器。
- 通过SMTP协议,邮件可以跨越多个邮件服务器进行传递,直到邮件到达目的地。
-
常用SMTP命令:
- HELO:与邮件服务器建立连接。
- MAIL FROM:指定发件人地址。
- RCPT TO:指定收件人地址。
- DATA:发送邮件内容。
- QUIT:关闭SMTP会话。
POP3(邮局协议3)
POP3(Post Office Protocol 3,邮局协议3)是用于从邮件服务器下载电子邮件的协议。它定义了邮件客户端如何从邮件服务器接收邮件。
-
基本特点:
- 下载邮件:POP3协议将邮件从服务器下载到客户端,邮件会被从服务器删除,除非使用“保留邮件”功能。
- 一次性通信:POP3协议的操作比较简单,邮件一旦下载完毕,客户端与服务器的连接就会关闭。
-
常用命令:
- USER:指定用户名。
- PASS:指定密码。
- STAT:查看邮件数量和大小。
- RETR:下载指定邮件。
- DELE:删除邮件。