通信与计算机网络-知识点总结

本文最后更新于 2024年6月4日 下午

通信与计算机网络-知识点总结

本课程内容分为两大部分:通信网和计算机网络,最早的电信网技术关键是交换技术和网络结构。随着计算机网络的发展和通信网中设备虚拟化技术的趋势,通信网逐渐和计算机网络融合。

通信网

交换技术

简单来说,通信网中所使用的交换技术主要由两大类:电路交换和分组交换。
这两种交换可以采用不同的业务类型,业务类型分为面向连接的和无连接的。

  • 面向连接的(connecting-oriented)
    在双方通信之前需要通过通讯会话建立连接,直到通信结束后才能释放这个链接。
    面向连接的通信包括三个阶段:

    • 双方建立连接
    • 通过连接双方进行通信
    • 释放连接

    相比于无连接的交换,面向连接的交换会消耗更多的资源和时间,但是通常可靠性会比无连接的交换更好。

  • 无连接的(connectionless)
    通信的双方不需要在通信前建立连接。通信的发送方不关心接收方是否可以收到,也不保证连接的可靠性。
    如果传输系统本身就具有高可靠性的特点,那么通信环境也可以保证无连接的可靠性。

协议架构中每一层采用的交换方式是独立的、可以是不同的。但是,如果下层资源没有被固定分配,上层无法使用固定资源分配的协议,因此不存在下层使用分组交换,上层使用电路交换的情况。
面向连接的交换适用于长期的、稳定的、传输数据量大的通信。而无连接的交换适用于临时的、传输数据量小的通信,这种通信不需要为可靠性负责。

电路交换

电路交换(circuit switching)是面向连接的交换,通信的双方在通信前建立双方独占、专用的物理通道。在建立连接后,物理资源会被分配到这条连接上为其专用。
如果双方的通信需要经过中间结点,在电路交换中,中间结点不关心数据内容,直接转发,这样的传输可以保证传输数据率始终恒定,这样的传输称为透明传输/透传(Transparent Transmission)。
同时双方与中间结点的连接使用的信道/电路是不同的,且一定专用。
电路交换的特点是:面向连接和透明传输。
电路交换的优点是:由于其透明性,电路交换往往可以稳定地实现恒定高数据率的传输。且当连接被建立后,基本上不需要额外的比特开销。
其缺点是:

  • 其对通信资源的分配是固定的,且双方在通信过程中资源无法被动态分配。
  • 由于通信资源的专有性,连接被建立后,线路在空闲时的通信资源无法被网络上的其他结点使用,通信资源利用率低。
  • 由于电路交换的数据率恒定,因此在不同类型的设备上传输时,两个设备必须以相同的数据率传输和接收,网络的利用率受到限制。

电路交换的应用例子是传统的语音通信网络和光传输网络。

分组交换

在分组交换(packet switching)中,传输数据分为多个数据包(称为分组)进行发送。每个数据包的格式是标准化的。分组交换所使用的资源和连接都是逻辑的,被整个网络的所有节点共用。双方如果不通信,资源则由网络中的其他用户共享。分组交换可以是面向连接的,也可以是无连接的。
分组交换的优点是:

  • 链路在一段时间可以被许多分组动态地共享,通信资源的利用率较高。
  • 分组交换网络可以完成不同传输设备之间的数据率转换。
  • 网络发生拥塞时,分组仍然可以被中间结点接收并存储在缓存中,并不会像电路交换那样双方因为无法分配到资源而无法通信。
  • 可以对不同的分组定义不同的优先级。

分组交换的缺点是:

  • 无法保证每一次通信都可以获得足够的资源,且不能保证重要的资源被合理分配。
  • 在传输过程中数据包的顺序可能发生移位或者丢失。

分组交换又分为两种:虚电路和数据报两种分组交换形式。

虚电路

