【笔记】《计算机网络系统方法》(by Larry L.Peterson)第二章 开始连接

本文详细探讨了如何将节点连接起来,包括机械、功能、电气和程序方面的问题。讲解了编码(NRZ、NRZI、曼切斯特、4B/5B)、组帧、差错检测、可靠传输等关键概念。还介绍了以太网、无线通信如802.11/Wi-Fi、蓝牙和蜂窝电话技术的工作原理。内容深入浅出,是理解网络连接技术的宝贵资料。

【问题】如何将两个节点连接起来?

如何将多个节点连接到ISP云中?

  • 需要考虑到的问题:
  1. Mechanical
  2. Functional
  3. Electrical
  4. Procedural

(本章就3、4进行讨论)

  • 节点能进行连接,首先要解决下列问题:
  1. 编码(encoding)
  2. 组帧(framing)
  3. 差错检测(error detection)
  4. 可靠传输
  5. 介质访问控制(media access control)

2.1 连接概览

  • 链路是能够传输信号的物理介质,但我们要传输的其实是比特。所以需要将比特进行编码,以便在物理介质中传输。
  • 香农-哈特雷定理:以每秒比特(bps)的形式给出一条链路容量的上限。
  •                  C=Blog_{2}(1+S/N)
  • C——可达到的信道容量,(单位:bps),B——用Hz表示的信道宽度,S——信号的平均功率,N——噪声的平均功率。
  • 构建高容量的链路的方法:提高带宽或提高信噪比。

链路分类:

(依据介质)

1.wire——> guided line

2.wireless——> unguided line

(依据使用方法)

  • last-mile links (最后一公里) 接入网。
  • ……

——》   链路类型多样性。

——》    网络协议利用这种多样性展现高层的一致性,无需考虑低层的复杂性细节。

 

所有链路都依赖于通过介质或自由空间传播的电磁波。

链路的另一个重要的属性:频率。

2.2 编码(NRZ、NRZI、曼切斯特、4B/5B)

  • 信号在物理链路上的传播需要:1)将源节点准备发送的二进制数据编码(encode)为链路能够传输的信号,2)然后在接收节点将信号解码(decode)成相应的二进制数据。
  • 信号可能对应着铜线链路上两个不用的电压或光纤链路上两个不同的能量级。
  • 网络适配器(network adaptor):将一个节点连接到链路上的硬件。网络适配器包含一个信令构件, 它在发送节点把比特编码为信号,在接收节点把信号解码为比特。

编码方案:

1.不归零(Non-Return to Zero,NRZ)

NRZ存在的问题

1)可能导致基线偏移(baseline wander)。

2)由高到低和由低到高的频繁转换必须使用时钟恢复信号(clock recovery)。——》接收方和发送方的始终必须精确同步,否则接收方就不能正确解码信号。

无论传什么数据,时钟回复都依赖于信号内由许多跳变。

解决方法:不归零反转。

2.不归零反转(Non-Return to Zero Inverted,NRZI):发送方将当前信号的跳变编码为1,将当前信号的保持编码为0。

——>解决了连续1的问题,但没有解决连续0的问题。

3.曼切斯特编码(Manchester encoding):通过传输NRZ编码数据与时钟的异或值使时钟与信号结合在一起。

将0作为由低到高的跳变,1作为由高到低的跳变。因为0和1 都导致信号的跳变,所以接收方能有效地恢复时钟。

(差分曼切斯特(differential Manchester)编码:曼切斯特编码的变种,若信号的前一半与后一比特信号的前一半相等,则编码为1,若信号的前一半与前一比特信号的后一半信号相反,则编码为0。

曼切斯特编码存在的问题:使链路上的信号跳变加倍,这意味着接收方有一半的时间在检测信号的每一个脉冲。

波特率(baud rate):信号变化的速率。

4.4B/5B:力求不扩大高信号或低信号的持续期而解决曼切斯特编码的低效问题。——4B/5B的思想是在比特流中插入额外的比特以打破一连串的0或1。

2.3 组帧

2.3.1 面向字节的协议

(BISYNC、PPP、DDCMP)

1.起止标记法:

1)BISYNCBinary Synchronous Communication ,二进制同步通信)协议采用起止标记法组帧。

