计算机网络复习笔记
《计算机网络教程(微课版)》
谢钧 谢希仁编著
1.2 计算机网络的定义与分类
-
局域网(Local Area Network,LAN)用于连接有限范围内(如一个实验室、一幢楼或一个校园)的各种计算机、终端与外部设备。
-
城域网(Metropolitan Area Network,MAN)的覆盖范围可跨越几个街区甚至整个城市,其作用距离为5~50km。
-
广域网(Wide Area Network,WAN)的覆盖范围通常为几十千米到几千千米,可以覆盖一个国家、地区,甚至横跨几个洲,因而广域网有时也称为远程网(Long Haul Network)。
1.3 互联网概述
-
网络(Network)由若干结点(Node)和连接这些结点的链路(Link)组成。
-
以小写字母i开始的internet(互连网络)是一个通用名词,它泛指由多个计算机网络互连而成的网络。
-
边缘部分由所有连接在互联网上的主机组成。
-
核心部分由大量网络和连接这些网络的路由器组成。
1.5 计算机网络的主要性能指标
-
吞吐量(Throughput)也称为吞吐率,表示在单位时间内通过某个网络(或信道、接口)的数据量。
-
发送时延(Transmission Delay)是主机或路由器将整个分组的所有比特发送到通信线路上所需要的时间
-
传播时延(Propagation Delay)是电磁波在信道中传播一定距离所花费的时间。
-
发送时延发生在机器内部的发送器中(一般就是发生在3.3.2小节介绍的网络适配器中),而传播时延发生在机器外部的信道传输媒体上。
-
对于高速网络链路,我们提高的仅仅是数据的发送速率而不是比特在链路上的传播速率。
-
包率即分组丢失率,是指在一定的时间范围内,分组在传输过程中丢失的分组数量与总的分组数量的比率。
-
利用率有信道利用率和网络利用率两种。信道利用率指某信道有百分之几的时间是被利用的(有数据通过)。完全空闲的信道的利用率是零。网络利用率则是全网络的信道利用率的加权平均值。
1.6 计算机网络体系结构
-
(1)语法,即数据与控制信息的结构或格式。
-
(2)语义,即各个控制信息的具体含义,包括需要发出何种控制信息、完成何种动作及做出何种响应。
-
(3)同步(或时序),即事件实现的顺序和时间的详细说明,包括数据应该在何时发送出去,以及数据应该以什么速率发送。
-
在计算机网络的术语中,我们将计算机网络的层次结构模型与各层协议的集合称为计算机网络的体系结构(Architecture)。
-
应用层的任务是通过应用进程间的交互来完成特定的网络应用。应用层协议定义的是应用进程间通信和交互的规则。这里的进程指正在运行的程序。
-
运输层(Transport Layer,或翻译为传输层)的任务就是向两台主机中进程之间的通信提供通用的数据传输服务。
-
我们往往使用实体(Entity)这一较为抽象的名词来表示任何可发送或接收信息的硬件或软件进程。
-
协议是控制两个对等实体(或多个实体)进行通信的规则的集合。
-
其次,协议是“水平的”,即协议是控制对等实体之间通信的规则;但服务是“垂直的”,即服务是由下层向上层通过层间接口提供的。
1.7 两个重要的新兴网络技术
- 云计算中的“云”指的是可以自我维护和管理的虚拟计算资源集合,通常是一些大型服务器集群,包括计算服务器、存储服务器和带宽资源等。
本章的重要概念
- ▪ 按作用范围的不同,计算机网络分为广域网(WAN)、城域网(MAN)、局域网(LAN)和个人区域网(PAN)。 ▪ 计算机网络(可简称为网络)把许多计算机连接在一起,而互连网络则把许多网络连接在一起。互联网是世界上最大的互连网络。 ▪ 以小写字母i开始的internet(互连网络)是通用名词,它泛指由多个计算机网络互连而成的网络。
2.1 物理层的基本概念
- 物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。
2.2 数据通信的基础知识
-
码元是承载信息的基本信号单位,一个码元能够承载的信息量多少,是由码元信号所能表示的数据有效值状态个数决定的。单位时间内通过信道传输的码元数称为码元传输速率。
-
这样,在接收端收到的信号波形就失去了码元之间的清晰界限。这种现象叫作码间串扰。
-
 ①“理想低通信道”就是信号的所有低频分量,只要其频率不超过某个上限值,都能够不失真地通过此信道。而频率超过该上限值的所有高频分量都不能通过该信道。 这里的W是信道带宽,单位为赫兹(Hz);波特(Baud)是码元传输速率的单位,1波特为每秒传送1个码元。