虚电路(virtual circuit)是一种面向连接的分组交换,在通信前双方需要从共享的通信资源中建立一条预订的路由(但是这条路由仍然和其他虚电路共享),并且相应的路由信息会被添加到分组中。因此,在转发每个分组时,节点不需要为每个分组选择路由。对于使用同一条虚电路的所有分组节点只需要做一次路由选择。
和电路交换不同的是,虚电路在建立连接过程中建立的是逻辑信道,连接被建立后不会被分配资源。
虚电路的应用例子是:帧中继和ATM。

数据报

在数据报(datagram)中,每个分组被独立的设置路由。因此一些分组虽然有相同的目的地址,但是并不是沿着相同的路由到达目的地,并且可能会失序地到达目的地。
数据报可以是面向连接的,也可以是无连接的。
无连接的数据报省略了建立连接过程,它不关心交付的可靠性,但是可以更加灵活地处理数据。
无连接的数据报的应用例子是:IP数据报和UDP数据报。
面向连接的数据报关心可靠性,有流量控制和差错控制功能,但是为了可靠性而付出了更多的代价。
面向连接的数据报的应用例子是:TCP数据报。

交换的粒度和分组的开销占比

交换的粒度

简单来说,交换地址是有层级之分的,同一个主机拥有的其不同层级的地址是不一样的。在某些协议交换的过程中,为了避免记录有高地址不同,低层地址相同的数据分组在交换过程中发生错误,在交换之后需要改变其高层或者低层的地址。交换的粒度(granularity)所指的就是:高粒度的交换即会改变高层地址,也会改变低层地址;而低粒度的交换发生在高层级,即物理层等低层地址不发生改变,只有在逻辑层上的高层地址发生改变。

具体的例子是ATM中的虚通路连接。ATM中,端用户之间的物理传输通道被划分成多个虚通道,同时虚通道(VC, virtual channel)可以从逻辑上被划分为多个虚通路(VP,virtual path)。每一个虚通路都有唯一的识别标志虚通路标识符(VPI),每一个虚通道也有唯一的识别标志虚通道标识符(VCI)。

为了避免从不同虚通道上来的具有相同VPI的信元流在结点转发过程中出现错误,中间结点会将来自某个虚通路或者虚通道上接收的信元根据特定的映射,交换到另一个虚通路或者虚通道上。这样的交换可以是低粒度的(只是将信元转发到另一个虚通路)也可以是高粒度的(将信元转发到另一个虚通道的另一个虚通路上)。

分组的开销占比

分组交换中,固定长度的一段报文被分成多少个分组取决于不同的应用场景。粒度高的分组方式(如上图中a)其额外开销比特(payload,即头部的控制信息)与用户数据占比更小,传输效率更高。粒度低(如上图中d)的分组方式,其额外开销比特与用户占比更大,但是更多的分组在交换时可以更加灵活处理,交换效率更高。

交换技术的发展和软交换技术

交换式通信网中的基本硬件设施是交换机。世界范围内交换机经历了"人工交换(manual exchange)-机电交换机(electromechanic exchange)-程控交换机(stored program control exchange)-软交换(soft switch)"四次大的技术革新。
程控交换机中的功能可以大致分为如下几个部分:用于连接站点的用户电路(user circuit)、用于连接其他交换机的中继电路(truck circuit)、用于控制通话的信令收发模块(signaling circuit)、控制和处理数据的中央处理器(CPU)、以及交换机内部负责各个模块的之间通信的交换结构。
传统程控交换机的缺点是:由于各功能模块被集成,因此如果要升级或改进其中某一模块,整个通信网中所有的交换机都需要更换。此外,对不同用户设备和信号,可能会使用到不同的程控交换机以适配接口。
软交换(soft switch)的基本思路是从物理上将硬件交换功能与其他功能分离。物理交换功能由媒体网关(media gateway)执行,并且可以兼容各种用户设备和信号;其他功能模块位于媒体网关控制器中,媒体网关控制器可以被虚拟化成为网络中的一些结点并且可以被整个网络中的节点共享。

网络拓扑结构

拓扑结构的类型