(上图为BISYNC协议的帧格式。每个人字段上的数字表示所占的比特数。分组是从左段的字段开始传输的。

起始字符:(sentinel character ) BISYNC使用起始字符表示帧的开始与结束。

SYN——sychronization 同步字符

STX——start of text 正文开始字符

ETX——end of text  正文结束字符

SOH——start of header 首部开始字符

CRC——cyclic redundancy check 循环冗余校验

字符填充法(character stuffing) :采用“转义”的方法解决特殊字符可能出现在帧的数据部分的问题。

2)PPPPoint-to-Point Protocol,点对点协议):

 

2.字节计数法

在文件开始处包含文件中的项目个数。

3)DDCMP协议:

Count字段指明在帧体中包含多少字节。

这种方法的危险:在传输差错可能破坏技术字段,在这种情况下,也不能正确检测到帧的结束。

(如果ETX字段被破坏,类似的问题也存在于起止标志法中)

假如发生此类错误,接收方会累计错误的Count字段所指示的字节数,然后使用差错检测字段确定帧出错了(——组帧差错)

——》组帧差错可能会引起多个后续帧的错误接收。

2.3.2 面向比特的协议(HDLC)

面向比特的协议不关心字节的边界,只把帧看做比特的集合。

4)SDLC  (同步数据链路控制,Synchronous Data Link Control)协议。

就是面向字节的协议。(由IBM开发), 后来由OSI将它标准化为高级数据链路控制协议(High-Level Data Link Control, HDLC)

HDLC 用特定的比特序列:01111110表示帧的开始与结束。

 这个序列可能出现在帧体的任何位置(可以跨字节边界),所以面向比特的协议使用了类似DLE字符的方法,这种方法称为比特填充法(bit stuffing)。

比特填充法:

在发送方,任意时刻从消息体中发出5个连续的1后(发送方试图发送特别序列01111110除外),发送方在发送写一个比特之前插入一个0。在接收方,如果5个连续的1到达了,接收方根据它看到的写一个比特(即5个1后main的比特)做出界定。如果下一个比特是0,则一定是填充 的,接收方就把它去掉;如果下一个比特是1,则有两种情况,即帧结束标记或是比特流中出现差错。通过插卡下一个比特,接受方可以区别这两种情况:如果看到0(即最后8个比特为01111110),那么为帧结束标记;如果看到1,一定是出错了,需要丢弃整个帧。在后一种情形下,必须等到下一个01111110出现才能再一次开始接收数据,结果,接收方有可能连续两次接收帧失败。

比特填充法和字符填充法都有一个有趣的特性:一个帧的长度由帧的有效载荷中传送的数据决定。

2.3.3基于时钟的组帧(SONET)

以同步光纤网络(Synchronous Optical Network, SONET)标准为例。

SONET 不使用比特填充,帧的长度不依赖于传送的数据。

SONET的复杂性:a.SONET是在电信公司的光网上运行的,而不仅仅在一条单一链路上运行。b.SONET可提供更丰富的服务,而不仅仅是数据传输。

SONET帧的系统管理信息字节可用NRZ编码,为确保有足够是跳变使接收方获得发送方的时钟,有效载荷字节需混杂编码(scramble),通过计算被传输的数据与一个已知的比特模式的或(异或)来完成。

SONET支持多个低速链路的多路复用。

2.4差错检验

  • 差错检验码(error detecting code)

检错技术:

(1)循环冗余检验(Cycle Redundancy Check,CRC)

   [CRC应用广泛,几乎用在前面所有提到的链路协议中]。

(2)二维奇偶校验(two-dimensional parity)

    当BISYNC协议传输ASCII码字符时采用。(当传输EBCDI时用CRC)

简单的一维奇偶校验:把额外的1比特附加到7比特编码上。

二维奇偶校验:将每一个字节的每一比特位置进行类似的计算,每一个字节增加一个比特,且整个帧产生额外的奇偶校验字节。

(3)校验和(checksum)

     不在链路层使用,但在若干因特网协议中使用。

重传还是纠错?  看哪个代价更低。

2.5可靠传输(Reliable Transmission)

——当差错帧被丢弃时能够恢复这些被丢弃的帧。

