目录
符号说明
符号 | 含义 |
---|---|
PPP | 点对点协议(Point-to-Point Protocol) |
ISP | 互联网服务提供商(Internet Service Provider) |
HDLC | 高级数据链路控制(High-level Data Link Control) |
IETF | 国际互联网工程任务组(The Internet Engineering Task Force) |
MTU | 最大传输单元(Maximum Transmission Unit) |
RFC | 一系列以编号排定的文件(Request For Comments) |
CRC | 循环冗余检查(Cyclic Redundancy Check) |
BER | 误码率(Bit Error Rate) |
LCP | 链路控制协议(Link Control Protocol) |
NCP | 网络控制协议(Network Control Protocol) |
NIC | 网络接口控制器(network interface controller) |
ROM | 只读存储器(Read-Only Memory) |
RAM | 随机存取存储器(Random Access Memory) |
CSMA | 载波监听多路访问(Carrier Sense Multiple Access) |
CD | 冲突检测(collision detection) |
ROM | 只读存储器(Read-Only Memory) |
1 点对点信道
1.1 数据链路和帧
1.1.1 链路
从一个节点到相邻节点的物理线路(中间无任何其他的交换节点)
1.1.2 数据链路
在链路的基础上加上一些实现必要的控制数据传输的协议的软件或硬件就构成了数据链路,常用的设备为网络适配器(既有硬件,也有软件)
1.1.3 帧
点对点信道的数据链路层的协议数据单元
1.2 三个基本问题
1.2.1 封装成帧
封装成帧(framing)就是在一段数据的前后分别添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。因为在开头和结尾做了标记,那么接收方只有在检测到开头和结尾时才认为数据是完整的,不完整的数据则会丢弃
如上图所示,是将网络层网络层的IP数据报封装成帧的过程,每一个链路层协议都规定了帧的数据部分的长度上限也就是图中的MTU(Maximum Transfer Unit)
1.2.2 透明传输
透明传输是指不管所传数据是什么样的比特组合,都应当能够在链路上传送。因此,链路层就“看不见”有什么妨碍数据传输的东西。当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采取适当的措施,使收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层的传输是透明的。
如上图所示,SOH为首部开始符,EOT为尾部结束符,如果在数据中出现了与EOT编码相同的片段,就会导致系统以为数据读取完了,导致数据被丢弃.
解决方法如下
(1) 字节计数法
在每个帧首部,用一个字节记录帧的字节数.
但也特别容易出问题,如果某一个计数的字节出现错误,会导致很多的帧出现错误
(2) 字节填充法
在标志字段前加上转义字符,在许多编程语言中,该方法被广泛使用
也就是当我们检测到转义字符时,其后的编码不会当做标志字段处理.在异步传输时,PPP协议将转义字符定义为0x7D(01111101).根据RFC1662规定:
1.当信息字段中出现0x7E(标志字符)时,我们将其表示为(0x7D,0x5E)
2.当信息字段中出现0x7D时,表示为(0x7D,0x5D)
接受端接受数据时就根据相应的规则恢复数据即可
(3) 零比特填充法
在发送端,先扫描整个信息字段(通常用你硬件实现,软件也可以但是慢),只要发现有5个连续的1就立即在其后补0.
如上图所示,与标志字符编码相同的信息因为加0的缘故,而不会被检测为标志字符
(4) 违规编码法
该方法是在物理层比特编码时实现透明传输的一种方法.
如上图所示,高-低表示1,低-高表示0.该编码方法中不会出现 高-高,低-低,我们就可以用 高-高,低-低来定界帧的开始和结束
1.2.3 差错检测
(1)传输差错
传输过程中0变成1,1变成0导致的比特差错.
还有就是下图所示更复杂的差错
(2)误码率(BER)
引入了误码率(一段时间内,传输错误的比特占传输比特总数的比例)来度量数据传输出现差错的频率.当误码率为 1 0 − 10 10^{-10} 10−10时,表示每传输 1 0 10 10^{10} 1010个比特就会有一个出错
(3)循环冗余检查(CRC)
出错的数据就需要舍弃,CRC就是一种判断数据是否出错的方法.
在发送端先把数据划分为组,每组k个bit.现在假定传输的数据M=101001,也就是k=6.然后我们规定一个n,一个(n+1)位的数p,我们在M的后面加上n个0,假设n为3,那么得101001000,假设p为1101,然后进行如下运算
得到余数001,然后用余数取代M后n个0的位置,此时M=101001001.那么将M当做帧发给接收端,接受端得到帧后将其除以P,如果余数为0,则认为帧没有出现差错(有极小的概率出现差错,且余数为0),这样就做到了对数据正确性的检验,确保能及时丢弃错误的数据
(4)纠错编码(海明码)
第一步:确认校验码位数
第二步:确定校验码和数据的位置
那么我们可以得出
r
=
4
r=4
r=4
第三步:求出校验码的值
我们以求
P
1
P_1
P1为例,找出二进制位第一位为1的(
P
2
P_2
P2找第二位为1的),如下图
令
P
1
∧
D
1
∧
D
2
∧
D
4
∧
D
5
=
0
P_1 \land D_1\land D_2 \land D_4 \land D_5=0
P1∧D1∧D2∧D4∧D5=0,因为D的值已知,可求出
P
1
=
0
P_1=0
P1=0,其他同理,得如下结果
第四步:检测并纠错
假设第五位,也就是
D
2
D_2
D2出错.我们依次计算
P
1
∧
D
1
∧
D
2
∧
D
4
∧
D
5
=
1
P_1 \land D_1\land D_2 \land D_4 \land D_5=1
P1∧D1∧D2∧D4∧D5=1
P
2
∧
D
1
∧
D
3
∧
D
4
∧
D
6
=
0
P_2 \land D_1\land D_3 \land D_4 \land D_6=0
P2∧D1∧D3∧D4∧D6=0
P
3
∧
D
2
∧
D
3
∧
D
4
∧
D
5
=
1
P_3 \land D_2\land D_3 \land D_4 \land D_5=1
P3∧D2∧D3∧D4∧D5=1
P
4
∧
D
4
∧
D
5
=
0
P_4 \land D_4 \land D_5=0
P4∧D4∧D5=0
那么我们可以得出0101,也就是第五位出错
1.3 PPP协议
1.3.1 使用场景
PPP常作为用户计算机和ISP进行通信时所使用的数据链路层协议
1.3.2 为什么需要PPP
过去,因为通信质量较差,在数据链路层常常使用HDLC这种可靠的传输协议,可靠引发的缺点就是效率低,如今通信质量显著提升,这种复杂的协议已经不太适合广泛使用,因此简单的多的PPP就诞生了
1.3.3 PPP需要做到什么
(1)简单
IETF在设计互联网体系结构时把最复杂的部分放入了运输层的TCP协议中,而网际协议IP则相对比较简单,IP协议提供的是不可靠的数据报服务,这种情况下数据链路层没必要提供比IP协议更多的功能.至于IETF为什么要设计的如此头重脚轻,我的个人理解如下(IP和TCP不仅仅是点对点协议):
在数据传输过程中,需要经过很多路由器,为了提高在传输中的效率,我们应该使得数据在路由器上的时延较小,因此路由器所做的工作应该尽量简单,故把一些必不可少的操作放在了较低的层次(物理层,链路层,网络层),而一些较复杂的操作放在了较高的层次
(2)封装成帧
含义与上文所提基本相同
(3)透明性
含义与上文所提基本相同
(4)多种网络层协议
网络层协议不止一种,不同的应用可能会使用不同的网络层协议,那么PPP就必须能在同一条物理链路上同时支持多种网络层协议
(5)多种类型链路
PPP除了需要兼容各种网络层协议,还需要能支持各种物理层,使得PPP能在不同的链路上运行
(6)差错检测
PPP必须能够对接收端接受到的协议价进行检测,并立即丢弃有差错的帧
(7)检测连接状态
PPP协议需要能及时检测出链路是否处于正常的工作者状态
(8)最大传输单元(MTU)
为了促进各种实现之间的互操作性,PPP规定了数据部分的最大长度.如皋高层协议的分组过长超过了MTU的值,PPP就需要丢弃这样的帧,并返回差错
(9)网络层地址协商
PPP必须提供一种机制使得通信的2个网络层的实体能够通过协商知道或能够配置彼此的网络层地址
(10)数据压缩协议
PPP需要提供需要提供一种方法来协商使用数据压缩算法,但PPP不需要将数据压缩算法标准化
1.3.4 PPP的组成
(1)一个将IP数据报封装到串行链路的方法
(2)一个用来建立,配置和测试数据链路连接的链路控制协议LCP
(3)一套网络控制协议,其中每一个协议支持不同的网络层协议,使得PPP可以向上兼容
1.3.5 PPP帧中各字段的含义
如上图,首部和尾部的F都是标志字符(0x7E),A(0xFF)和C(0x03)目前没有实际意义,为预留部分.协议字段为0x0021时,PPP帧的信息字段就是IP数据报。若为0xC021,则信息字段是 PPP链路控制协议LCP的数据,而0x8021表示这是网络层的控制数据。FCS则是用于CRC检验序列
1.3.6 PPP协议的工作流程
(1)起始状态
起始状态及链路静止状态,这时电脑和ISP不存在物理层的连接
(2)建立物理层连接
电脑通过调制调节器呼叫ISP的路由器,路由器检测的调制调节器发出的载波信号,双方建立物理连接
(3)建立数据链路层连接
通过LCP发送配置请求帧,来协商一些配置信息(链路上的最大帧长,鉴别协议的规约,以及是否使用帧中的A,C字段).ISP可做出以下几种回应
(4)鉴别
协商结束后双方就建立了LCP链路,接着就进入“鉴别”(Authenticate)状态。在这一状态,只允许传送LCP协议的分组、鉴别协议的分组以及监测链路质量的分组。若使用口令鉴别协议 PAP (Password Authentication Protocol),则需要发起通信的一方发送身份标识符和口令。系统可允许用户重试若干次。如果需要有更好的安全性,则可使用更加复杂的口令握手鉴别协议CHAP (Challenge-Handshake Authentication Protocol)。若鉴别身份失败,则转到“链路终止”(Link Terminate)状态。若鉴别成功,则进入“网络层协议”(Network-LayerProtocol)状态。
(5)建立网络层连接
PPP 链路的两端的网络控制协议NCP根据网络层的不同协议互相交换网络层特定的网络控制分组。这个步骤是很重要的,因为现在的路由器都能够同时支持多种网络层协议。总之,PPP协议两端的网络层可以运行不同的网络层协议,但仍然可使用同一个 PPP协议进行通信。
注:(建立应用层连接不属于本站内容)
(6) 信息交换
此时2个PPP端可以分别向对方发送分组进行信息传输,也可发送回送请求LCP,回送请求LCP,用以检测链路状态
(7)断开连接
由链路的一方发送终止请求LCP分组,在收到对方的终止请求后断开连接
2 广播信道
2.1 局域网(以太网)
2.2.1 局域网的特点
网络为一个单位所拥有,且地理范围和站点数目均有限且以太网的数据都使用曼彻斯特编码
2.2.2 局域网的优点
(1)具有广播功能,从一个站点可很方便地访问全网
(2)便于系统的扩展和逐步演变,各设备的位置可灵活调整和改变
(3)提高了系统的可靠性,可用性,生存性
2.2.3 根据拓扑的局域网分类
(1)星形网
目前使用最广泛
(2)环形网
(3)总线网
总线的两端的匹配电阻吸收在总线上传播的电磁波信号的能量,避免在总线上产生有害的电磁波反射
2.2.4 信道共享
(1)静态划分
指频分复用,码分复用,波分复用,时分复用等,这些方法在物理层已经讲过.但这种方法划分信道,代价较高,不适合局域网使用
(2)动态媒体接入控制
1.随机接入
随机接入的特点是所有的用户可随机地发送信息。但如果恰巧有两个或更多的用户在同一时刻发送信息,那么在共享媒体上就要产生碰撞(即发生了冲突),使得这些用户的发送都失败。因此,必须有解决碰撞的网络协议。
2.受控接入
受控接入的特点是用户不能随机地发送信息而必须服从一定的控制。这类的典型代表有分散控制的令牌环局域网和集中控制的多点线路探询(polling),或称为轮询。
其中随机接入被广泛使用
2.2 适配器
适配器也叫网络接口控制器(NIC),适配器里装有处理器和存储器(包括RAM和ROM),适配器和局域网之间是通过双绞线或电缆以串行传输方式进行
而适配器与计算机之间是通过适配器上的IO总线以并行传输方式进行(传输速率快),
故,适配器的一个重要功能就是进行并行和串行的转换,且因为传输速率不同,适配器还必须装有储存芯片.适配器在接受和发送数据时不使用计算机的cpu,且计算机的硬件地址就是在适配器的ROM中
2.3 CSMA/CD协议
2.3.1 多点接入
“多点接入”就是说明这是总线型网络,许多计算机以多点接入的方式连接在一根总线上。协议的实质是“载波监听”和“碰撞检测”。
2.3.2 载波监听
通过电子技术手段检测总线上有没有其他计算机也在发送.不管在发生前,还是发射中,每个站都必须不停的检测信道.发送前检测是为了获得发送权,发射中检测是为了及时知道有没有其他站发送的信息和本站发送的信息碰撞.
2.3.3 碰撞检测
边发送边监听.当几个站同时在总线上发送数据时,总线上的信号电压变化幅度将会增大.适配器检测到电压变化幅度超过一定的门限后,就认为产生了碰撞.此时总线上传输的信号产生了严重的失真,因此一旦发现总线上出现了碰撞,适配器就要立即停止发送,免得浪费网络资源,然后等待一段随机事件后再发送
2.3.4 冲突产生的原因
CSMA/CD协议规定,发送前必须检测到信号为空闲才会进行发送,那为什么会产生冲突了.假设电磁波传播1km的传播时延为5μs,如下图,因为在A信号的传播过程中,B没有检测到信道有信号,故发送了信号,故延迟是产生冲突的主要原因.
2.3.5 争用期
如下图,我们假设碰撞的位置里B无限近,那么信号从A发送到碰撞点的时间为
τ
\tau
τ,那么发送碰撞后,碰撞后失真的信号又传送到A又需要
τ
\tau
τ的时间,也就是最晚检测到冲突的时间为
2
τ
2\tau
2τ,将端到端往返的时间称为争用期.
一个站只要发送数据后过了争用期,则可以确定此次发送不会发生碰撞
2.3.6 截断二进制指数退避算法
该算法让发送碰撞后的站,推迟发送数据(不是等到信道空闲就立即发送),因为如果不推迟大家又会同时发送从而产生碰撞,具体步骤如下
现在考虑一种情况。某个站发送了一个很短的帧,但在发送完毕之前并没有检测出碰撞。假定这个帧在继续向前传播到达目的站之前和别的站发送的帧发生了碰撞,因而目的站将收到有差错的帧(当然会把它丢弃)。可是发送站却不知道这个帧发生了碰撞,因而不会重传这个帧。这种情况显然是我们所不希望的。为了避免发生这种情况,以太网规定了一个最短帧长64字节,即 512 bit。如果要发送的数据非常少,那么必须加入一些填充字节,使帧长不小于64字节。对于10 Mbit/s以太网,发送512 bit的时间需要51.2 μs,也就是上面提到的争用期。
2.3.7 强化碰撞
当发送数据的站一旦发现发生了碰撞时,除了立即停止发送数据外,还要再继续发送32比特或48比特的人为干扰信号(jamming signal),以便让所有用户都知道现在已经发生了碰撞
2.3.8 帧间间隔
以太网还规定了帧间最小间隔为9.6 us,相当于96比特时间。这样做是为了使刚刚收到数据帧的站的接收缓存来得及清理,做好接收下一帧的准备。
2.3.9 CSMA/CD 概括
(1)准备发送:适配器从网络层获得一个分组,加上以太网的首部和尾部,组成以太网帧,放入适配器的缓存中。但在发送之前,必须先检测信道。
(2)检测信道:若检测到信道忙,则应不停地检测,一直等待信道转为空闲。若检测到信道空闲,并在96比特时间内信道保持空闲(保证了帧间最小间隔),就发送这个帧。
(3)在发送过程中仍不停地检测信道,即网络适配器要边发送边监听。这里只有两种可能性:
①发送成功:在争用期内一直未检测到碰撞。这个帧肯定能够发送成功。发送完毕后,其他什么也不做。然后回到(1)。
②发送失败:在争用期内检测到碰撞。这时立即停止发送数据,并按规定发送人为干扰信号。适配器接着就执行指数退避算法,等待r倍512比特时间后,返回到步骤(2),继续检测信道。但若重传达16次仍不能成功,则停止重传而向上报错。
以太网每发送完一帧,一定要把已发送的帧暂时保留一下。如果在争用期内检测出发生了碰撞,那么还要在推迟一段时间后再把这个暂时保留的帧重传一次。
2.4 集线器
(1):从表面上看,使用集线器的局域网在物理上是一个星形网,但由于集线器使用电子器件来模拟实际电缆线的工作,因此整个系统仍像一个传统以太网那样运行。也就是说,使用集线器的以太网在逻辑上仍是一个总线网,各站共享逻辑上的总线,使用的还是CSMA/CD协议(更具体些说,是各站中的适配器执行CSMA/CD 协议)。网络中的各站必须竞争对传输媒体的控制,并且在同一时刻至多只允许一个站发送数据。
(2):集线器工作在物理层,仅仅转发比特,不进行其他工作.如果集线器的2个接口同时有信号输入,那么所以接口都将收不到信号
(3):集线器采用了专门的芯片,进行自适应串音回波抵消。这样就可使接口转发出去的较强信号不致对该接口接收到的较弱信号产生干扰(这种干扰即近端串音)。每个比特在转发之前还要进行再生整形并重新定时。
2.5 以太网的信道利用率
上图,占用信道的时间为
T
0
+
τ
T_0+\tau
T0+τ,为什么多出了半个争用期,因为站在发送完最后一个帧后该帧仍需要在信道中传输半个争用期.
要提高信道的利用率就是要降低a.
假设发送数据不会产生碰撞,那么我们可以求得极限信道利用率
S
m
a
x
S_{max}
Smax
2.6 以太网的MAC层
2.6.1 适配器的硬件地址
这6个字节的MAC地址已经被固化在适配器的ROM中.
2.6.2 适配器的过滤功能
2.6.3 MAC帧格式
常用的以太网MAC帧格式有2种标准,一个是DIX Ethernet V2标准,另一种是 IEEE的802.3标准,后面说的是使用最多的DIX Ethernet V2标准
2.6.4 接收端如何确定MAC帧长度
以太网网的传输是用曼彻斯特编码
如上图:在曼彻斯特编码的每一个码元(不管码元是1或0)的正中间一定有一次电压的转换(从高到低或从低到高)。当发送方把一个以太网帧发送完毕后,就不再发送,这样接收方就很容易地找到以太网帧结束的位置.
2.6.5 填充字段
当数据的长度小于46字节时(MAC帧的帧长小于64字节),会在数据字段的后面加入一个整数字节的填充段.但MAC帧的首部并没有指出数据字段的长度,但当我们将数据字段交给网络层时(包括填充字段),假设上层使用的是IP协议,那么其首部有一个标记总长度的字段,这样就可以提取出真实的数据
2.6.6 前导码
因为一个站刚开始接受MAC帧时,适配器的时钟尚未与接受的比特流达成同步,因此在物理层会在MAC帧前插入8字节(硬件生成),其中前同步码负责调解接收端的时钟,帧开始定界符定义为10101011,其前六位的作用和前同步码一样,最后两个连续的一告诉适配器MAC帧来了,做好准备.FCS字段的检测范围不包括前导码
2.6.7 无效的MAC帧
2.7 10BASE-T以太网
2.8 扩展的以太网
2.8.1 物理层上的扩展
我们知道因为带宽和信号衰减的限制,以太网中站与站的距离不能太远,但光纤调制解调器的出现解决了这一问题,光纤调制解调器的作用进行电信号和光信号的相互转换,由于光纤时延小,带宽高,可以很容易的连接到几公里以外的站.
2.8.2 在数据链路层扩展的以太网
(1)网桥
网桥对收到的帧根据其MAC地址进行转发和过滤,当网桥收到一个帧时并不是向所有的接口转发此帧,而是根据此帧的MAC地址查找网桥中的地址表,然后确定将帧转发到哪一个借口,或者丢弃.现如今网桥已经被淘汰
(2)以太网交换机
以太网交换机实际上就是一个多接口的网桥,交换机的每一个接口都与一个站相连,一般工作在全双工信道上.并且具有并行性质,既能同时连接多对接口,使多对主机能同时工作.相互通信的主机都是独占传输媒体,无碰撞的传输数据.以太网交换机的接口还有存储器,能在输出端口繁忙时把到来的帧进行缓存。因此,如果连接在以太网交换机上的两台主机,同时向另一台主机发送帧,那么当这台主机的接口繁忙时,发送帧的这两台主机的接口会把收到的帧暂存一下,以后再发送出去。交换机内部的地址表是通过自动逐渐建立起来的
(2)以太网交换机的自学习功能
2.8.3 100BASE-T以太网
100BASE-T是在双绞线上传送100 Mbit/s基带信号的星形拓扑以太网,仍使用IEEE802.3的CSMA/CD协议,它又称为快速以太网(Fast Ethernet)。其只需要在10BASE-T的基础上对集线器和交换器进行升级,而不需要改变拓扑结构.
2.8.4 吉比特以太网
3 本节重要概念
1.链路是从一个结点到相邻结点的一段物理线路,数据链路则是在链路的基础上增加了一些必要的硬件(如网络适配器)和软件(如协议的实现)。
2.数据链路层使用的信道主要有点对点信道和广播信道两种。
3.数据链路层传送的协议数据单元是帧。数据链路层的三个基本问题则是:封装成帧、透明传输和差错检测。
4.循环冗余检验CRC是一种检错方法,而帧检验序列FCS是添加在数据后面的冗余码。点对点协议 PPP是数据链路层使用最多的一种协议,它的特点是:简单;只检测差错,而不是纠正差错;不使用序号,也不进行流量控制;可同时支持多种网络层协议。
5.PPPoE是为宽带上网的主机使用的链路层协议。
6.局域网的优点是:具有广播功能,从一个站点可很方便地访问全网;便于系统的扩展和逐渐演变;提高了系统的可靠性、可用性和生存性。
7.共享通信媒体资源的方法有二:一是静态划分信道(各种复用技术),二是动态媒体接入控制,又称为多点接入(随机接入或受控接入)。
8.IEEE 802委员会曾把局域网的数据链路层拆成两个子层,即逻辑链路控制(LLC)子层(与传输媒体无关)和媒体接入控制(MAC)子层(与传输媒体有关)。但现在LLC子层已成为历史。
9.计算机与外界局域网的通信要通过通信适配器(或网络适配器),它又称为网络接口卡或网卡。计算机的硬件地址就在适配器的ROM中。
10.以太网采用无连接的工作方式,对发送的数据帧不进行编号,也不要求对方发回确认。目的站收到有差错帧就把它丢弃,其他什么也不做。
11.以太网采用的协议是具有冲突检测的载波监听多点接入 CSMA/CD。协议的要点是:发送前先监听,边发送边监听,一旦发现总线上出现了碰撞,就立即停止发送。然后按照退避算法等待一段随机时间后再次发送。因此,每一个站在自己发送数据之后的一小段时间内,存在着遭遇碰撞的可能性。以太网上各站点都平等地争用以太网信道。
12.传统的总线以太网基本上都是使用集线器的双绞线以太网。这种以太网在物理上是星形网,但在逻辑上则是总线形网。集线器工作在物理层,它的每个接口仅仅简单地转发比特,不进行碰撞检测。
13.以太网的硬件地址,即 MAC地址实际上就是适配器地址或适配器标识符,与主机所在的地点无关。源地址和目的地址都是48位长。
14.以太网的适配器有过滤功能,它只接收单播帧、厂广播帧叹多插颗。
15.使用集线器可以在物理层扩展以太网(扩展后的以太网仍然是一个网络)。
16.交换式集线器常称为以太网交换机或第二层交换机(工作在数据链路层)。它就是一个多接口的网桥,而每个接口都直接与某台单主机或另一个集线器相连,且工作在全双工方式。以太网交换机能同时连通许多对的接口,使每一对相互通信的主机都能像独占通信媒体那样,无碰撞地传输数据。
17.高速以太网有100 Mbit/s的快速以太网、吉比特以太网和10 Gbit/s的10吉比特以太网。最近还发展到100吉比特以太网。在宽带接入技术中,也常使用高速以太网进行接入。
参考资料
计算机网络第七版(谢希仁 编著)
王道考研 计算机网络