类型 结构 优点 缺点
星形
(最基本)
每一个站点通过两条点对点链路与同一个中央节点连接:
一条链路负责发送,一条链路负责接收。中央节点的作用可以是实现广播功能,也可以实现帧交换功能。
1. 新设备可以很方便地加入或者离开网络,可以提供更多,更方便的连接
2.设备之间不会有干扰
1. 可靠性低
2.需要中央结点
网形
(最基本)
每个结点与可能不止一个其他结点相连。 可靠性高,交换和路由设置更灵活。 需要设置的链路数量更多,成本更高
总线形* 所有的站点通过标准的硬件接口直接连接到一个线性传输媒体上。 新设备可以很方便地加入或者离开网络 1. 可靠性低,如果主线断所有都断
2.需要采取某些机制避免碰撞
3. 两端需要端子吸收信号
环形* 由若干段单向链路组成,每段链路的首尾通过转发器与其他链路的首/尾相连。 被传输的信号在每一节点上再生,传输信息误码率可减到最少 1. 结点故障会引起全网故障
2.需要采取某些机制避免碰撞
树形* 从一个称为头端的点开始,延伸出多条缆线,每条缆线可以有多个分支。每条缆线可以视为一个总线形结构,缆线上有若干分接头。 1.分支之间相对独立的同时分支之间的资源可以共享
2.新设备可以很方便地加入或者离开网络
1.主线断,处处断
2.需要采取某些机制避免碰撞

通信网拓扑结构的演变

  • 最初,结点之间的交换能力并不强,因此电信网采用的拓扑结构是网状结构,以保证端到端的连通性。并且当时的用户数量少,设置多条链路的开销并不大。
  • 随着用户数量的增大,网状拓扑结构多余链路的设置会带来更高的成本,因此电信网采用的拓扑结构是星形,当时此时已经有一些技术可以保证通信的可靠性,以弥补星形结构弱可靠性的缺点。
  • 电话费价格降低带来了业务量的增长,中央结点的负荷量增大,为了能够分担中央结点的负荷,此时中央结点之间由设置链路以分配各中央结点的负荷量,弥补交换能力的不足。用户接入数量的增多以及为了保证用户可以尽可能简单地接入网络,在用户连接端使用的拓扑结构仍然是星形。此时整个通信网被划分为核心网和接入网两大部分,并采用混合的拓扑结构。
  • 随着业务种类的增长,在这个阶段,中央结点的功能不再是单纯的交换,而有计算、存储等功能。进一步地,由于有足够高的数据率,这些功能节点可以被虚拟化至云服务器,并采用云计算技术提供支持。目前,为了进一步降低传播时延,部分云端的功能被拉入接入网,实现边缘计算。

计算机网络

链路控制技术

流量控制

停等协议

发送方在发送一帧之后,必须要等收到接收方的确认信息(称为ACK/acknowledgement)后,才能发送下一帧。接收方可以通过是否发送确认信息来控制数据传输的停止。

停等协议保证了传输的可靠性,但是等待时延降低了传输效率。停等协议适用于通信时延低、总帧数少、单帧长度长的传输情况。在总帧数大、单帧长度短时,停等协议显得十分低效。

滑动窗口

滑动窗口的改进是一个批次一批次地发送多个帧,只需要在一个批次的帧传输完成后,接收方才需要发送确认信息。每一个批次的长度称为滑动窗口的长度。

具体而言,\(k\)比特长的数据被划分成帧之后被循环编码,编码的范围为\(0∼2^k-1\)
起始时,发送机一次性发送编号为\(0∼i\)的帧,接收机处理这些帧,并返回一个包含接收机处理的下一个帧的帧序号\(n\)的ACK。发送机收到ACK后,通过将ACK中的序号与发送的最后一个序号进行比对,从而得知上一批已经被接收机处理的帧的个数\(i-n+1\)。发送机再发送后续的\(i-n+1\)个帧,并等待接收机的下一个ACK,如此直到所有帧被发送完毕。
相比于停等协议,通过对窗口大小的合理设置,可以使链路被数据占满,实现对链路的高利用率。
简单来说,如果窗口的大小为:
\[[\frac{t_{ACK}}{t_{transmission}}]\] 向上取整。其中\(t_{ACK}\)为ACK的传输时间,\(t_{transmission}\)为帧的传输时间。
那么可以使得整个链路被占满。