通常有两种机制:

  • 确认(acknowledgement)——协议发送给对等实体一个小的控制帧(一个无任何数据的首部),告诉它已经收到刚才的帧。(但协议也可以将控制帧捎带(piggyback)在一个恰巧要发送给对方的数据帧上。
  • 超时(timeout)——若发送方发送后在一段时间内未收到确认,那么它重传(retransmit)原始帧。等待一段相当长的时间的动作称为超时。

使用确认和超时实现可靠传输的策略有时称为自动请求重发(Automatic Repeat Request,ARQ)。

2.5.1停止-等待

最简单的ARQ方案时停止-等待(stop-and-wait)算法。

  • 为解决重复传送帧:停止-等待协议的首部通常包含1比特序号,即序号可取0或1,并且每个帧交替使用序号,当发送方重传帧0时,接收方可确认它为帧0的第二个副本而不是帧1的第一个副本,因此可以忽略它。

  • 停止-等待算法的主要缺点:它允许发送方每次在链路上只有一个未确定的帧。最大发送速率仅仅为链路容量的1/8。
  • ——>为了充分利用链路,我们希望发送方在等待一个确认之前最多能够发送8帧。——>流水线协议-------->滑动窗口。

2.5.2滑动窗口

流水线协议——允许发送方在收到ACK之前连续发送多个分组,改变停等只能一次发一个帧,提高链路的利用率。

流水线协议需要更大的序列号范围、发送方和/或接收方需要更大的存储空间以缓存分组

滑动窗口:Sliding-window protocol,让发送方在第一个帧的ACK到达的同一时刻准备发送第九帧。

  • 序号(SeqNum,sequence number),发送方给每个帧赋予一个序号。
  • 发送方维护三个变量:1)SWS——发送窗口大小(send window size),给出发送方能够发送但未确认的帧书的上界;2)LAR——最近收到的确认帧(last acknowledgement received)的序号;LFS——最近发送的帧(last frame sent)的序号。
  • 发送方遵循下列不等式:LFS-LAR\leq SWS​​
  • 发送方必须最多能缓存SWS个帧。
  • 接收方维护按个变量:1)RWS——接受窗口大小(reseive windows size),给出能接收的无序帧的数目的上界;2)LAF——最大的可接收帧(largest acceptable frame)的序号;4)LFR——最后收到的帧(last frame receive)的序号。
  •               LAF-LFR\leq RWS
  • 滑动窗口的作用:1.通过不可靠的链路可靠地提交帧;2.保持帧传送的顺序;3.支持流量控制(通知发送者、接受者有多少帧的空间)。

窗口:允许使用的序列号范围、窗口尺寸为N:最多有N个等待确认的消息

滑动窗口:随着协议的运行,窗口在序列号空间内向前滑动

滑动窗口协议:GBN,SR。

GBN(Go-Back-N)协议

为空中的分组设置计时器(timer) 

超时(Timeout(n))事件:重传序列号大于等于n(窗口尺寸),还未收到ACK的所有的分组。——>可能造成资源浪费!

ACK机制:发送拥有最高序列号、已被正确接收的分组的ACK。

  • 可能产生重复的ACK
  • 只需要记住唯一的expectedseqnum

乱序到达的分组

  • 直接丢弃——>接收方没有缓存
  • 重新确认序列号最大的、按序号到达的分组

GBN的缺陷:在重传的时候可能重传很多分组(当某个分组n发生丢失,它会重传n以及n后面的所有分组),造成浪费,影响性能。

SR(Selective Repeat)协议

——>接收方对每个分组单独进行确认

  • 设置缓存机制,缓存乱序到达的分组。
  • 发送方只重传那些没有接收到的分组。
  • 每个分组有一个单独的定时器
  • SR与GBN相比:多了一个接收方窗口
  • 发送方窗口和接收方窗口不同步。

2.5.3并发逻辑信道

并发逻辑信道(concurrent logical channel)的ARPANET协议

 

(敲了好久发现没有保存下来,这部分内容不想重新敲了。。)

2.6以太网和多路访问网络(802.3)

2.6.2访问协议

2.地址:

世界上每一台主机都有一个唯一的以太网地址。

从技术上看,地址属于适配器而不是主机,通常固化在ROM中。

以太网适配器能接受所有的帧并传递:

1.编址为它自己地址的帧;

2.编址为广播地址的帧;

3.编织为 多播地址的帧,如果适配器在舰艇那个地址;

4.所有帧,如果适配器处于混杂(promiscuous)状态。

3.发送器算法

以太网是1-坚持(1-persistant)协议。

—— 以太网适配器在看到网络变为空闲时总是立发送的。

当发生网上冲突时:(以太网有冲突检测功能)

