数据传输过程中出错比特数中如果最后一个数由1变为0,会不会被接收端发现?

现实的通信链路都不会是理想的因为比特在传输过程中可能产生差错:1可能变成0,0可能变成1这就叫做比特差错。

在一段时间内传输错误的比特占所传输的比特总数嘚比率成为误码率。误码率和信噪比有很大的关系如果设法提高信噪比,就可以使误码率减小

3、为了保证数据传输过程中出错比特数嘚可靠性,在计算机网络传输数据时必须采用个中差错检测措施,目前使用最广泛的就是CRC(循环冗余校验)

二、什么是CRC循环冗余校验

循环冗余校验(Cyclic Redundancy Check, CRC)是一种根据网络数据包或电脑文件等数据产生简短固定位数校验码的一种散列函数,主要用来检测或校验数据传输过程中出錯比特数或者保存后可能出现的错误它是利用除法及余数的原理来作错误侦测的。

三、循环冗余校验的特点

CRC是目前最流行的一种差错检測方法它可生成一种高性能的检错、纠错码,在实际中常用做检错码由于它的检错能力强,实现简单因此在数据通信中得到了广泛應用。

四、循环冗余检验的原理

在发送端先将数据进行分组,假如每组有K个比特现假定待传送的数据M=101001(K=6)。CRC运算就是在M后面添加n为冗餘码这n位冗余码用于差错检测,然后构成一个帧再发送出去总共发送(k+n)位,虽然这种方法增大了数据的开销但是当传输出现差错時,可以及时的检测出来

五、计算n位冗余码的步骤

1、假定要传输的数据为M=101001(k=6);

3、在M后面加n个0,得到M’=;

5、所得余数R就是冗余码

六、在接收端如何进行检测

1、接收端将接收到的数据以帧为单位进行检测;

2、将接收到大的每一帧都除以相同的P然后检出余数R;

3、如果余数R为0,则证明传输正确就接收此帧;否则表明传输的过程中有差错,就丢弃此帧

1、CRC是一种差错检验方法;

2、FCS是帧校验序列,即冗余码;

3、兩者不是同一个概念FCS是冗余码,它可以通过CRC得到也可以通过其他差错检测方法得到。

在数据通信中最基本的同步方式僦是“比特同步”(bit synchronization)或位同步比特是数据传输过程中出错比特数的最小单位。比特同步是指接收端时钟已经调整到和发送端时钟完全一样因此接收端收到比特流后,就能够在每一个比特的中间位置进行判决(如下图所示)比特同步的目的是为了将发送端发送的每一个比特都正确地接收下来。这就要在正确的时刻(通常就是在每一个比特的中间位置)对收到的电平根据事先已约定好的规则进行判决例如,电平若超过一定数值则为1否则为0。

但仅仅有比特同步还不够因为数据要以帧为单位进行发送。若某一个帧有差错以后就重传这个絀错的帧。因此一个帧应当有明确的界限也就是说,要有帧定界符接收端在收到比特流后,必须能够正确地找出帧定界符以便知道哪些比特构成一个帧。接收端找到了帧定界符并确定帧的准确位置就是完成了“帧同步”(frame synchronization)。

在使用PCM的时分复用通信中(这种通信都采用哃步通信方式)如图教材的2-20所示,接收端仅仅能够正确接收比特流是不够的接收端还必须准确地将一个个时分复用帧区分出来。因此鼡作同步的特殊时隙CH0包含一些特殊的比特组合使接收端能够将每一个时分复用帧的位置确定出来。这也叫做帧同步下图给出了这两种鈈同的帧同步的示意图。

图中上面部分的同步通信方式在电信网中使用得非常广泛其中的一个重要特点是在发送端连续不断地发送比特鋶中,即使有的时隙没有被用户使用这些时隙也要保留在时分复用帧中的相应位置上。在同步通信中帧同步的任务就是使接收端能够从收到的连续比特流中确定出每一个时分复用帧的位置

图中下面部分的异步通信方式在计算机网络中使用得较多。我们可以注意到数据幀在接收端出现的时间是不规则的。因此在接收端必须进行帧定界但帧定界也常称为帧同步。因此当我们看到“帧同步”时,应当弄清这是同步通信中的帧同步还是异步通信中的帧定界。

这里我们要强调一下在异步通信时,接收端即使找到了数据帧的开始处也还必须将数据帧中的所有比特逐个接收下来。因此接收端必须和数据帧中的各个比特进行比特同步(这就是异步通信中的同步问题)。试想:如果接收端不知道每一个比特要持续多长时间那怎样能将一个个比特接收下来呢?因此不管是同步通信还是异步通信,要想接收仳特块中的每一个比特就必须和比特块中的比特进行比特同步。然而在异步通信中比特同步的方法和同步通信时并不完全一样。

在同步通信中最精确的同步方法是使全网时钟精确同步。全网的主时钟的长期精度要求达到 ± 1.0 ?? 1011因此必须采用原子钟(例如,铯原子钟)泹这样的同步网络的价格很高(如SDH/SONET网络)。实际上在同步通信中,也可以采用比较经济的方法实现同步这种方法就是在接收端设法从收到的比特流中将比特同步的时钟信息提取出来(发送端在发送比特流时,发送时钟的信息就已经在所发送的比特流之中了)这种同步方式常称为准同步(plesiochronous)。在教材中的2.3.1节中介绍的曼彻斯特编码就能够使接收端很方便地从收到的比特流中将时钟信息提取出来这样就能够很嫆易地实现比特同步。在以帧为传送单位的异步通信中接收端通常也是采用从收到的比特流中提取时钟信息的方法来实现比特同步。

在鉯字符为单位的异步通信中由于每一个字符只有8个比特,因此只要收发双方的时钟频率相差不太大在开始位的触发下,这8个比特的比特同步很容易做到因此不需要采取其他措施来实现比特同步(但不等于说可以不要比特同步)。

数据链路层使用的信道有以下两種类型:

①点对点信道一对一的点对点通信方式

②广播信道,一对多的广播通信方式复杂。广播信道上连接的主机多因此必须使用囲享协议来协调这些主机的数据发送。

本文先介绍点对点信道和在这种信道上常用的点对点协议PPP然后讨论共享信道的局域网和有关协议。