滑动窗口适用于通信时延低、总帧数多、单帧长度短的情况

差错控制

差错控制主要包括两个步骤:检错和纠错,检错即检查数据中是否出现差错。纠错机制主要分为两类:自纠错和重传。自纠错机制比如循环冗余校验(CRC)和奇偶校验(parity code)等等,它们都属于前向纠错(FEC)。本课程中主要介绍了自动请求重发(ARQ,Automatic Repeat Request,它是一种重传机制。
AQR有三类:停等ARQ,返回nARQ和选择拒绝AQR。

ARQ类型 简述 优点 缺点 适用场景
停等ARQ 基于停等协议的ARQ。
正常的发送模式为停等协议。
无论是ACK丢失还是数据包出错或丢失,都会使发送端的计时器出现超时,此时发送端重传这个包。
简单易行 速度慢,资源利用率不高。 通信时延低、总帧数小、单帧长度长
返回nARQ 基于滑动窗口协议的ARQ。
如果终端在某个帧中检测到差错,那么终端会为这个帧发送一个否认确认(REJ),发送方将发送这个帧和接收到的这个帧之后的所有帧。如果超时,那么发送方会询问接收方需要重传的帧。
传输速度相比于停等ARQ更高 重传导致传输的有效信息不多,效率低下。 通信时延低、总帧数多、单帧长度短
选择拒绝ARQ 被重传的只有那些接收到否认或者超时的帧。 资源利用率更大 对收发双方的缓存和逻辑结构复杂度要求更高 通信时延高
(比如卫星通信)

路由策略

路由策略 描述 优点 缺点
静态路由 为网络中每一个源的终端选择一条永久固定的路由,并存储在路由表中。只有在网络的拓扑结构发生改变时,静态路由表才会发生改变 简洁性,在具有稳定负荷的、可靠的网络中表现良好 缺乏灵活性,无法对在网络拥塞和结点故障时进行调度
洪泛 网络中的每个结点在接收到某个分组后会复制该分组,并且转发给每一个相邻接点。最终终端会收到多份相同的分组。由于每个源点发送的分组都有唯一的编号,因此终端可以根据编号将编号相同的分组丢弃。 1.鲁棒性强
2.可以访问到尽可能多的结点
3.不需要全网状态
通信负荷量非常高,极容易产生拥塞
随机路由 网络中的每一个结点根据链路的数据率、有概率地为选择一条路由。 保留了洪泛的简单性质,降低了通信量。 路由选择可能不是最佳的
自适应路由 路由的选择根据网络的状态的改变而改变。 可以对拥塞灵活处理 需要知道整个网络的状态

路由决策的要素

影响路由的两个关键要素是判决地点和信息更新时间。

  • 判决地点
    判决地点指的是做出路由的地点,有分布式和集中式两种。
    对于集中式,其能更好的掌握全网的状态,从而做出全局最优的路由判决。但是如果做出路由的中心结点故障,则全网路由无法工作。
    对于分布式,其只能掌握周围结点的网络状态,因而做出的路由判决只能是局部最优的。

  • 信息更新时间和响应速度
    如果路由判决对网络状态的响应过快,容易引起网络波动。并且,信息更新过快会使得全网负载增加。
    如果路由判决对网络状态的响应过慢,收集到的网络状态信息时效性差,路由判决的有效性差。

TCP/IP协议栈

TCP/IP协议栈一共有五层:

  • 物理层(physcial layer):提供主机和传输媒体的物理接口。
  • 网络接入层(network access layer):提供主机和相邻网络的数据交换和接入,并进行局域网内部的路由选择。
  • 网际层(internet layer):提供跨越多个网络的数据传输服务,并提供多个网络间的路由。
  • 运输层(transport layer):保证数据分组可靠地交付到对应的应用。
  • 应用层(application layer):支持多种应用逻辑。

局域网

起初,计算机网络的目的是能够使得用户可以自由灵活地加入和离开网络共享资源。最初的局域网就是依照这个目的而建立的。局域网的数据率受制于两个主要原因:碰撞和带宽。

基于竞争的接入控制协议

局域网中采用的接入控制方式是基于竞争的,因此会出现碰撞,如何避免碰撞成为了限制局域网速度的一个主要原因,因此,需要一些协议来避免碰撞,这些基于竞争的控制接入协议如下:

ALOHA和分隙ALOHA

ALOHA是一种非常简单的协议:任何一个站都可以在帧生成后立即发送。如果发信中遇到了冲突,则发信失败,该帧被丢弃,经随机延时后再次发送。分隙ALOHA将信道时间分成了若干时隙,时隙的长度对应了一帧的传输时间。凡帧的发送必须在时隙的起点。因此,冲突只发生在时隙的起点,冲突发生时只浪费一个时隙,一旦某个站占用时隙并发送成功,则在该时隙内不会出现冲突。
ALOHA和分隙ALOHA由于过于简单,信道利用率低下,利用率分别为18%和36%。

载波监听接入控制/CSMA

载波监听接入控制根据信道忙时站点的等待机制,可以将CSMA分为:非持续CSMA、1持续CSMA和\(p\)持续CSMA。

CSMA策略 描述 优点 缺点
非持续CSMA - 如果信道空闲,则立即发信。
- 如果信道忙,则等待一段时间,该时间长度服从重传时延的概率分布。
简单 传输结束后,信道容易保持空闲,即使有一个或者多个站点等待传输。
1持续CSMA - 如果信道空闲,则立即发信。
- 如果信道忙,则等待直到信道空闲。
避免了信道空闲,利用率高 等待结束后碰撞概率随着站点数目的增大而增大
𝒫持续CSMA - 如果信道空闲,那么站点有概率\(p\)发信。
- 如果信道忙,那么站点等待直到信道空闲。
- 如果站点已经等待了一个单位时间,那么站点有概率\(p\)发信。
避免了信道空闲,而且降低了等待结束后发生的碰撞概率 \(p\)的选取至关重要,随着站点数\(n\)的增大,\(p\)应当动态地减小。但是这样的动态设置需要让新加入的主机也知道,违背了局域网设置的初衷。

CSMA/CD

载波监听多点接入/碰撞检测协议(Carrier Sense Multiple Access with Collsion Detect,CSMA/CD)综合了上述几种载波监听多点接入协议的优点,其具体策略是:

  • 如果信道空闲,站点立即发信。
  • 如果信道忙,则等待直到信道空闲。
  • 如果站点检测到碰撞,在传输过程中,站点会主动发出一个干扰信号(称为积极干扰信号,jamming signal;在基带总线中,这个信号是一个高电平信号)来让整个网络中的所有站点知道碰撞的发生,之后停止传输。
  • 发送完干扰信号后,随机地等待一段时间(退避),以避免二次碰撞,之后再尝试发信。

    任意一个站点在检测到干扰信号后都会发出干扰信号,使得整个网络可以快速地知晓碰撞。

传播时延和最小帧长度

由于信号在传输线上的传输时延\(τ\)(\(τ\)的参考值:电磁波在1km电缆上的传播时延大约为5μs),传输线上的站点可能依然认为信道是空闲的。
由于局域网上任意两个站点之间的传播时延有长有短,局域网按照最坏情况设计,即取总线两端的两个站点之间的传播时延为端到端的传播时延。

从上图可以看出,在站点发送帧后至多\(2τ\)(即\(δ→0\))时间就可以知道所发送的数据帧是否遭受到碰撞。
这段时间称为争用期,可以发现,在站点发送完数据后,在争用期时间还没有检测到碰撞,那么这次发送一定不会产生碰撞。
具体而言,以太网协议规定的具体的征用时间为\(2τ=51.2μs\) 对于10Mbit/s的以太网,争用期内可以发送512bit。争用期的单位也可以用bit·s,称为比特时间表示,因此上述争用期时间也可以说为512比特时间,即争用期是发送512bit所需要的时间。
在这种情况下,只有当帧长度大于\(2L=r_b×2τ\)(在上文的例子中应当为512bit)时,源站点和终端之间的任何一个站点才不可能在源站点和终端之间通信时认为信道空闲。

网桥

随着交换技术的发展以及交换机的价格逐渐便宜,避免碰撞的方式开始转向将碰撞域整体的划分。
网桥(bridge)可以在保证两个局域网相对独立的情况下,支持两个局域网之间的相互通信。换言之,可以使用网桥将一个碰撞域划分为两个子碰撞域。

网桥的功能

  • 地址学习(address learning)
    由于局域网中站点设备“来去自由”的特性,其交换表需要动态改变,因此网桥需要有自适应地址学习的功能。
    简单来说,可以分为如下几种情况:
    • 当某个帧的头部中的源地址不位于交换表中,目的地址位于交换表中且位于异侧,表明发送侧局域网中有新的站点加入。此时网桥会将数据帧转发到对应的目的地址,并记录下源地址。
    • 当某个帧的源地址位于交换表中,目的地址部存在于交换表中,目的地址是否在与发送侧不同的一侧的情况未知。此时网桥会向另一侧的局域网广播该数据帧,如果有站点接收,表明目的地址位于异侧,网桥将这次交换记录到交换表;如果没有站点接收,表明目的地址位于发送侧,网桥不会记录下这次交换。
      为了让网桥有适应拓扑变化的能力,会为每一个学习到的地址设置老化时间,一般为5分钟。超过老化时间的地址会被移除交换表。
  • 生成树(spanning tree protocal)
    当网络中存在多个网桥的情况下,可能会引起网桥环路,环路会导致一个广播数据在两个网桥构成的环路中无限循环地来回传输,这种现象称为广播风暴,从而影响整个网络的性能。
    生成树算法是一种解决环路问题的拓扑结构生成算法,按照生成树算法,整个网络的拓扑结构最终会以一个无任何冗余连接的树形结构,从而避免环网的生成。

局域网定义的变化

通过交换机,可以将整个碰撞域划分为更小更多的子碰撞域以进一步减小碰撞概率。极端情况下,可以使用交换机将每一个站点分割为单独的子碰撞域,即每个子碰撞域下只存在一个站点,从而真正避免了碰撞的发生。事实上,如今的网络中每一个站点都有类似的功能,其物理承载设备是网卡。在此基础上研究只有一个站点的局域网并没有太大意义,因此局域网的定义不再是单纯的一个碰撞域,而是将由一个交换机和其连接全部站点组成的网络称为局域网。

IP协议群

IP地址

分类的IP地址

IP地址由两部分构成:网络号和主机号。网络号表示主机或者路由器端口连接到的网络,网络号在整个互联网范围内是唯一的;主机号表示该主机或者该路由器端口,在网络号对应的网络中是唯一的。
根据不同用途,将IP地址分为了5类,依据网络号中有1到4位的类别位对其类别进行识别。
这样分配IP地址的好处有二,其一是IP地址管理机构在分配IP地址时只需要分配网络号,主机号可以由得到网络号的组织自行分配。其二是路由器仅根据网络号转发分组,大大减少了路由器中路由表所占用的内存和查表时间。

其中ABC类地址用于一对一通信,称为单播地址。
A类结构中网络号有8位,其头部类别位为“0”,主机号有24位。
B类结构中网络号有16位,其头部类别位为“10”,主机号有16位。
C类结构中网络号有24位,其头部类别位为“110”,主机号有8位。

需要注意,路由器的每个端口将拥有一个网络号;由于传统的网桥或者(二层)交换机不需要和其他网络进行通信,它们一般没有IP地址。

分类形式的IP地址的缺点:

  • IP地址的利用率非常低,分配到某类地址的组织往往主机数量并没有达到上限,这就造成了IP地址的浪费。
  • 随着网络数量的增加,每个物理网络分配一个网络号最终会导致路由表太大,导致查表时间和路由器成本增加。
  • 两级的IP地址不够灵活,申请到新的IP地址之前,新增加的网络是不可能连接到互联网上工作的。

划分子网

在这样的背景下,原来的两级地址变成由网络号、子网号和主机号组成的三级地址。
某些单位可以将物理网络划分为若干个子网,但是单位对外仍然表现为一个网络。发送到这个单位的IP数据报在被这个单位的路由器接收到后,按照子网号找到对应主机所在的子网。
子网划分的信息需要单独用子网掩码表示,子网掩码的结构是网络号和子网部分全为1,主机号为0,与IP地址相与之后就可以得到子网的网络号。

CIDR

随着网络地址即将耗尽,之后又提出了CIDR。CIDR把32位的IP地址划分为前后两个部分:网络前缀和主机号,其中网络前缀用于指明网络。此外,CIDR的IP地址后还需要用斜线“/”其后跟随网络前缀所占用的位数。

ARP协议

ARP协议提供了从MAC地址到IP地址的映射。
ARP协议使用MAC帧进行传送。
每一台主机/路由器都有ARP高速缓存器,里面有本局域网上各主机/路由器的MAC地址以及它们对应的IP地址。当主机要向本局域网上的另一个主机发送IP数据报时,需要从该主机内部的ARP缓存器中找到目的主机IP地址对应的MAC地址,并填入MAC帧中,然后局域网把该MAC帧发往此MAC地址绑定的主机。
同交换机/网桥一样,ARP缓存器也有对地址的自我学习功能:

  • 当目的主机IP地址对应的MAC地址对源主机未知时,源主机通过ARP进程向本局域网中广播一个ARP请求,其内容包括了源主机的MAC地址和IP地址,以及需要查找的MAC地址所对应的IP地址,这些信息被封装为MAC帧格式
  • 局域网中的每一个主机都会收到这个包含ARP请求的MAC帧,然后解包查看需要查找的IP地址是否为自己的IP地址:
    • 如果收到ARP请求的主机的IP地址与请求查找的IP地址不同,则该主机忽略这个ARP包。
    • 如果收到ARP请求的主机的IP地址与请求查找的IP地址相同,则该主机收下这个ARP请求,并且发送一个包含自己MAC地址和IP地址的ARP响应。这个响应的发送是单播。
      同时,该主机也将源主机的MAC地址和IP地址写入自己的ARP缓存中,以便今后通信。
  • 源主机收到ARP响应后,将响应中的MAC地址和IP地址写入自己的ARP缓存中。

如果所找的主机和源主机不在同一个局域网上,则需要路由器按照MAC帧的操作将其广播到各个网络中的路由器,由这些路由器进一步广播寻找自己连接的网络下是否存在这个主机。同样地,目的主机发送的ARP响应也需要通过路由器转发到源主机所在的网络中,其处理过程和MAC帧相同。

由于IP地址会不断变动,ARP缓存中为其中的每个项目也有生存时间(通常为10到20分钟),超出生存时间的项目会被自动删除。

IP层的路由

内部网关:RIP协议

RIP协议是一种基于距离向量的路由选择协议,最大优点是简单。此处的距离是指的路由中经过路由器的个数,称为跳数(hop count)。
RIP协议的特点是:

  • 每个路由器只与其相邻的路由器交换信息。
  • 路由器交换的信息是本路由器当前的路由表,路由表的每行表示到自治域内某个网络的最短跳数以及对应路由所经过的下一跳路由器
  • 路由器之间周期性地交换路由信息,通常是每隔30秒交换一次路由表。

RIP协议的功能是让一个自治域中的所有路由器都定期地与其相邻地所有路由器交换路由信息,并不断更新路由表,使得每一个路由器到每一个目的网络的路由都是最短的。

RIP协议的操作

对于使用RIP协议的自治域中的某一个路由器,在其收到相邻路由器发送的RIP报文后,进行如下操作:

  • 对于从相邻路由器X中收到的路由表,先将这个路由表中所有的下一跳路由器全部改为X,并且每一行的跳数加一。

对于收到并对其更改后的路由表B,本路由器会将这个路由表B与原来自己的路由表A进行对比:
- 如果原来路由表中没有某个网络N,就把这个网络添加到自己的路由表A中。
- 如果原来路由表中有网络N:
- 如果B中的下一跳路由器与原来自己路由表A中的下一跳路由器相同:
- 如果路由跳数发生了改变,则对跳数进行更新。
- 如果路由跳数与之前相同,则什么也不做。
- 如果B中的下一跳路由器与原来自己路由表A中的下一跳路由器不同:
- 如果B中的路由跳数比A中的短,则更新这个条目中对应的下一跳路由器和最短跳数。
- 如果B中的路由跳数比A中的长,则什么也不做。
- 如果3分钟过后还没有收到路由器X发来的路由表,则这个路由器相关的路由都设置为16,表示距离不可达

协议格式

由于RIP协议通信是一种短而少量的通信,RIP协议使用用户数据报UDP协议进行传送。

缺点

RIP存在的最大问题是局限于相邻结点的路由信息,当网络出现故障时,需要经过比较长的时间才能将这个信息传送到所有的路由器,可以简单记为“坏消息传的慢”。
这样的机制使得整个自治域中达到稳定路由的时间变长。
此外,RIP还限制了网络的规模,它能使用的最大距离被限制在15。由于交换信息是完整的路由表,因而随着网络规模的扩大,其开销也就增加。

内部网关:OSPF协议

OSPF是另一种内部网关协议,它是一种分布式基于链路状态的路由协议。

OSPF的特点是:

  • 使用洪泛向本自治域中的所有路由器发送信息。每一个相邻路由器将收到的信息发往其所有的相邻路由器。
  • 发送的信息是与本路由器相邻的所有路由器的链路状态。链路状态包含两个信息:
    一个是相邻路由器,另一个是路由的代价,称为度量(metric)。
  • 当链路状态发生变化时(比如代价的变化,或者路由离线等等),路由器才向所有路由器用洪泛发送此信息。

最终,所有的路由器都能建立一个链路状态数据库,这个数据库在全网范围内是一致的。

协议格式

OSPF协议使用IP数据报传送,且长度很短。

相比于RIP,OSPF协议还有如下特点:

  • 允许对不同类型的业务计算出不同的路由。
  • 可以将通信量分配给多条代价相同的路径,进行负载平衡。
  • 支持子网划分和超网。
  • 由于使用了洪泛方法,OSPF需要让每个链路状态都带上一个32位的序号,序号越大状态就越新。
路由协议 基于类型 路由器交换的信息 收敛后每个路由器内部数据差异 协议格式
RIP协议 距离向量 整个路由表 不同的路由表 UDP数据报
OSPF协议 链路状态 链路状态:包含相邻路由和代价 全网范围内一致的链路状态数据库 IP数据报

运输层协议

端口号

端口的本质是应用层的各种协议进程与运输实体之间进行层间交付的地址。需要注意,端口号是一种只具有本地意义的地址。
TCP/IP协议群的运输层使用的端口号长度为16位。

套接字

TCP连接的端点称为套接字(socket),套接字由IP地址和端口号拼接而来,格式为(IP地址:端口号)。
每一条TCP连接唯一地被通信两端的两个套接字确定,因此,每一条TCP连接可以表示为:{(IP1:Port1),(IP2:Port2)}。

网络地址转换/NAT

对一个专用网络采用专用地址进行内部映射,而这个专用网络对外拥有至少一个有效的全球IP地址。这个IP地址和专用网络中设备的专用地址之间的映射关系由网络地址转换/NAT(Natwork Address Translation)进行。
所有使用本地地址的主机在和外界通信时,都要在装有NAT软件的路由器上将本地地址转换为全球IP地址,然后才能和互联网连接。

当运输层引入端口号和套接字的概念时,外部网络的网络的IP地址和端口号被映射为内部网络的IP地址和端口号,理论上如果外网IP地址的端口号足够覆盖内网所有的主机和进程数,即便是只有一个IP地址,通过不同的端口号也可以识别不同内网主机和不同内网主机的不同进程,不需要设备轮流使用IP。


通信与计算机网络-知识点总结
https://l61012345.top/2022/06/21/学习笔记/通信网/知识点总结/
作者
Oreki Kigiha
发布于
2022年6月21日
更新于
2024年6月4日
许可协议