当适配器检测吃自己的帧与其他帧发生冲突时,它首先确保传输32位干扰序列,然后停止传输。也就是说,发送器在冲突的情况下至少发送96位:64位前同步码+32位干扰序列。(——只传输96位(也称为残缺帧,runt frame)发生在两台主机距离较近的情况下。)

以太网的帧长度必须至少为512位:

以太网的长度仅限在2500米:——为了访问算法起作用,时间必须控制在

因为两个节点相距越远,一个节点发送的帧到达另一个节点的时间越长网络越容易在这一段时间发生冲突。

两台主机之间最多有4个中继器。往返延迟是51.2us,在10Mbps以太网上对应512位。

2.6.1物理特性

 

2.6.2访问协议

2.6.3以太网使用经验

2.7无线

无线网络的挑战:如何有效共享资源。(因所有无线网络链路共享同一链路)

——>多数无线链路通过频率和空间维度划分实现共享的。

无线信道的分配是由政府机构决定的。特定的频段分配用作特定的用途。

由几个频段是免许可的。但利用免许可频段的设备还是要受到约束的,比如限制传输功率等。这样能保证它不打可能干扰到其他信号。

  • 扩频技术:当频谱在许多设备和应用间共享时的一种解决思路。其基本思路:在比正常范围更广的频段上传播信号,以减少来自其他设备的影响。
  • 扩频技术包括:(1)跳频(frequency hopping)——一种以随机频率序列传输信号的扩频技术。(这里的随机并不是真正的随机,是由伪随机数生成器生成的);(2)直接序列(direct sequence)——为更好地抗干扰而增加冗余。所传输的值是一个n比特切片编码(n-bit chipping code),它通过n倍于帧所需要带宽的频带传播信号。

 

 

基站的拓扑:

无线网络中的两类端节点:

基站(base station):通常不移动,但有线路(至少高带宽)连接到因特网或其他网络。

非基站节点:另一端的节点通常是移动的,并且依靠于基站的连接实现与其他节点的通信。

 

无线通信的特点:

它自然支持点到多点的通信。

 

普通的基站模型不允许非基站(客户)节点之间直接通信(一般是通过基站进行路由的)。

上述的拓扑具有三种不同级别的移动性:

第一级:不移动。

第二级:在基站范围移动;

第三极:基站之间移动。

 

另一种无线网络拓扑:网格(mesh)或自组织(ad hoc);

2.7.1 802.11/Wi-Fi

无线网络协议与以太网的不同:

以太网的节点在接受其他节点的传输时,能够同时发送数据,而无线网络的节点不具备这一特性。这使得在无线网络中的冲突检测非常复杂。

802.11的冲突检测:CSMA/CA

RTS-CTS(请求发送-清除发送)机制    ——>   一定程度上解决隐藏终端问题。

 

802.11适合网格的网络拓扑。但是当前802.11网络都使用基站的拓扑。

 

接入点(access point,AP)通过分布式系统彼此连接。

分布式网络运行在链路层(与无线链路在同一层)——它不依赖于任意高层协议

每个节点与各自的一个接入点相联系,实现彼此可达(直接通信)。

802.11的帧格式——特别之处:包括四个地址而不是两个。

2.7.2蓝牙

蓝牙运行在2.45GHz的免许可频段,链路典型带宽为1~3Mbps,有效范围大约为10m。有时被归类为个人区域网络(PAN,personal area network)。

扩频技术:跳频

2.7.3蜂窝电话技术

蜂窝电话技术

起源:声音通信。

缺点:用户使用成本高,(原因:蜂窝使用许可的频段)用于蜂窝的频段在世界各地是不同的。

 

蜂窝技术依赖对基站的使用,基站是有限网络的一部分。

由一个基站天线负责的地理区域称为一个蜂窝(cell)。

一个基站可以为一个蜂窝服务。或利用多个方向上的天线为多个蜂窝服务。

蜂窝没有明确的边界,它们彼此重叠。在重叠之处一部移动电话可以与多个基站通信。

但一部电话在任何时刻仅能与一个基站通信,且受限于该基站。

切换:当一个移动电话离开一个蜂窝时,它移动到由一个或多个蜂窝重叠的区域。当前的基站感觉到该电话的信号越来越弱,将对该电话的控制交给收到最强信号的基站。如果此时该电话有一个呼叫,该呼叫必须由新基站传递,这称为切换(handoff)。

蜂窝通信没有唯一的标准,而是以不同的方式,不同的传输速度支持数据通信的竞争技术集合。这些技术被松散地划分为代(generation)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值