-
波特是码元传输的速率单位,它说明每秒传多少个码元。码元传输速率也称为调制速率、波形速率或符号速率。 比特是信息量的单位,与码元传输速率的波特是两个完全不同的概念。
-
如用公式表示,则信道的极限信息传输速率C可表达为:  式(2-2)中,W为信道的带宽(以Hz为单位);S为信道内所传信号的平均功率;N为信道内部的高斯噪声功率。 式(2-2)就是著名的香农公式。香农公式表明,信道的带宽或信道中的信噪比越大,信息的极限传输速率就越高。
-
并行传输,是指一次发送n个比特而不是一个比特,为此,发送端和接收端之间需要有n条传输线路。
-
串行传输,是指数据是一个比特一个比特依次发送的,因此发送端和接收端之间只需要一条传输线路。
-
因此,计算机将数据发送到传输线路上时需要进行并/串转换,而计算机从传输线路上接收数据时要进行串/并转换。
-
同步就是指收发双方在时间基准上保持一致的过程。
-
外同步方法是在发送端和接收端之间提供一条单独的时钟线,接收端根据发送端发送的时钟同步信号来校正时间基准,或收发双方接收同一时钟源的时钟信号来实现收发双方的同步。
-
内同步方法是发送端将时钟同步信号编码到发送数据中一起传输,如曼彻斯特编码与差分曼彻斯特编码都自含时钟编码,具有自同步能力。
-
(1)单向通信,又称为单工通信,即只能有一个方向的通信而没有反方向的交互。
-
(2)双向交替通信,又称为半双工通信,即通信的双方都可以发送信息,但不能双方同时发送(当然也就不能同时接收)。
-
(3)双向同时通信,又称为全双工通信,即通信的双方可以同时发送和接收信息。
2.3 物理层下面的传输媒体
-
传输媒体也称为传输介质或传输媒介,它就是数据传输系统中在发送器和接收器之间的物理通路。
-
LF,MF和HF的中文名字分别是低频、中频和高频。更高的频段中的V、U、S和E分别对应于Very、Ultra、Super和Extremely,相应的频段的中文名字分别是甚高频、特高频、超高频和极高频,最高的一个频段中的T是Tremendously的缩写,目前尚无标准译名。
-
微波在空间主要是直线传播。远距离微波通信主要有两种方式,即地面微波接力通信和卫星通信。
2.4 信道复用技术
-
当网络中传输媒体的传输容量大于多条单一信道的总通信量时,可利用复用技术在一条物理线路上建立多条通信信道来充分利用传输媒体的带宽。
-
频分复用(Frequency Division Multiplexing,FDM)就是将传输线路的频带资源划分成多个子频带,形成多个子信道。
-
时分复用(Time Division Multiplexing,TDM)技术将传输线路的带宽资源按时间轮流分配给不同的用户,每个用户只在分配的时间里使用线路传输数据。
-
与频分复用所有用户在同样的时间占用不同的频带资源不同,时分复用将时间划分为一段段等长的时分复用帧(TDM帧),每一个时分复用的用户在每一个TDM帧中占用固定序号的时隙。
-
统计时分复用使用STDM帧来传送复用的数据。但每一个STDM帧中的时隙数小于连接在集中器上的用户数。各用户有了数据就随时发往集中器的输入缓存,然后集中器按顺序依次扫描输入缓存,把缓存中的输入数据放入STDM帧,对没有数据的缓存就跳过去。当一个帧的数据放满了,就把数据发送出去。
-
波分复用(Wavelength Division Multiplexing,WDM)就是光的频分复用。
-
由于各用户使用经过特殊挑选的不同码型,因此各用户之间不会造成干扰。
-
CDMA系统的一个重要特点就是这种体制给每一个站分配的码片序列不仅必须各不相同,并且还必须互相正交。
2.5 数字传输系统
- 将模拟电话信号转换为数字信号目前采用的都是脉冲编码调制(Pulse Code Modulation,PCM)技术,它可将一路模拟电话信号转换为64 kbit/s的PCM数字脉冲信号。
2.6 互联网接入技术
-
目前的接入技术主要有电话网拨号接入、数字用户线接入、光纤同轴混合网接入、光纤接入、以太网接入和无线接入。
-
这种方式通过拨号调制解调器在用户计算机与电话网另一端的ISP接入路由器之间建立一条语音信道
-
[插图]
-
数字用户线(Digital Subscriber Line,DSL)就是电话运营商提供的一种住宅宽带接入业务,是目前中国用户的主要接入方式。
-
基于ADSL的接入网由以下三大部分组成:数字用户线接入复用器(DSL Access Multiplexer,DSLAM)、用户线和用户家中的一些设施
3.1 使用点对点信道的数据链路层
-
数据进入路由器后先从物理层上到网络层,在转发表中找到下一跳的地址后,再下到物理层转发出去。
-
链路(Link)就是从一个结点到相邻结点的一段物理线路,中间没有任何其他的交换结点。
-
当需要在一条线路上传送数据时,除了必须有一条物理线路外,还必须有一些通信协议来控制这些数据的传输(这将在后面几节讨论)。把实现这些协议的硬件和软件加到链路上,就构成了数据链路。
-
首部和尾部的作用之一就是进行帧定界,同时它们包含必要的控制信息。
-
一种常用的实现帧定界的方法是在每个帧的开始处和结束处添加特殊的帧定界标志(帧定界符),标记一个帧的开始或结束。
-
该方法的基本原理如图3-7所示,发送端的数据链路层在数据中出现的标记字符(与帧定界符相同的字符)前面插入一个转义字符(如特殊的控制字符“ESC”),而接收端的数据链路层不会将转义字符后面出现的标记字符解释为帧定界符,并且会在将数据送往网络层之前删除这个插入的转义字符。
-
PPP采用的零比特填充法来说明比特填充是如何实现透明传输的。在发送端,先扫描整个信息字段(通常是用硬件实现,但也可用软件实现,只是会慢些)。只要发现有5个连续1,则立即填入一个0。
-
比特在传输过程中可能会产生差错:1可能会变成0,而0也可能变成1。这就叫作比特差错。
-
在一段时间内,传输错误的比特数与所传输比特总数的比率称为误码率(Bit Error Rate,BER)。
-
为了使接收方能检测出接收的数据中是否出现了差错,发送方需要采用某种差错检测算法f,用发送的数据D计算出差错检测码EDC=f(D),并将EDC随数据一起发送给接收方。
-
考虑d比特的数据D,发送方要选择一个合适的r比特冗余码R(即检错码),并将它附加到D上,使得得到的d+r比特模式用模2算术恰好能被G整除。
-
在模2算术中,加法不进位,减法不借位,等价于按位异或(XOR),乘以2和除以2等价于左/右移位。
-
现假定待传送的数据D=101001(d=6),G=1101(即r=3)。经模2除法运算后的结果:商Q=110101(这个商并没有什么用处),而余数R=001。这个余数R就作为冗余码拼接在数据D的后面发送出去。因此加上冗余码后发送的帧是101001001,共有d+r比特。
-
总之,在接收端对收到的每一帧进行CRC后: (1)若得出的余数R=0,则判定这个帧没有差错,接受; (2)若余数R≠0,则判定这个帧有差错(但无法确定究竟是哪一位或哪几位出现了差错),丢弃。
-
可靠传输就是要做到:发送端发送什么,对应的接收端就收到什么。
-
[插图] 停止等待协议 在计算机网络中实现可靠传输的基本方法就是,如果发现错误就重传。因此,首先要解决的问题就是如何知道分组在传输过程中出现了差错。对于分组中的比特差错,接收方使用我们上节讨论的差错检测技术识别接收的分组中是否存在比特差错。为了让发送方知道是否出现了差错,接收方必须将是否正确接收分组的信息反馈给发送方。如图3-12(a)所示(DATA表示数据分组),当正确接收到一个分组时,接收方向发送方发送一个确认分组ACK(Acknowledgment),当接收到的分组出现比特差错时,接收方丢弃该分组并发送一个否认分组NAK(Negative Acknowledgment)。发送方收到ACK则可以发送下一个分组,而收到NAK则要重传原来的分组,直到收到ACK为止。由于发送方每发送完一个分组必须停下来等待确认,因此该协议被称为停止等待(Stop-and Wait,SW)协议。
-
当正确接收到一个分组时,接收方向发送方发送一个确认分组ACK(Acknowledgment),当接收到的分组出现比特差错时,接收方丢弃该分组并发送一个否认分组NAK(Negative Acknowledgment)。发送方收到ACK则可以发送下一个分组,而收到NAK则要重传原来的分组,直到收到ACK为止。由于发送方每发送完一个分组必须停下来等待确认,因此该协议被称为停止等待(Stop-and Wait,SW)协议。
-
发送窗口是允许发送方已发送但还没有收到确认的分组序号的范围,窗口大小就是发送方已发送但还没有收到确认的最大分组数。
-
当收到序号错误的分组时,接收方除了将它们丢弃外,还要对最近按序接收的分组进行确认。
-
因此,GBN协议规定:一旦发送方超时,则立即重传发送窗口内所有已发送的分组。这就是GBN协议名称的由来,即一旦出错需要退回去重传已发送过的N个分组。
-
接收方采用累积确认的方式。接收方对分组n的确认,表明接收方已正确接收到分组n及以前的所有分组。
-
为进一步提高性能,可设法只选择出现差错的分组进行重传,但这时接收窗口大小不再为1,以便先收下失序到达但仍然处在接收窗口中的那些分组,等到所缺分组收齐后再一并送交上层。这就是选择重传(Selective Repeat,SR)协议。
-
注意,为了使发送方仅重传出现差错的分组,接收方不能再采用累积确认,而需要对每个正确接收到的分组进行逐一确认
3.2 点对点协议
-
3.2.2 PPP的组成PPP有3个组成部分。(1)一个将IP数据报封装到串行链路的方法。PPP既支持面向字符的异步链路(无奇偶检验的8比特数据),也支持面向比特的同步链路。IP数据报在PPP帧中作为数据部分被传输。这个数据部分的长度受MTU的限制。(2)一个用来建立、配置和测试数据链路连接的链路控制协议(Link Control Protocol,LCP)。通信的双方可协商一些选项。RFC 1661中定义了11种类型的LCP分组。(3)一套网络控制协议(Network Control Protocol,NCP)[4],其中的每一个协议支持不同的网络层协议,如IP、OSI的网络层协议、DECnet,以及AppleTalk等。
-
当PPP用在面向字符的异步传输链路时,使用字节填充法实现透明传输,其转义符定义为0x7D。RFC 1662规定了如下所述的填充方法。(1)把信息字段中出现的每一个0x7E字节转变为2字节序列(0x7D,0x5E)。(2)若信息字段中出现一个0x7D字节(即出现了和转义字符一样的比特组合),则把0x7D转变成为2字节序列(0x7D,0x5D)。(3)若信息字段中出现ASCII码的控制字符(即数值小于0x20的字符),则在该字符前面添加一个0x7D字节,同时对该字符的编码加以改变。例如,出现0x03(在控制字符中是“传输结束”,即ETX)就要把它转变为2字节序列(0x7D,0x23)。
-
PPP用在SONET/SDH等面向比特的同步传输链路时,采用3.1.3小节介绍的零比特填充方法来实现透明传输。
3.3 使用广播信道的数据链路层
-
因此共享信道要着重考虑的一个问题就是如何协调多个发送站点和接收站点对一个共享传输媒体的占用,即媒体接入控制(Medium Access Control)或多址接入(Multiple Access)[6]问题。
-
媒体接入控制或多址接入主要有以下两大类方法。(1)静态划分信道。典型技术主要有频分多址、时分多址和码分多址。这些技术利用2.4节介绍过的频分复用、时分复用和码分复用方法将共享信道划分为N个独立的子信道,每个站点分配一个专用的信道用于发送数据,并可在所有的信道上接收数据,从而保证站点无冲突地发送数据。显然这种固定划分信道的方法非常不灵活,对于突发性数据,传输信道利用率会很低。该方法通常在无线网络的物理层中使用,而不是在数据链路层中使用。(2)动态接入控制。其特点是各站点动态占用信道发送数据,而不是使用预先固定分配好的信道。动态接入控制又分为以下两类。
-
局域网最主要的特点是,网络为一个单位所拥有,且地理范围和站点数目均有限。
-
适配器和局域网之间的通信是通过电缆或双绞线以串行传输方式进行的,而适配器和计算机之间的通信则是通过计算机主板上的I/O总线以并行传输方式进行的。因此,适配器的一个重要功能就是进行数据串行传输和并行传输的转换。
-
当适配器收到正确的帧时,它就使用中断来通知该计算机并将帧交付协议栈中的网络层。
-
现在IEEE的注册管理机构(Registration Authority,RA)是局域网全球地址的法定管理机构,它负责分配地址字段的6个字节中的前三个字节(即高位24位
-
组织唯一标识符(Organizationally Unique Identifier,OUI),通常也叫作公司标识符。
-
地址字段中的后三个字节(即低位24位)则由厂家自行指派,称为扩展标识符(Extended Identifier),只要保证生产出的适配器没有重复地址即可。
-
因此,MAC地址也叫作硬件地址或物理地址,是一种平面结构的地址(即没有层次结构)[9],不论适配器移动到哪里都不会改变。
-
适配器有过滤功能。适配器从网络上每收到一个MAC帧就先用硬件检查MAC帧中的目的地址。如果是发往本站的帧则收下,然后进行其他处理;否则就将此帧丢弃,不再进行其他处理
-
(1)单播(Unicast)帧(一对一),即收到的帧的MAC地址与本站的MAC地址相同;(2)广播(Broadcast)帧(一对全体),即发送给本局域网上所有站点的帧(全1地址);(3)多播(Multicast)帧(一对多),即发送给本局域网上一部分站点的帧。
3.4 共享式以太网
-
“多址接入”说明这是一种多址接入协议,许多站点以多址接入的方式连接在一根总线上。协议的实质是“载波监听”和“冲突检测”。
-
“载波监听”就是“发送前先监听”,即每一个站点在发送数据之前先要检测一下总线上是否有其他站点在发送数据,如果有,则暂时不发送数据,等待信道变为空闲时再发送。
-
冲突检测”就是“边发送边监听”,即适配器边发送数据边检测信道上的信号电压的变化情况,以判断自己在发送数据时其他站是否也在发送数据。
-
电磁波在1km电缆中的传播时延约为5 µs(这个数字应当记住
-
最先发送数据帧的站点A,在发送数据帧后至多经过时间2τ就可知道所发送的数据帧是否遭遇了冲突。这就是δ → 0的情况。因此以太网的端到端往返时间2τ称为争用期(Contention Period),它是一个很重要的参数。争用期又称为冲突窗口(Collision Window),这是因为一个站点在发送完数据后,只有通过争用期的“考验”,即经过争用期这段时间还没有检测到冲突,才能肯定这次发送不会发生冲突。
-
发生冲突的站点不能在信道变为空闲后就立即再发送数据,否则的话,会导致再次冲突。以太网使用截断二进制指数退避(Truncated Binary Exponential Backoff)算法(简称退避算法)来解决冲突后何时进行重传的问题。这种算法让发生冲突的站点在停止发送数据后,推迟(这叫作退避)一个随机的时间再监听信道并进行重传。如果重传又发生了冲突,则将随机选择的退避时间延长一倍。
-
为了保证所有站点在发送完一个帧之前能够检测出是否发生了冲突,帧的发送时延不能小于2倍的网络最大传播时延,即一个争用期,以太网规定最短有效帧长为64字节
-
以太网还采取一种叫作强化冲突的措施。发送数据的站点一旦发现发生了冲突,除了立即停止发送数据外,还会继续发送32比特或48比特的人为干扰信号(Jamming Signal),以便有足够多的冲突信号来保证所有站点都监测到冲突。对于10 Mbit/s以太网,发送32(或48)比特只需要3.2(或4.8)µs。
-
以太网还规定了帧间最小间隔为96比特时间(9.6 µs),即所有站点在发送帧之前要等信道空闲96比特时间。
-
以太网中定义了参数a,它是以太网单程端到端时延τ与帧的发送时间T0之比: 
-
使用集线器的以太网在逻辑上仍是一个总线网,各站点共享逻辑上的总线,使用的还是CSMA/CD协议(更具体些,是各站点中的适配器执行CSMA/CD协议)。
3.5 网桥和以太网交换机
-
光纤调制解调器的作用就是进行电信号和光信号的转换。
-
网桥依靠转发表来转发帧。转发表也叫作MAC地址表,记录了每个接口所能到达(连接或间接连接)的各站点的MAC地址。
-
其基本思想就是,如果网桥现在能够从接口x收到从站点A发来的帧,那么以后就可以从接口x将一个目的地址为A的帧转发到站点A。
-
交换机实质上就是一个多接口的网桥,每个交换机维护一个MAC地址表并在数据链路层根据帧中的目的MAC地址转发帧,和工作在物理层的转发器和集线器有很大的差别。
-
直通交换不必把整个帧先缓存后再进行处理,而是在接收帧的同时就立即按帧的目的MAC地址决定该帧的转发接口
-
因此,我们说一个交换机采用的是直通交换方式,并不表示它不会进行存储转发,而说一个交换机采用的是存储转发交换方式,是指该交换机仅采用存储转发方式进行交换。
4.2 网际协议
-
1)物理层使用的中间设备叫作转发器(Repeater)。(2)数据链路层使用的中间设备叫作网桥或桥接器(Bridge)。(3)网络层使用的中间设备叫作路由器(Router)。(4)在网络层以上使用的中间设备叫作网关
-
所谓虚拟互连网络也就是逻辑互连网络,它的意思就是互连起来的各种物理网络的异构性是客观存在的,但是我们利用IP可以使这些性能各异的网络在网络层上看起来好像是一个统一的网络。
-
IP地址就是给互联网上的每一个主机(或路由器)的每一个接口分配一个在全世界范围内唯一的32位的标识符。
-
IP地址实际上标志的是一个主机(或路由器)和一条链路的接口
-
CIDR把32位的IP地址划分为两个部分。前面的部分是不定长的“网络前缀”(Network Prefix)(或简称为“前缀”),代替分类编址中的“网络号”来指明网络,后面的部分则用来指明主机。
-
由路由器互连起来的每个网络有唯一的网络前缀(即网络号),并用主机号为全0的IP地址来表示该网络的IP地址。
-
在每个主机的网络连接属性中不仅要配置主机的IP地址,还要配置所在网络的子网掩码。
-
除此之外,网络前缀和主机号全为0或全为1的地址一般也不能指派给接口,在分配地址时要特别注意这一点。通常全0表示“这个(this)”,例如,网络前缀为全0的IP地址通常表示“本网络”。而全1往往表示“所有的(all)”,例如,全1的主机号字段表示该网络上的所有主机。
-
网络前缀为127(即01111111)的地址保留作为环回测试(Loopback Test)地址,用于本主机进程之间的通信。
-
主机号为0或1的IP地址可以指派给点对点链路两端的路由器接口。
-
连接在同一个网络上的主机或路由器的IP地址的网络前缀必须与该网络的网络前缀一样。
-
:一是使用“/31”,即仅用于点对点链路的31位网络前缀;二是不分配IP地址,将这样的特殊网络作为无编号网络(Unnumbered Network)或匿名网络(Anonymous Network)。
-
从层次的角度看,物理地址是数据链路层或物理网络使用的地址,而IP地址是网络层及以上各层使用的地址,是一种逻辑地址(称IP地址是逻辑地址是因为IP地址是用软件实现的)。
-
在支持硬件广播的局域网中可以使用地址解析协议(Address Resolution Protocol,ARP)来解决IP地址与物理地址的动态映射问题。
-
使用ARP的每一个主机都设有一个ARP高速缓存(ARP Cache),里面有本局域网上的各主机和路由器的IP地址到物理地址的映射表,这些都是该主机目前知道的一些地址
-
第一个项目就是到本网络主机的路由,其目的网络就是本网络N1,因而不需要路由器转发,而是直接交付。第二个项目是到网络N2的路由,对应的下一跳路由器是R2。第三个项目就是默认路由(后面我们将会学到如何表示一条默认路由)
-
当路由器收到一个待转发的数据报时,在从路由表得出下一跳路由器的IP地址后,不是把这个地址填入IP数据报,而是送交下层的网络接口软件。网络接口软件负责把下一跳路由器的IP地址转换成物理地址(使用ARP),并将此物理地址放在链路层的MAC帧的首部,然后根据这个物理地址找到下一跳路由器
4.4 互联网的路由选择协议
-
RIP的“距离”也称为“跳数”(Hop Count),因为每经过一个路由器,跳数就加1。
-
RIP允许一条路径最多包含15个路由器。因此“距离”等于16即相当于不可达。可见RIP只适用于小型互联网。
-
每个路由器仅向相邻路由器通告路由信息,通告的是每个路由器自己的路由表信息,并且要周期性(或当路由表发生变化时)通告。
-
洪泛法(Flooding)就是路由器通过所有输出端口向所有相邻的路由器发送信息,而每一个相邻路由器又再将此信息发往其所有的相邻路由器(但不再发送给刚刚发来信息的那个路由器)
-
主干区域的作用是连通非主干区域,所有非主干区域之间的通信必须经过主干区域。
-
OSPF让每一个路由器用数据库描述分组和相邻路由器交换本数据库中已有的链路状态摘要信息。
-
BGP发言人负责在AS间交换路由信息。BGP发言人往往配置在AS边界路由器上。
-
我们将两个AS之间的BGP会话称为外部BGP会话(external BGP Session,eBGP会话),而将同一AS内部路由器之间的BGP会话称为内部BGP会话(internal BGP Session,iBGP会话)。
-
BGP所交换的网络可达性信息主要是到达某个网络(用网络前缀表示)所要经过的一系列AS。
-
AS2的BGP发言人通知主干网的BGP发言人:“要到达网络N1、N2、N3和N4可经过AS2”。
4.5 路由器的工作原理
-
整个路由器可划分为两大部分:路由选择部分和分组转发部分。
-
路由选择处理机的任务是根据所选定的路由选择协议构造出路由表,同时经常或定期和相邻路由器交换路由信息,不断地更新和维护路由表。
-
分组转发部分是本节所要讨论的主题,它属于数据平面,由三部分组成:一组输入端口、交换结构和一组输出端口(注意,这里的端口就是硬件接口)。
-
“转发”就是路由器根据转发表把收到的IP数据报从路由器合适的端口发出去。
-
“转发”就是路由器根据转发表把收到的IP数据报从路由器合适的端口发出去。“转发”仅涉及一个路由器。
-
“路由选择”则涉及很多路由器,因为路由表是许多路由器协同工作的结果。这些路由器按照复杂的路由选择算法,得出整个网络的拓扑变化情况,因而能够动态地改变所选择的路由,并由此构造出整个路由表。
-
转发表的每一行必须包含要到达的目的网络与相应输出端口和某些MAC地址信息(如下一跳的以太网地址)的映射关系。
-
现在常用Mpps(Million Packet Per Second,百万分组每秒)为单位来说明一个路由器对收到的分组的处理速率。
-
但是,由于总线是共享的,因此在同一时间只能有一个分组在总线上传送。
-
既然交换机和路由器各有优缺点,那么什么时候应该用交换机、什么时候应该用路由器呢?包含几百台主机的小网络用交换机就足够了,因为它们不需要任何IP地址的配置就可以连接这些主机,并提供高性能的数据交换。包含几千台主机的更大的网络通常要使用路由器(除了交换机之外)将整个网络划分成多个局域网,并构成一个互连网络。这时,路由器提供更健壮的流量隔离和对广播风暴的控制,并在网络的主机之间使用更“智能”的路由选择。
4.6 虚拟专用网与网络地址转换
-
在互联网中的所有路由器对目的地址是专用地址的数据报一律不进行转发。RFC 1918指明的专用地址如下。(1)10.0.0.0到10.255.255.255(或记为10/8,又称为24位块)。(2)172.16.0.0到172.31.255.255(或记为172.16/12,又称为20位块)。(3)192.168.0.0到192.168.255.255(或记为192.168/16,又称为16位块)。
-
将一个IP数据报直接封装到另一个IP数据报中进行传输的这种隧道技术被称为IP-in-IP隧道技术。
-
运行NAT软件的路由器叫作NAT路由器,它至少有一个有效的外部全球地址IPG。这样,所有使用本地地址的主机在和外界通信时都要在NAT路由器上将其本地地址转换成IPG。
4.7 IP多播
-
能够运行多播协议的路由器称为多播路由器(Multicast Router)。多
-
在多播数据报的目的地址中写入的是多播组的标识符,然后需设法让加入这个多播组的主机的IP地址与多播组的标识符关联起来。
-
实多播组的标识符就是IP地址中的D类地址。D类地址的前四位是1110,因此D类地址范围是224.0.0.0到239.255.255.255。
-
IGMP是让连接在本地局域网上的多播路由器知道本局域网上是否有主机(严格讲,是主机上的某个进程)参加或退出了某个多播组。
-
多播路由选择协议的基本任务就是在多播路由器之间为每个多播组建立一棵连接源和所有拥有该组成员的路由器的多播转发树,
-
IGMP有三种类型的报文:成员查询报文、成员报告报文和离开组报文。
-
(1)基于源树(Source-Based Tree)多播路由选择。该方法为一个多播组的每个源构建一棵多播转发树,该转发树通常由每个成员路由器到源的最短路径构成。
-
(2)组共享树(Group-Shared Tree)多播路由选择。该方法在每个多播组中指定一个中心路由器,以此中心路由器为根建立一棵连接所有成员路由器的多播转发树。多播组的所有源共享这一棵多播转发树,源将多播分组通过单播IP隧道发送到中心路由器,再由中心路由器将多播分组在共享树上进行洪泛。
-
RPF就是一种有效控制洪泛的方法。RPF的基本思想简单且优雅。当一台路由器接收到具有给定源地址的广播分组时,仅当该分组到达的链路正好位于它自己到源的最短单播路径上时,它才向其所有出链路(除了它接收的那个)转发分组。否则,该路由器只是丢弃该分组而不向任何出链路转发分组。
4.8 移动IP
-
2025/05/19 发表想法
代理发现协议与外地网络中的外地代理建立联系,外地代理再与归属代理建立联系
原文:当一个永久地址为212.36.12.7的移动主机从它的归属网络漫游到一个外地网络时,移动主机会通过代理发现协议与该外地网络中的外地代理建立联系,并从外地代理获得一个属于该外地网络的转交地址133.6.9.1,同时向外地代理注册自己的永久地址和归属代理的地址。外地代理会将移动主机的永久地址登记在自己的注册表中,并向移动主机的归属代理注册该转交地址(也可由移动主机直接进行注册)。
-
外地代理从隧道中取出目标为移动主机的IP数据报时,会在自己的代理注册表中查找移动主机的永久地址所对应的MAC地址,并将该IP数据报直接封装到目的MAC地址为移动主机的MAC帧中进行发送。
4.9 下一代的网际协议IPv6
-
所有的扩展首部和数据部分合起来叫作分组的有效载荷(Payload)或净负荷。
-
IPv6的一个新的机制是支持资源预分配,并且允许路由器将每一个分组与一个给定的资源分配相联系。
-
IPv6提出流(Flow)的抽象概念。“流”就是从特定源点到特定终点(单播或多播)的一系列分组(如实时音频或视频传输),在这个“流”所经过的路径上的路由器都保证指明的服务质量。
-
IPv6把实现IPv6的主机和路由器均称为结点,并将IPv6单播地址分配给结点上面的接口。
-
前缀“FC00::/8”后面是4位标志字段和4位范围字段。标志位T为1,表示由IANA分配的永久多播地址,包括周知多播地址和请求结点多播地址。标志位T为0,表示由多播应用程序自己分配的非永久多播地址,即临时多播地址。
-
请求结点地址(Solicited-Node Address):每个IPv6结点会为接口的每个全球单播地址和本地链路单播地址自动创建并配置一个请求结点地址,该地址由前缀“FF02:0:0:0:0:1:FF00::/104”和对应单播地址的后24位组成,作用范围为本地链路
-
ICMPv6报文作为IPv6分组有效载荷进行传输,
4.10 多协议标签交换
-
MPLS首部包含一个标签字段(它起着与虚电路号类似的作用),3比特保留用于试验字段,8比特用于TTL字段,单个的S比特用于指示是否为第一个MPLS首部。
-
多个相邻的MPLS标签交换路由器互连构成了一个MPLS域。
-
所谓“转发等价类”就是路由器按照同样方式转发的IP数据报的集合。
-
这里“按照同样方式转发”表示从同样接口转发到同样的下一跳地址,并且具有同样的优先级。
4.11 软件定义网络
-
SDN的本质特点是数据平面和控制平面的分离以及网络的可编程性,从而实现了网络流量的灵活控制,方便用户管理和配置网络以及部署新协议,为网络及应用的创新提供了良好的平台。
-
数据平面功能决定到达路由器某个输入端口的分组如何转发到该路由器的某个输出端口,而控制平面功能控制分组从源主机到目的主机的转发路径,以及对网络组件的配置与管理,如路由选择、流量工程、访问控制、分组过滤等。
-
SDN的数据平面由提供通用转发服务的分组交换机组成。
-
SDN的分组交换机以一种“匹配加动作”的范式提供统一、通用的转发服务,以实现多种网络层功能以及某些链路层功能。
-
SDN在通用转发中能够对协议栈的多个首部字段进行“匹配”,这些首部字段与不同层次的不同协议相关联。
-
“动作”包括将分组转发到一个或多个输出端口、在多个输出端口间进行负载均衡、重写某个首部字段值、阻拦或丢弃某个分组、将分组定向到某个特定服务器去进行特殊处理等。
-
SDN数据平面的转发设备是一种通用的跨层“分组交换机”而不是传统的“路由器”或“二层交换机”,由于受SDN控制器的控制,可称为“SDN交换机”。
-
匹配加动作转发表在OpenFlow中被称为流表(Flow Table),每一个流表项由分组匹配项、动作序列和计数器三个主要部分组成。
-
SDN中的接口具有开放性,以控制器为逻辑中心,南向接口负责与数据平面进行通信,北向接口负责与网络控制应用程序进行交互。
-
控制器通过它的北向接口为网络控制应用程序提供网络控制服务,实现网络的可编程性。
-
控制平面负责实现网络拓扑的收集、路由的计算、流表的生成及下发、网络的管理与控制等功能,而数据平面的网络设备仅负责流量的转发及策略的执行。
5.1 运输层协议概述
-
从通信和信息处理的角度看,运输层(也翻译为传输层)向它上面的应用层提供端到端通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。
-
因此从运输层来看,端到端的通信是应用进程之间的通信。
-
逻辑通信”的意思是,运输层之间的通信好像是水平传送数据,但事实上这两个运输层之间并没有水平方向的物理连接,要传送的数据是沿着图中上下多次的虚线传送的。
-
TCP/IP网络利用软件端口(Port)来实现复用和分用。
-
要用运输层协议进行通信的进程,都需要与某个端口关联,端口号标识了应用进程所关联的端口,相当于应用进程的运输层地址。
5.2 用户数据报协议
-
二元组(IP地址,端口号)被称为套接字(Socket)地址。
-
注意的是,与后面将要讨论的TCP不同,端口队列中的所有报文的目的IP地址和目的端口号相同,但源IP地址和源端口号并不一定相同,即不同源而同一目的地的报文会定位到同一队列。
-
2025/06/03 发表想法
二进制反码运算简单地说就是有进位时就将其加到最低位。
原文:发送方先把全零放入检验和字段。再把伪首部及UDP用户数据报看成由许多16位的字串接起来。若UDP用户数据报的数据部分不是偶数个字节,则要填入一个全零字节(但此字节不发送)。然后按二进制反码计算出这些16位字的和。将此和的二进制反码写入检验和字段后,发送这样的UDP用户数据报。
-
发送方先把全零放入检验和字段。再把伪首部及UDP用户数据报看成由许多16位的字串接起来。若UDP用户数据报的数据部分不是偶数个字节,则要填入一个全零字节(但此字节不发送)。然后按二进制反码计算出这些16位字的和。将此和的二进制反码写入检验和字段后,发送这样的UDP用户数据报。
5.3 传输控制协议
-
通常一个TCP服务器进程用一个端口号与不同的客户进程建立多个连接,然后创建多个子进程分别用这些连接与各自的客户进程进行通信。
-
(7)ACK:只有当ACK=1时确认号字段才有效;当ACK=0时,确认号字段无效。
-
因此,SYN位置为1就表示这是一个连接请求报文或连接接受报文。
-
若主机未填写这项,则MSS的默认值是536。因此,所有在互联网上的主机都应能接受报文段长度是536+20=556(字节)。
-
TCP的确认并不保证数据已交付应用进程,而只是表明接收方的TCP已按序正确收到了对方所发送的报文段。
-
如果把超时重传时间设置得太短(如图中的T2),则很多报文段会过早超时,引起很多不必要的重传,使网络负荷增大。但如果把超时重传时间设置得过长(如图中的T3),则大量丢失的报文段不能被及时重传,降低了传输效率。
-
选择确认允许接收方通知发送方所有正确接收了但失序的字节块,发送方可以根据这些信息只重传那些接收方还没有收到的字节块
-
为防止接收方发送给发送方的窗口大小更新报文段丢失而导致死锁状态,实际上,当窗口大小变为0时,发送方如果有数据要发送,则会周期性地(例如,每隔60s)发送只包含1字节数据的窗口探测(Window Probe)报文段,以强制接收方发回确认信息并通告接收窗口大小。
-
2025/06/04 发表想法
前面一个接收方应该改成发送方吧。
原文:但如果接收方应用程序发送数据的速率长时间高于接收方应用程序接收数据的速率,在发送方会出现什么情况呢?
-
TCP的标准规定,SYN=1的报文段(例如,A发送的第一个报文段)不能携带数据,但要消耗掉一个序号。
-
若该报文段不携带数据,则按照TCP的规定,确认报文段不消耗序号。
5.4 拥塞控制
-
如果网络中的负载(Load),即发送到网络中的数据量超过了网络的容量,即网络中能处理的数据量,那么在网络中就可能发生拥塞。
-
相反,闭环控制是一种基于反馈环路的方法,它包括三个部分:(1)监测网络系统以便检测到拥塞在何时、何地发生;(2)把拥塞发生的信息传送到可以采取行动的地方;(3)调整网络系统的运行以解决出现的问题。
-
在显式反馈算法中,拥塞点(即路由器)向源点提供关于网络中拥塞状态的显式反馈信息。
-
在隐式反馈算法中,源点通过对网络行为的观察(如分组丢失与往返时间)来推断网络是否发生了拥塞,无须拥塞点提供显式反馈信息。TCP采用的就是隐式反馈算法。
-
互联网主要利用隐式反馈算法在运输层实现拥塞控制。
-
该方法具体要解决以下三个问题:首先,TCP发送方如何限制它的发送速率;其次,TCP发送方如何感知从它到目的地的路径上存在拥塞;最后,当发送方感知到端到端的拥塞时,采用什么算法来改变其发送速率。
-
TCP的发送方还维持了一个叫作拥塞窗口(Congestion Window)的状态变量cwnd,其大小取决于网络动态变化的拥塞程度。
-
因此TCP发送方的发送窗口大小取接收方窗口和拥塞窗口中的较小值,即应按以下公式确定:[插图]
-
因此,当超时计时器超时或者接收到三个重复确认时,TCP的发送方就认为网络出现了拥塞。
-
即慢启动(Slow-Start)、拥塞避免(Congestion Avoidance)和快速恢复(Fast Recovery)。
-
通常在刚刚开始发送报文段时可先将拥塞窗口cwnd设置为一个MSS的数值。而在每收到一个对新的报文段的确认后,将拥塞窗口增加至多一个MSS的数值。
-
为此,TCP定义了一个状态变量,即慢启动门限ssthresh(即从慢启动阶段进入拥塞避免阶段的门限)。
-
在拥塞避免阶段,发送方的拥塞窗口cwnd每经过大约一个RTT就增加一个MSS。实际做法是,每收到一个新的确认信息,将cwnd(这里以字节为单位)增加MSS×(MSS / cwnd)字节。
-
无论是在慢启动阶段还是在拥塞避免阶段,发送方只要发现网络出现拥塞(检测到分组丢失),就立即将拥塞窗口cwnd重新设置为1,并执行慢启动算法。
-
在重新执行慢启动算法的同时,将慢启动门限ssthresh设置为出现拥塞时的发送窗口大小(即接收方窗口和拥塞窗口中数值较小的一个)的一半(但不能小于2)。
6.1 应用层概述
- 具体来说,应用层协议定义了如下规则。(1)交换的报文类型,如请求报文和响应报文。(2)各种报文类型的语法,如报文中的各个字段及其详细描述。(3)字段的语义,即包含在字段中的信息的含义。(4)进程何时、如何发送报文及对报文进行响应的规则。
6.2 域名系统
-
但在应用层,为了便于用户记忆各种网络应用,更多使用主机名
-
互联网的DNS是一个联机分布式数据库系统,并采用客户/服务器体系结构。
-
每一级的域名都由英文字母和数字组成(不超过63个字符,并且不区分大小写字母),级别最低的域名写在最左边,而级别最高的顶级域名写在最右边。完整的域名不超过255个字符。
-
DNS将整个名字空间划分为许多不相交的区(Zone),每个区的域名信息由一个权威域名服务器(Authoritative Name Server)负责管理。
-
区是域名服务器直接管辖范围的单位,每个区有一个权威域名服务器。权威域名服务器负责本管辖区的域名转换(显然,它必须知道本管辖区中所有主机的名字和IP地址),但其权限范围仅在本管辖区内。
-
为了提高域名服务器的可靠性,DNS域名服务器会把数据复制到几个域名服务器中保存,其中一个是主域名服务器(Master Name Server),其他的是辅助域名服务器(Secondary Name Server)。
-
主机向本地域名服务器的查询一般都采用递归查询
-
DNS服务器以资源记录(Resource Record,RR)的形式存储主机名到IP地址的映射,每个DNS回答报文可能包含一条或多条资源记录。资源记录在逻辑上就是一个四元组(Name、Value、Type、TTL)。
6.3 万维网
-
万维网是一个大规模的、联机式的信息储藏所,是运行在互联网上的一个分布式应用,现在也经常简称为Web。
-
万维网浏览器向万维网服务器发出对某个万维网文档的请求,万维网服务器返回浏览器请求的万维网文档,浏览器将该文档在窗口中显示出来。
-
万维网使用统一资源定位符(Uniform Resource Locator,URL)来标志万维网上的各种文档,并使每一个文档在整个互联网的范围内具有唯一的URL。
-
HTTP是一个应用层协议,它使用TCP连接进行可靠的传送。
-
因此,URL的一般形式由以下四个部分组成: <协议>://<主机>:<端口>/<路径>
-
客户单击鼠标后发生的事件如下。(1)浏览器分析指向页面的URL。(2)浏览器向DNS请求解析www.tsinghua.edu.cn的IP地址。(3)DNS解析出清华大学服务器的IP地址为166.111.4.100。(4)浏览器与服务器建立TCP连接(在服务器端IP地址是166.111.4.100,端口号是80)。(5)浏览器发出取文件命令:GET /yxsz.htm。(6)服务器www.tsinghua.edu.cn给出响应,把文件yxsz.htm发送给浏览器。(7)释放TCP连接。(8)浏览器显示“清华大学院系设置”文件yxsz.htm中的内容。
-
在发送HTTP请求报文前,浏览器首先要和服务器建立TCP连接(这里需要使用三次握手)。在三次握手的前两部分完成后(即经过了一个RTT后),浏览器就把HTTP请求报文放在三次握手的第三部分中,作为TCP确认报文的数据发送给服务器(注意:前两部分不能携带数据)。
-
请求一个万维网文档所需的时间是该文档的传输时间(与文档大小成正比)加上两倍的RTT(一个RTT用于TCP连接,另一个RTT用于请求和接收万维网文档)。
-
HTTP/1.1使用持续连接,较好地解决了这个问题。所谓持续连接就是万维网服务器在发送响应后仍然保持这条连接,使同一个客户(浏览器)和该服务器可以继续在这条连接上传送后续的HTTP请求报文和响应报文。
-
为进一步提高效率,HTTP/1.1的持续连接还可以使用流水线方式工作,即浏览器在收到HTTP的响应报文之前就能够连续发送多个请求报文。
-
请求报文的第一行“请求行”只有三项内容,即方法、请求资源的URL,以及HTTP的版本。
-
状态码(Status-Code)都是三位数字,分为5大类,每类状态码都以不同数字开头:1××表示通知信息,如请求收到了或正在进行处理;2××表示成功,如接受或知道了;3××表示重定向,表示要完成请求还必须采取进一步的行动;4××表示客户的差错,如请求中有错误的语法或不能完成;5××表示服务器的差错,如服务器失效无法完成请求。
-
Cookie提供了一种机制,使得万维网服务器能够“记住”用户,而无须用户主动提供用户标识信息。
-
因此,搜索引擎要尽量提高响应时间、查全率、查准率和用户满意度四个指标,即用尽可能少的时间返回尽可能相关的网页信息列表,并将最可能满足用户需求的信息排在最前面。
6.4 电子邮件
-
POP3有两种工作方式:下载并删除方式和下载并保留方式。
-
通用互联网邮件扩展(Multipurpose Internet Mail Extensions,MIME)
-
MIME在发送方把非ASCII码数据转换为7位ASCII码数据,交给SMTP传送;在接收方再把收到的数据转换为原来的非ASCII码数据。
6.10 网络应用编程接口
- 大多数网络协议都是由软件实现的(特别是协议栈中的高层协议),而且绝大多数计算机系统都将运输层以下的网络协议在操作系统的内核中进行实现。
来自微信读书