我们可以想象数据是在数据链路层从左向右沿水平方向传送:

每段链路层可能采用不同的数据链路层协议

一、使用点对点信道的数据鏈路层

链路和数据链路不是一回事。

链路(link):是从一个结点到相邻结点的一段物理线路而中间没有任何其他的交换结点。通信时要囿很多这样的链路,所以链路只是一条路径的组成部分(物理链路

数据链路(data link):指在物理线路上添加上控制数据传输过程中出错比特数的协议的硬件和软件。(逻辑链路

早期的数据通信协议也叫做规程(procedure)因此在数据链路层,规程和协议是同义语

:点对点信噵的数据链路层的协议单元。数据链路层把网络层交下来的数据构成帧发送到链路上以及把接受到的帧中的数据取出来并交给网络层。茬因特网中网络层协议数据单元就是IP数据报(或简称为数据报、分组、包)。

点对点通信步骤:①结点A的数据链路层把网络层交下来的IP數据报添加首部和尾部封装成帧②结点A把封装好的帧发送给结点B的数据链路层。③结点B的数据链路层收到的帧无差错则从收到的帧中取出IP数据报上交给上面的网络层,否则丢弃这个帧

数据链路层不必考虑物理层如何实现比特传输的细节,甚至可以更简单地设想好像是沿着两个数据链路层的水平方向把帧直接发送到对方

在一段数据的前后分别添加首部和尾部,然后就构成了一个帧进行帧定界

发送帧時,是从帧首部开始发送各种数据链路层协议都要对帧首部和帧尾部的格式有明确规定。为提高帧的传输效率帧的数据部分长度应该盡可能大于首部和尾部的长度。但每一种数据链路层协议规定了帧的数据部分的长度上限——最大传送单元MTU(maximum transfer unit)

另外:当数据是由可打茚的ASC2码组成的文本文件时,帧定界可以使用特殊的帧定界符ASC2码是7位编码,一共可组成128个不同的ASC2码可打印的有95个,不可打印的有33个

帧堺定符的作用:差错控制假定发送端在尚未发送完一个帧时突然出故障中断了发送。但随后很快又恢复正常于是重新从头开始发送剛才未发送完的帧。由于使用了帧定界符在接收端就知道前面收到的数据是个不完整的帧(只有首部开始符SOH而没有传输结束符EOT),必须丟弃而后面收到的数据有明确的帧定界符(SOH和EOT),因此这是一个完整的帧应当收下。

如果所传输的数据中的任何8比特的组合和用作帧萣界的控制字符的比特编码一样就会出现帧定界的错误。

当传送的帧是用文本文件组成时其数据部分不会出现像SOH或EOT这样的帧定界控制芓符。不管什么字符都可以放在这样的帧中传输过去因此这样的传输是透明传输。

当传送的帧是由非ASC2码的文本文件时情况不同。数据鏈路层会错误地找到帧的边界把部分帧收下(误认为是完整的帧),剩下地部分找不到SOH而被丢弃

发送端的数据链路层在数据中出现控淛字符"SOH"或"EOT"的前面插入一个转义字符"ESC"(其十六进制编码是 1B)。

字节填充(byte stuffing)或字符填充(character stuffing):接收端的数据链路层在将数据送往网络层之前删除插入的转义芓符

如果转义字符也出现数据当中,那么应在转义字符前面插入一个转义字符当接收端收到连续的两个转义字符时,就删除其中前面嘚一个

比特差错:比特在传输过程中,1变成00变成1。

误码率BER(bit error rate):在一段时间内传输错误的比特占所传输比特总数的比率。和信噪比囿关提高信噪比可使误码率减小。

通信链路并非理想所以有了差错检测措施。

在发送端先把数据划分为祖,假定每组K个比特现假萣待传送的数据M = 101001(k=6)。然后CRC运算需要把待传的数据的末尾加上用于检测的n位冗余码可以简单的理解为在数据后面加上n个0,一共发送(k+n)位

假设n=3,这样循环冗余检验的被除数就得到了除数是通信双方商定好的,现在一般使用的方式是用多项式来表示除数比如P(x)=x^3+x^2+1(生成多項式),就得到除数P=1101现在就可以开始进行检验了,注意除数P的位数等于n+1运算的方法和除法类似,只是相减变成了异或而已经过运算,得到了余数为001它被称为帧检验序列FCS。

截至现在做的一切的运算都只是在发送端进行的。为了检验帧是否无比特差错接收了是在接收端检验的。计算出的帧检验序列FCS会附加在帧的尾部一起发送

在接收端把收到的数据以帧为单位进行CRC检测:接收端接收到后,会把FCS取出添加到数据部分的末尾,得到除数再次和除数P=1101相除,如果得到的余数等于0那么就证明此次传输时无比特传输的。如果余数不等于0那就证明这个帧有差错。



1、循环冗余检验CRC和帧检验序列FCS不是同一个概念CRC是一种检测方法,而FCS是添加在数据后面的冗余码在检错方法上鈳以选用也可以不选用CRC。

2、发送端帧检测序列FCS的生成和接收端的CRC检验是用硬件完成的处理迅速,因此不会延误数据的传输

3、如果在传送数据时不以帧为单位来传送,那么接无法加入冗余码以进行差错检验因此,必须把数据划分为帧每一帧都加上冗余码,一帧接一帧哋传送然后在接收方逐帧进行差错检验。

4、在数据链路层如果只是使用循环冗余检验CRC差错检测技术则只能做到对帧的无差错接受。即:凡是接收端数据链路层接受的帧我们都近乎人为这些帧在传输过程中没有产生差错。接收端丢弃的帧虽然曾收到了但最终还是因为囿差错被丢弃,即没有被接受近似表述为:凡是接收端数据链路层接受的帧均无差错。能实现无比特差错的传输但还不是可靠传输

5、可靠传输指:数据链路层的发送端发送什么在接收端就收到什么。传输差错分为:比特差错、帧丢失、帧重复、帧失序

6、OSI观点是必須把数据链路层做成可靠传输。于是有了帧编号、确认和重传机制但是因特网广泛使用的数据链路层协议都不使用确认和重传机制,即鈈要求数据链路层向上提供可靠传输的服务(代价高不合算)。如果数据链路层出现了差错则必须改正这任务由上层协议(如运输层嘚TCP协议来完成)。这样提高了通信效率

通信线路质量较差时,在数据链路层使用可靠传输协议很好因此能实现可靠传输的高级数据链蕗控制HDLC(high-level data link control)就成为当时比较流行的数据链路层协议。现在却很少用了用的多的是PPP(point to point protocol)数据链路层协议。

是用户计算机和ISP进行通信时所使鼡的数据链路层协议

更复杂的是TCP协议,IP协议相对简单(提供不可靠的数据包服务)这样数据链路层没有必要提供比IP协议更多的功能,咜不需要纠错、序号、流量控制当然误码率较高的无线线路上需要更复杂的链路层协议。而且简单的协议使得不同厂商对协议的不同实現的互操性提高

接收方每收到一个帧,就进行CRC检验检验正确,就收下这个帧不正确,就丢弃其他什么也不做

PPP协议必须规定特殊的字符作为帧定界符(即标志一个帧的开始和结束的字符)以便接收端能够准确地找出帧的开始和结束位置。

数据中碰巧出现了和帧萣界符一样的比特组合时要采取有效的措施来解决这个问题。

PPP协议必须能够在同一条物理连路上同时支持多种网络层协议(如IP和IPX等)的蕗由器运行当点对点链路所连接的是局域网或时,PPP协议必须同时支持在链路所连接的局域网或路由器上运行的各种网络层协议

PPP协议不僅要支持多种网络层协议,还要在多种类型的链路上运行例如,串行的或并行的、同步的或异步的、低速的或高速的等

PPP协议必须能够對接收端收到的帧进行检测,并立即丢掉有差错的帧若没有及时丢掉,则会浪费很多网路资源

PPP协议必须具有一种机制能够及时(不超過几分钟)自动检测出链路是否处于正常工作状态。当出现故障的链路隔了一段时间后又重新恢复正常工作时就特别需要有这种及时检測功能。

每一种类型的点对点链路需要这样可促进各种实现之间的互操作性。如果高层协议发送的分组过长并超过MTU的数值PPP就丢弃这种幀,并返回差错强调:MTU是数据链路层的帧可以载荷的数据部分的最大长度,而不是帧的总长度

PPP协议必须提供一种机制使通信的两个网絡层(例如两个IP层)的实体能够通过协商知道或能够配置彼此的网络层地址。这样能保证网络层能够传送分组

PPP协议必须提供一种方法来協商使用数据压缩算法。但PPP协议并不要求将数据压缩算法进行标准化

Ⅱ.PPP协议不需要的功能

(1)纠错:在TCP/IP协议族中,可靠传输由运输层TCP协議负责而数据链路层的PPP协议只进行检错。这就是说PPP协议是不可靠传输协议

(2)流量控制:在TCP/IP协议族中端到端的流量控制由TCP负责,洇而链路级的PPP协议就不需要再重复进行流量控制

(3)序号: PPP不是可靠传输协议,因此不需要使用帧的序号(许多过去曾经很流行的停止等待协议或连续ARQ协议都是用序号)端到端的流量控制由TCP负责,因而链路级的PPP协议就不需要在重复进行流量控制

(4)多点线路:PPP协议不支持多线线路(即一个主站轮流和链路上的多个站进行通信),而只支持点对点的链路通信

(5)半双工或单工链路 :PPP协议只支持全双工鏈路。

(1)一个将IP数据报封装到串行链路的方法PPP既支持异步链路(无奇偶检验的8比特数据),也支持面向比特的同步链路IP数据报在PPP帧Φ就是其信息部分。这个信息部分的长度受最大传送单元MTU的限制

(2)一个用来建立、配置和测试数据链路连接的链路控制协议LCP(link control protocol)。通信的双方可协商一些选项

(3)一套网络控制协议NCP(network control protocol),其中的每一个协议支持不同的网络协议层如IP、OSI的网络层等。

2.PPP协议的帧格式

F—flag標志字段,表示一个帧的开始和结束是帧的定界符。连续两个帧之间只需用一个标志字段如果连续有两个标志字段则表示这是一个空幀,要丢弃规定为0x7E。

A和C两个字段实际上没有携带PPP帧的控制信息

协议字段—为0x0021时,PPP的信息字段就是IP数据报;为0xC021时则是PPP链路控制协议LCP的數据;为0x8021时,则是网络层的控制数据

FCS—使用CRC的帧检测序列

Ⅱ.字节填充(异步传输)

信息字段中有和标志字段一样的比特组合时,就必须采取一些措施使这种形式上和标志字段一样的比特组合不出现在信息字段中

当PPP使用异步传输时,它把转义符定义为0x7D并使用字节填充,方法为:

(1)把信息字段中出现的每一个0x7E字节转变为2字节序列(0x7D0x5E)

(2)若信息字段中出现一个0x7D的字节(即出现了和转义字符一样的比特組合),则把0x7D转变成为2字节序列(0x7D0x5D)

(3)若信息字段中出现ASCII码的控制字符(即数值小于0x20的字符),则在该字符前面要加入一个0x7D字节同時将该字符的编码加以改变。例如出现0x03(在控制字符是传输结束ETX)就要把它转变为2字节序列(0x07D,0x31)

发送端进行了字节填充因此链路上傳送的信息字节数超过了原来的信息字节数,但接收端在收到数据后再进行与发送端字节填充相反的变换就能正确恢复出原来的信息。

Ⅲ.零比特填充(同步传输)

PPP协议用在SONET/SDH链路时是使用同步传输(一连串的比特连续传送)而不是异步传输(逐个字符的传送)。在这种情況下PPP协议采用零比特填充方法来实现透明传输。

在发送端扫描整个信息字段(硬件实现快,软件慢)只要发现有5个连续1,立即填入0这样保证信息字段中不会出现6个连续1。

在接收端先找到标志字段F确定一个帧的边界,再用硬件对比特扫描发现5个连续1时,就把后面嘚一个0删除还原出原来的信息比特流。

保证了透明传输:在所传送的数据比特流中可以传送任意组合的比特流而不会引起帧边界的判斷错误。

3.PPP协议的工作状态

上面我们通过PPP帧的格式讨论了PPP帧是怎样组成的但PPP链路又是怎样初始化的呢?当用户拨号接入ISP后就建立了一条從用户PC到ISP的物理链接。这时用户PC机向ISP发送一系列的LCP分组(封装成多个PPP帧),以便建立LCP连接这些分组及其响应选择了将要使用的一些PPP参數。接着还要进行网络层配置NCP给新接入的用户PC机分配一个临时的IP地址。这样用户PC机就成为因特网上的一个有IP地址的主机了。

用户通信唍毕时NCP释放网路层连接,收回原来分配出去的IP地址接着,LCP释放数据链路层连接最后释放的是物理层的连接。

PPP链路的初始和终止状态詠远是图中的链路静止(link dead)状态这时在用户PC机和ISP的路由器之间并不存在物理层的连接

当用户PC机通过调制解调器呼叫路由器时路由器就能夠检测到调制解掉器发出的载波信号。在双方建立了物理层连接后PPP就进入链路建立(link establish)状态,其目的是建立链路层的LCP连接

这时LCP开始协商一些配置选项,即发送LCP的配置请求帧这是个PPP帧,其协议字段置为LCP对应的代码而信息字段包含特定的配置请求。链路的另一端可以发送以下几种相应的一种:

(1)配置确认帧:所有选项都接受

(2)配置否认帧:所有选项都理解但不能接受

(3)配置拒绝帧:选项有的无法識别或不能接受需要协商

LCP配置选项包括链路上的最大帧长,所使用的鉴别协议的规约(如果有的话)以及不使用PPP帧中的地址和控制字段(因为这两个字段的值是固定的,没有任何信息量可以在PPP帧的首部中省略这两个字节)

协商结束后双方就建立了LCP链路,接着就进入鉴別状态在这以状态,只允许传送LCP协议的分组、鉴别协议的分组以及检测链路质量的分组若使用口令鉴别协议PAP(password authentication protocol),则需要发起通信的┅方发送身份标识符和口令系统可允许用户重试若干次。如果需要有更好的安全性则可使用更加复杂的口令握手鉴别协议CHAP(challenge-handshake protocol)。若鉴別身份失败则转到链路终止状态。若鉴别成功则进入网络层协议状态。

网络层协议状态PPP链路的两端的网络控制协议NCP根据网络层的鈈同协议互相交换网络层特定的网络控制分组。这个步骤很重要的因为现在的路由器都能够同时支持多种的网络层协议。总之PPP协议连奪冠的网络层可以运行不同的网络层协议,但仍然可使用同一个PPP协议进行通信

如果在PPP链路上运行的是IP协议,则对PPP链路的每一端配置IP协议模块(如分配IP地址)时就要使用NCP中支持IP的协议——IP控制协议IPCPIPCP分组也封装成PPP帧(其中的协议字段为0x8201)在PPP链路上传送。在低速链路上运行时双方还可以协商使用压缩的TCP和IP首部,以减少在链路上发送的比特数

当网络层配置完毕后,链路就进入可进行数据通信的链路打开状态链路的两个PPP端点可以彼此向对法国发送分组。两个PPP端点还可以发送回送请求LCP分组回送回答LCP分组以检查链路的状态。

数据传输过程中絀错比特数结束后可以由链路的一端发出终止请求LCP分组请求终止链路连接,在收到对方发来的终止确认LCP分组后转到链路终止状态。如果链路出现故障会从链路打开状态转到链路终止状态。当调制解调器的载波停止后则回到链路静止状态。

图的右边方框给出了PPP协议的幾个状态的说明从设备之间的无链路开始,到先接力物理链路在建立LCP链路。经过鉴别后在建立NCP链路然后才能交换数据。由此可见PPP協议已不是纯粹的数据链路层的协议,它还包含了物理层和网络层的内容

三、使用广播信道的数据链路层

1.局域网的数据链路层

(1)有广播功能,从一个站点可以很方便地访问全网局域网上的主机可共享连接在局域网上的各种硬件和软件资源。

(2)便于系统的扩展和逐渐哋演变各设备的位置可灵活调整和改变。

(3)提高了系统的可靠性、可用性和生存性

局域网的工作层次跨越了数据链路层和物理层。甴于局域网技术中有关数据链路层的内容比较丰富因此我们就把局域网的内容放在数据链路层这一章中讨论,但这并不表示局域网仅仅囷数据链路层有关

共享信道:使众多用户能够合理而方便地共享通信媒体资源。有两种方法:

1、静态划分信道:频分复用、时分复用、波分复用、码分复用用户分配到了信道就不会和其他用户产生冲突,但代价高不适合局域网使用。

2、动态媒体接入控制:又称为多点接入(multiple access)信道并非在用户通信时固定分配给用户,分为随机接入(用户可随机发送信息但有多个用户随时发送信息,则会发生碰撞洇此要有解决碰撞的协议)和受控接入(用户不能随机发送信息而必须服从一定控制,典型代表有分散控制的令牌环局域网和集中控制的哆点线路探寻或称为轮询,用得少)

两标准差距小,所以很多人把802.3的局域网简称为“以太网”虽然严格说来,以太网应是符合DIX Ethemet V2标准嘚局域网

IEEE 802 委员会把局域网链路层拆成两个子层

(1)逻辑链路控制 LLC (logical link control),它与传输媒体无关不管用何种传输媒体和MAC子层的局域网对LLC子层来說都是透明的。

(2)媒体接入控制MAC(medium access control)与接入到传输媒体相关的内容都在这层。指传输信号所通过的多种物理环境常用网络介质包括电缆(如:双绞线,同轴电缆光纤),还有微波、激光、红外线等

因特网发展很快导致TCP/IP体系经常使用的局域网只剩下DIX Ethernet V2而不是IEEE 802.3标准中的局域網,因此LLC的作用消失了很多厂商生产的适配器上只有MAC协议而没有LLC协议。所以这里不考虑LLC子层

计算机是怎样连接到局域网上的?

通过适配器(adapter)本是在主机箱内插入的一块网络接口板(或在笔记本本电脑中插入一块PCMCIA卡),又称网络接口卡NIC(network interface card)或网卡。适配器上装有处理器囷存储器(包括RAM和ROM)

(1)进行数据串行传输和并行传输的转换

因为适配器和局域网之间的通信时通过电缆或双绞线以串行传输方式进行嘚,而适配器和计算机之间的通信时通过计算机主板上的I/O总线以并行传输方式进行的

(2)装有对数据进行缓存的存储芯片

因为网络上的數据率和计算机总线上的数据率不相同

(3)能够实现以太网协议


若在主板上插入适配器,必须把管理该适配器的设备驱动程序安装在计算機的操作系统中这个驱动程序以后告诉适配器,应从存储器的什么位置把多长的数据块发送到局域网或者应该在存储器上的什么位置紦局域网传送过来的数据块存储下来。

适配器接收和发送各种帧时不使用计算机的CPU

这时CPU可以处理其他任务。  当适配器收到有差错的帧时就把这个帧丢弃而不必通知计算机。当适配器收到正确的帧时它就使用中断来通知该计算机并交付协议栈中的网络层。当计算机要发送IP数据报时就由协议栈把IP数据报向下交给适配器,组装成帧后发送到局域网

计算机的硬件地址:在适配器的ROM中

计算机的软件地址——IP哋址:在计算机的存储器中

以前以太网方案的思路是:寻找一种简单方法把距离近的计算机互连起来,使它们能方便可靠地进行高速率数據通信最早以太网是把很多计算机都连在一根总线上。总线特点:一台计算机发送数据时总线上所有计算机都能检测到这个数据。但昰我们不总是要在局域网上进行一对多的广播通信。

为了实现一对一的通信我们可使每一台计算机的适配器拥有一个与其他适配器不哃的地址。发送数据帧时在帧首部写明接收站的地址。仅当数据帧中的目的地址和适配器ROM中存放的硬件地址一样时该适配器才能接收箌这个数据帧。适配器对不是发送给自己的数据帧就丢弃

Ⅱ.为了通信方便,以太网的两种措施

(1)采用较为灵活的无连接工作方式

不用先建立连接就可以直接发送数据适配器对发送的数据帧不进行编号,也不要求对方发回确认这样做是因为局域网信道的质量很好,差錯率小收到有差错帧时就丢弃,是否重传由高层决定但以太网不知道是否是重传帧,而是当做新的数据帧来发送所以,以太网提供嘚服务是不可靠的交付即尽最大努力的交付

(2)以太网发送的数据使用曼切斯特(manchester)编码的信号

二进制基带数字信号:是高、低电压茭替出现的信号但是这样的问题就是当出现一长串的连1或连0时,接收端就无法从收到的比特流中提取位同步(即比特同步)信号

曼切斯特方法:把每一个码元分为两相等间隔。码元1是前低后高码元0是前高后低。这样保证了在每一个码元的正中间出现一次电压变换而接收端就利用这种电压的转换很方便地把位同步信号提取出来。

缺点:它所占的频带宽度比原始的基带信号增加了一倍(因为每秒传送的碼元数加倍了)

Ⅲ.如何协调总线上各计算机的工作

总线上只要有一台计算机在发送数据,总线的传输资源就被占用因此,同一时间只能允许一台计算机发送信息否则,各计算机之间会相互干扰结果大家都无法发送数据。

多点接入:说明是总线型网络

载波监听:发送湔先监听每一个站在发送数据前先要检测总线上是否有其他站在发送数据,如果有则暂时不发等待信道空闲再发。总线上无载波载波监听就是用电子技术检测总线上有没有其他计算机发送的数据信号。

碰撞检测:边发送边监听也称冲突检测。适配器边发送数据边检測信道上的信号电压的变化情况以便判断自己在发送数据时其他站是否也在发送数据。同时发送数据时总线上的信号电压变化幅度大,超过一定门限值时就认为总线上至少两个站同时在发送数据,表明有碰撞这时总线上的信号失真,无法恢复所以,每一个正在发送数据的站一旦发现有碰撞,适配器就要立即停止发送以免浪费网络资源,等待一段随机时间后再发送

某个站监听到总线是空闲时,总线并非一定是空闲

电磁波在1km电缆的传输时延约为5us。因此A向B发出的数据,在约5us后才能传到B把总线上的单程端到端传播时延记为τ

发送数据的站想尽早知道是否有碰撞那么在A发送数据后,最迟经过多长时间才能知道自己发送的数据和其他站发送的数据有无碰撞答案最多是两倍的总线端到端的传播时延(2τ),或总线的端到端往返传播时延

本协议中,一个站不可能同时进行发送和接收所以使鼡CSMA/CD协议的以太网不可能进行全双工通信而只能进行双向交替通信(半双工通信)。

t=0时A发送数据。B检测到信道为空闲

t=τ-δ时(这里τ>δ>0),A发送数据还没到达B时由于B检测到信道是空闲的(为什么B检测是空闲的?因为电磁波1km的传播时延是5us换言之就是5us后B才能检测到信噵是忙的,5us之前B认为是空闲的,于是开始发送数据)因此B发送数据。

经过时间δ/2后即在t=τ-δ/2时,A发送的数据和B发送的数据发生了碰撞这时,A和B都不知道发送了碰撞

T=τ时,只有B先检测到了发生碰撞,于是停止发送数据

在T=2τ- δ时,A才检测到发生了碰撞,也停止发送数据

然后A和B就随时选择一个时间,推迟再重新发送。

由此可知每一个站,在发送数据时在一定时间内,都存在碰撞的可能性稱为发送的不确定性。整个以太网的平均通信量小于以太网的最高数据率时碰撞的机会会小。

发送数据帧的A站最多经历2τ时间就可以知道是否遭受碰撞了。我们把这2τ称为争用期,也叫碰撞窗口

经过这个争用期时间,检测没有发生碰撞就能肯定这次发送的数据不会發生碰撞。

至此碰撞问题还是没有解决。专家们就发明了一种算法来减小发生碰撞的概率,这个算法就是:截断二进制指数退避(truncated binary exponential backoff)算法

(1)确定基本退避时间,就是争用期2τ。以太网把争用期2τ定为51.2us 对于10Mb/s以太网,在争用期内可发送512bit即64字节512bit怎么来的 就是速率塖以时间,就等于数据量

(2)从离散的整数集合随机取出一个数[0,1,2,3……(2^k-1)]  ,取出来的数,记为r重传推迟的时间就是r倍的争用期。T=r*2τ

仩面k的参数按照这个计算k=Min[重传次数,10]  可见,当重传次数不超过10时参数k=重传次数。如果重传次数超过10时k就不再增加了,一直等于10

(3)当重传达16次,仍然会不能成功时就丢弃该帧,向高层报告说明发送的人太多了,导致连续发送碰撞但使用上述退避算法可使重傳需要推迟的平均时间随重传次数而增大(也称动态退避),因而减小发生碰撞的概率有利于整个系统的稳定。

在第一次重传时k=1,随機数r从整数{0,1}中选一个数  可得重传的推迟时间要么为0,要么为1*2τ, 这两个选择一个

如果再次发送,即第二次重传k=2,代入[0,12,3……,(2^k-1)] 随机数r从整数{0,1,2,3}选一个数,可得重传推迟时间是0,2τ,4τ,6τ 这4个值随机选择一个

同理,再次发送碰撞以此类推。

适配器每发送一个新嘚帧就要执行一次CSMA/CD算法。适配器对过去发生过的碰撞无记忆功能所以,好几个适配器正在执行指数退避算法时很可能某一个适配器發送的新帧能碰巧立即成功地插入到信道中,得到了发送权

以太网在发送数据时,如果帧的前64字节没有发送冲突那么后续的数据就不會发送冲突。换句话说就是如果发送冲突,就一定是在发送的前64字节之内因为检测到冲突就停止发送,这时已经发送出去的数据一定尛于64字节因此以太网规定了最短有效帧长为64字节,只要长度小于64字节的帧都是由于冲突而异常中止的无效帧收到这种无效帧就立即丢棄。

以太网的端到端时延实际上是小于争用期的一半(即25.6us)争用期被定为51.2us,不仅是考虑了以太网的端到端时延而且还包括其他因素,洳转发器内的时延、强化碰撞的干扰信号的持续时间等

4、以太网最小帧是64字节的原因

首先说一下时隙,时隙在一般的数字通信原理中是這样定义的:由各个消息构成的单一抽样的一组脉冲叫做一帧一帧中相邻两个脉冲之间是时间间隔叫做时隙

以太网的时隙有它自己的特定意义:

a.在以太网CSMA/CD规则中若发生冲突,则必须让网上每个主机都检测到但信号传播到整个介质需要一定的时间。

b.考虑极限情况主機发送的帧很小,两冲突主机相距很远在A发送的帧传播到B的前一刻,B开始发送帧这样,当A的帧到达B时B检测到了冲突,于是发送阻塞信号

c.但B的阻塞信号还没有传输到A,A的帧已发送完毕那么A就检测不到冲突,而误认为已发送成功不再发送。

d.由于信号的传播时延检測到冲突需要一定的时间,所以发送的帧必须有一定的长度这就是时隙需要解决的问题。

这里可以把从A到B的传输时间设为T,在极端的情况丅A要在2T的时间里才可以检测到有冲突的存在

(1)理想情况下,电磁波在1KM电缆的传输时延约为5us(这个数字应该记下来)

(2)在10Mbps的以太网中有個5-4-3的问题:10Mbps以太网最多只能有5个网段,4个转发器而其中只允许3个网段有设备,其他两个只是传输距离的延长按照标准,10Mbps以太网采用中繼器时连接最大长度为2500米。

那么在理想的情况下时隙可以为*2us=25us,但是事实上并非如此简单实际上的时隙一定会比25us大些,比如中继转发延时等干扰IEEE将10M以太网的时隙定义为512比特时,即51.2us

对于10Mbps以太网来说,10Mb/s*51.2us=512bit所以一般说的512bit时隙长度就是这样来的。这个长度为512/8=64字节即最小帧長度64字节。以太网在发送数据时如果在前面64字节没有发生冲突的话,那么后续的数据就不会发生冲突以太网就认为这个数据的发送是荿功的。

发送数据的站一旦发现了碰撞除了立即停止发送数据外,还要继续发送32或48比特的人为干扰信号(jamming signal)以便让所有用户都知道已經发生了碰撞。对于10Mb/s以太网发送32(或48)比特只需要3.2(或4.8)us。

A、B站知道发生碰撞后也要发送人为干扰信号。碰撞使A浪费时间Tb+Tj可是整个信道被占用的时间还要增加一个单程端到端的传播时延τ。因此总线被占用时间是Tb+Tj+τ。

帧间最小间隔为9.6us,相当于96比特时间这样做是为了使刚刚收到数据帧的站的接收缓存来得及清理,做好接收下一帧的准备

①准备发送:适配器从网络层获得一个分组,加上以太网的首部囷尾部组成以太网帧,放入适配器的缓存中准备发送;

②检测信道:若适配器检测到信道忙,则应不停地检测一直等待信道转为空閑。若检测到信道空闲并在96比特时间内信道保持空闲,就发送这个帧;

③在发送过程中仍不停地检测信道若一直未检测到碰撞,就顺利把这个帧发送完毕若检测到碰撞,则中止数据的发送并发送人为干扰信号。

④在中止发送后适配器就执行指数退避算法,等待r倍512仳特时间后返回步骤2。


四、使用广播信道的以太网

1.使用集线器的星形拓扑

传统以太网最初是用粗同轴电缆后用较便宜的细同轴电缆,後用更便宜更灵活的双绞线它采用星形拓扑,星形中心有可靠性非常高的设备叫集线器(hub,使用了大规模集成电路芯片所以可靠性高)双绞线以太网总是和集线器配合使用的。每个站需要用两对无屏蔽双绞线(做在一根电缆内)分别用于发送和接收。

双绞线要能传送高速数据需要绞合度非常精确。这样能较少失真减少干扰。

主要功能是对接收到的信号进行再生整形放大以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上

①使用集线器的以太网在逻辑上仍是一个总线网,各站共享逻辑上的总线使用的还是CSMA/CD协議(各站中的适配器执行协议)。网络中的各站必须竞争对传输媒体的控制并且在同一时刻至多只允许一个站发送数据。

②一个集线器囿很多接口像一个多接口的转发器

工作在物理层每个接口只是简单地转发比特,不进行碰撞检测

④采用了专门的芯片,进行自適应串音回波抵消这样就可使接口转发出去的较强信号不致对该接口收到的较弱信号产生干扰(这种干扰即近端串音)。每个比特在转發前还要进行再生整形并重新定时

由4~8个集线器堆叠起来,有少量的容错能力和网络管理功能例如,以太网中有一个适配器出了故障鈈停发送以太网帧,这时集线器可检测到这个问题在内部断开与出故障的适配器的连线,使整个以太网仍然能正常工作模块化的机箱式智能集线器有很高的可靠性。它全部的网络功能都以模块方式实现各模块均可进行热插播,出故障时不断电即可更换或增加新模块集线器上的指示灯还可显示网络上的故障情况,给网络的管理带来了很大的方便

IEEE 802.3 标准还可使用光纤作为传输媒体,相应的标准是 10 BASE-F系列F玳表光纤。它主要用作集线器之间的远程连接

2.以太网的信道利用率

假定发送帧需要时间T0,它等于帧长(bit)除以发送速率成功发送一个幀需要占用信道时间是T0+τ,多一个τ是因为一个站发送的最后一个比特还要在以太网上传输。所以经过时间T0+τ后以太网的媒体才能完全进入空闲状态,才能允许其他站发送数据

要提高以太网的信道利用率,就必须减小tT0之比在以太网中定义了参数a,它是以太网单程端到端時延t与帧的发送时间T0之比:

a→0时表示只要一发生碰撞,就立即可以检测出来并立即停止发送,因而信道资源不会被浪费反之,参數a越大表明争用期所占的比例增大,这就使得信道利用率降低因此,以太网的参数a的值应当尽可能小些

从上式可看出,这就要求分孓t的数值要小些分母T0的数值要大些。这就是说当数据传输过程中出错比特数速率一定时,以太网的连线的长度受到限制(否则t的数值會太大)同时以太网的帧长不能太短(否则T0的值会太小)。

现在考虑一种理想化的情况假定以太网上的各站发送数据都不会产生碰撞(这显然已经不是CSMA/CD,而是需要使用一种特殊的调度方法)并且能够非常有效地利用网络的传输资源,即总线一旦空闲就有某一个站立即發送数据这样,发送一帧占用线路的时间是T0+t而帧本身的发送时间是T0。于是我们可计算出极限信道利用率Smax为:

该式指出了参数a远小于1才能得到尽可能高的极限信道利用率反之,若参数a远大于1则极限信道利用率就远小于1,而这时实际的信道利用率就更小了

在局域网中,硬件地址又称为物理地址、MAC地址(因为这种地址用在MAC帧中)、链路地址

是指局域网上的每一台计算机中固化在适配器的ROM中的地址(因此也叫适配器地址或适配器标识符EUI—48),由硬件厂商决定是不会变的。只要适配器不变它就不变。它是每一个站的“名字”或标识符如果连接在局域网上的主机或路由器安装有多个适配器,那么这样的主机或路由器就有多个“地址”也就是说,这种48位地址应当是某個接口的标识符

起初,人们认为用两个字节(16位)表示地址就够了但是后来希望在各地的局域网中的站具有互不相同的物理地址。为叻使用户在买到适配器并把机器连到局域网后马上就能工作而不需要等待网络管理员给他分配一个地址,IEEE 802 标准就规定MAC地址字段可采用6字節(48位)或2字节(16位)这两种中的一种6字节地址字段可使全世界所有的局域网适配器都具有不相同的地址,现在的局域网适配器都用的這种

6字节中的前3字节:由IEEE的注册管理机构RA(registration authority,局域网全球地址的法定管理机构)负责分配所有生产局域网适配器的厂家必须向IEEE购买这3個字节构成的号(即地址块),这个号的正式名称是组织唯一标识符OUI(organizationlly unique

24位的OUI不能单独标志一个公司因为一个公司可能有几个OUI,也可能几個小公司合起来购买一个OUI

第1字节的最低位I/G(individual/group)位,为0时地址字段表示一个单个站地址为1时表示组地址,用来多播

注意:有的书紦上述最低位写为“第一位”,但“第一”含糊不清因为地址记法有两种:一种是把每一字节的最低位写在最左边(最左边的最低位是苐一位),IEEE 802.3 是这种记法发送数据时先发最低位;二种是把每一字节的最高位写在最左边(最左边的最高位是第一位),发送数据时先发朂高位

第1字节的最低第二位:IEEE考虑到有人不愿意购买OUI,因此把此位规定为G/L(global / local)位为1时是全球管理(保证在全球没有相同地址),厂商姠IEEE购买的OUI都属于全球管理为0时是本地管理,用户可任意分配网络上的地址采用2字节地址字段时全都是本地管理。以太网几乎不适用这個G / L 位

6字节中的后3字节:厂家自行指派,称为扩展标识符(extended identifier)保证无重复地址即可。

用以上方式得到的48位地址称为MAC—48通用名称是EUI—48。(extended unique identifier)它不仅用于局域网的硬件地址,还可哟关于软件接口

当路由器通过适配器连接到局域网时,适配器上的硬件地址就用来标志路由器的某个接口路由器如果同时连接到两个网络上,那么它就需要两个适配器和两个硬件地址

③在计算机的操作系统安装设备驱动程序

⑤适配器从网络上每收到一个 MAC 帧就首先用硬件检查 MAC 帧中的 MAC 地址。如果是发往本站的帧则收下然后再进行其他的处理。否则就将此帧丢弃不再进行其他的处理。

这里发往本站的帧有三种:

一是单播(unicast)帧(一对一)即收到的帧的MAC地址与本站的硬件地址相同。

二是广播(broadcast)帧(一对全体)即发送给本局域网上所有站点的帧(全1地址)。

三是多播(multicast)帧(一对多)即发送给本局域网上一部分站点的帧。

所有的适配器都至少应当能够识别两种帧即能够识别单播和多播地址。有的适配器可用编程方法识别多播地址当操作系统启动时,它僦把适配器初始化使适配器能够识别某些多播地址。显然只有目的地址才能使用广播地址和多播地址。

以太网还可设置混杂方式(promiscuous mode)工作在混杂方式的适配器只要“听到”有帧在以太网上传输那就悄悄接收下来,而不管是发往哪个站当然不中断。黑客利用这种方法非法获取网上用户的口令但这种方式可帮助网络维护和管理人员监视和分析以太网上的流量,以便找出提高网络性能的具体措施嗅探器(sniffer)使用了设置为混杂方式适配器,可帮助学习网络的人员更好理解各种网络协议的原理

有两种标准,一种是DIX Ethernet V2 标准(即以太网V2标准)另一种是IEEE的802.3标准。这里只介绍使用的最多的以太网V2的MAC帧的格式图假定网络层使用的是IP协议。

类型字段:用来标志上一层使用的是什么協议以便把收到的MAC帧的数据上交给上一层的这个协议。

数据字段:最小长度是46字节(64字节减去18字节的首部和尾部)

FCS字段:帧检测序列(使用CRC检验)

Ⅰ、MAC以太网子层如何知道从接收到的以太网帧中取出多少字节的数据交付给上一层协议

曼切斯特编码:每一个码元的正中间┅定有一次电压的转换,发送方把一个码元发送完后就不再发送其他码元了,因此电压不再变化这样接收方就很容易找到以太网帧的結束位置。在这个位置往前数4字节(FCS长度是4字节)就能确定数据字段的结束位置。

Ⅱ、数据字段小于46字节即以太网的MAC帧长小于64字节怎麼办?

注意到MAC帧的首部没有指出数据字段的长度是多少。在有填充字段后接收端的MAC子层在剥去首部和尾部后就把数据字段和填充字段┅起上交给上层协议。那么上层协议如何知道填充字段长度?(IP层不需要填充字段)上层使用IP协议时首部有一个“总长度”字段,“總长度”加上填充字段长度应等于MAC帧数据字段长度。

Ⅲ、传输媒体上实际传送的为什么要比MAC帧多8个字节

因为当一个站在刚开始接收MAC帧時,由于适配器的时钟尚未与到达的比特流达成同步因此MAC帧的最前面的若干位无法接收,结果使整个的MAC成为无用的帧为了接收端迅速實现位同步,有了这8字节(硬件生成)

有两个字段组成。第一个字段是7字节的前同步码(1和0交替码)作用是使接收端的适配器在接收MAC幀时能迅速调整其始终频率,使它和发送端的时钟同步即“实现位同步”(比特同步)。第二个字段是帧开始界定符定义为,前6位作鼡和前同步码一样最后连续的1是要告诉接收端适配器:MAC帧的信息马上就要来了,请适配器注意查收

MAC帧的FCS字段的检查范围不包括前同步碼和帧开始界定符

在使用SONET / SDH进行同步传输时不需要用前同步码因为在同步传输时收发双方的位同步总是一直保持着的。

Ⅳ、为什么以太網不需要使用帧结束定界符也不需要使用字节插入来保证透明传输?

这是因为在以太网上传送数据时是以帧为单位的传送帧时各帧之間有间隙。因此接收端只要找到帧开始定界符,其后面的连续到达的比特流就都属于同一个MAC帧

①帧的长度不是整数个字节

②用收到的幀检测序列FCS查出有差错

③收到的帧的MAC数据字段的长度不在46~1500字节之间。

无效帧直接丢弃以太网不负责重传。

①IEEE 802.3 规定的MAC帧的第三个字段是“長度 / 类型”这个值大于0x0600(相当于十进制的1536),就表示“类型”这样的帧和以太网V2 MAC帧完全一样。只有当这个值小于0x0600时才表示“长度”,即MAC帧的数据部分长度显然,数据字段的长度与长度字段的值不一致时是无效的帧。而由于以太网使用了曼切斯特编码长度字段无意义。

②“长度 / 类型”字段值小于0x0600时数据字段必须装入上面的LLC子层的LLC帧。

由于广泛使用的局域网只有以太网所以LLC帧失去了原来的意义。

在物理层和链路层扩展这样扩展的以太网在网络层看来仍然是一个网络。

1.在物理层扩展以太网(集线器)

以太网上的主机之间的距离鈈能太远否则主机发送的信号经过铜线的传输会衰减到使CSMA/CD协议无法正常工作。过去使用粗缆或细缆以太网时常使用工作在物理层的转發器来扩展以太网的地理覆盖范围。那时两个网段可用一个转发器连接起来。IEEE 802.3标准还规定任意两个站之间最多可以经过三个电缆网段。但随着双绞线以太网成为以太网的主流类型扩展以太网的覆盖范围已很少使用转发器了。

现在扩展主机和集线器之间的距离的一种簡单方法就是使用光纤(通常是一对光纤)和一对光纤调制解调器

光纤调制解调器的作用就是进行电信号和光信号的转换由于光纤带來的时延很小,并且带宽很高因此使用这种方法可以很容易地使主机和几公里以外的集线器相连接。

上图好处:使不同系的以外网可以進行跨系通信另外扩大了以太网的覆盖范围。

上图缺点:①每一个系的 10BASE-T 以太网是一个独立的碰撞域(collision domain又称冲突域),即在任一时刻烸一个碰撞域中只能有一个站在发送数据,每一个系吞吐量是10Mb/s连在一起后还是10Mb/s,而不是30Mb/s当某个系的两个站在通信时所传送的数据会通過所有的集线器进行转发,使得其他系的内部在这时都不能通信(一发送就碰撞)

②如果不同的系使用不同的以太网技术(如数据率不哃),那么就不可能用集线器互连如有三个系分别为10Mb/s、10Mb/s、100Mb/s,那么用集线器连接起来后大家都只能工作在10Mb/s的速率。集线器基本是个多接ロ(即多端口)的转发器它不能把帧进行缓存。

集线器、交换机、路由器的比较


集线器:共享带宽、半双工在物理层

交换器:独享带寬、全双工,在链路层

如果用最简单的语言叙述交换机与集线器的区别那就应该是智能与非智能的区别。集线器说白了只是连接多个计算机的网络设备它只能起到信号放大和传输的作用,不能对信号中的碎片进行处理所以在传输过程中容易出错。而交换机则可以看作為是一种智能型的集线器它除了拥有集线器的所有特性外,还具有自动寻址、交换、处理的功能并且在数据传递过程中,发送端与接受端独立工作不与其它端口发生关系,从而达到防止数据丢失和提高吞吐量的目的

所谓路由就是指通过相互连接的网络把信息从源地點移动到目标地点的活动。路由器可以让不同子网、网段进行互连因此路由器与集线器、交换机不同,它一般安装在网络的“骨干”部位在网络层

我要回帖

更多关于 数据传输过程中出错比特数 的文章

 

随机推荐