您的位置:首页 > 理论基础 > 计算机网络

计算机网络读书笔记——数据链路层(3)

2017-07-22 23:28 330 查看

局域网

广域网是使用点到点信道的数据链路层,使用的是PPP协议

局域网是使用广播信道的数据链路层(所以需要在广播信道中实现一对一传输)

局域网的特点

网络为一个单位所拥有,且地理范围和站点数目均有限。

局域网具有如下的一些主要优点:

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

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

提高了系统的可靠性、可用性和生存性。

局域网的拓扑结构

星形网、总线网、环形网、树形网

局域网拓扑的特点:

可以随意的向网络中添加设备



总线型是一排计算机通过同轴电缆和T型头,总线两端得接上一致的匹配电阻,防止电信号反弹,匹配电阻是用来吸收总线上传播的电信号的。总线上每一个计算机都能检测到其中一台计算机发送出来的数据信号,但是只有指定的某台接收方计算机能够接收(通过MAC地址实现的),集线器实际上可以抽象为另一种”总线型“,也具有判断接收的功能。所以具有广播特性的总线上实现了一对一的通信。但是很快总线型的网络很快被利用集线器的星形网取代了,因为总线型网络的总线只要某处断开,网络就不能工作了。但是用集线器的话就不存在这个问题,因为集线器有很多的网线接口可以随意的接很多计算机,如果某根网线断开但是不会影响到其他网线或者说整个网络的连接。



有了局域网的网络拓扑,那么计算机又是如何实现共享通信信道的呢?

静态划分信道(不建议局域网使用,太麻烦)

1. 频分复用

2. 时分复用

3. 波分复用

4. 码分复用

静态划分信道即就是在集线器的各个端口提前划分好通信的线路,当其中两个端口进行通信的时候,则采用频分复用或时分复用这样的共享通信方式等等,让这些划分好通信线路的计算机都能够通信。缺点就是:非常的麻烦,当我们新接入一个计算机给集线器的时候,还要为新计算机划分一下与各个端口之间的通信线路,当计算机数量增大的时候会越来越麻烦。

动态媒体接入控制(多点接入)

1. 随机接入(主要被以太网采用)

2. 受控接入,如多点线路探询,或轮询。(目前已不被采用)

以太网中广播形式的局域网在传输数据时使用的是CSMA/CD协议(Carrier Sense Multiple Access with Collision Detection),即就是带冲突检测的载波监听多路访问协议,即许多计算机通过以多点接入的方式连接在一根总线上(集线器就类似于一根总线),然后通过“载波监听”即每一个站在发送数据之前要检测一下总线上是否有其他计算机在发送数据,如果有则暂时不要发送数据,以免碰撞。

碰撞检测(又名冲突检测)

碰撞是如何检测的?

当几个站同时在总线发送数据时,总线上的信号电压摆动值将会增大(互相叠加)。当一个站检测到信号电压摆动值超过一定的门限值时,就认为总线上至少有两个站同时在发送数据,即检测出产生了碰撞。

规定:以太网的网线不能超过100米,超过100米后由于太长就会增加冲突检测的时间,从而间接影响到网速。

检测到碰撞后是如何处理的?

当发送数据的计算机发现了总线上传输的信号严重失真后,就立即停止发送,免得继续浪费网络资源,然后等待一段随机时间后再次发送。

传播时延对载波监听的影响



CSMA/CD协议的重要特性:

使用CSMA/CD协议的以太网不能进行全双工通信而只能进行双向交替通信(半双工通信)。比如一个集线器连接了A、B、C、D四个主机,当A给B发送数据进行通信时,也会给C和D发送数据,但C、D经过检测后并不会接收数据而是丢弃数据包,半双工通信也就是说此时B作为接收数据的一方,并不能给A发送数据。

每个站在发送数据之后的一小段时间内(<=2τ),存在着遭遇碰撞的可能性。所造成的这种发送的不确定性使得整个以太网的平均通信量也就远小于以太网的最高数据率,比如我这个以太网的10M的传输速率,以太网内通过集线器将A、B、C、D四个主机连接起来,则原则上平均每台主机能够达到2.5M的传输速率,但实际上当A与B进行通信的时候,C和D是无法通信的,所以每台主机平均的通信带宽(传输速率)2.5M是一个理论值,考虑到上面所说的实际情况后,实际上每台主机的传输速率是要远远小于2.5M的(为什么会有远远小于呢?因为当一个网络中连接的计算机越多,产生的冲突的可能性就越大,那么每台计算机分得的实际带宽就远远小于理论带宽)。

以太网的争用期

以太网的端到端往返时延2τ即为争用期,通常在以太网中2τ取值为51.2μs,对于10Mb/s的以太网,在争用期可以发送多少数据呢?为了方便计算,我们假定10Mb=10∗1000Kb=10∗1000∗1000bit=107、1μs=10−6,所以在争用期可以发送107∗51.2∗10−6bit的数据,即就是512bit,64字节,所以在争用期期间可发送64字节数据,若前64字节数据的发送中未发生冲突,则后续的数据就不会发生冲突,如果发生冲突,就一定是在发送的前64字节之内。以太网规定了最短有效帧长度为64字节,凡长度小于64字节的帧都是由于冲突而异常终止的无效帧

上文计算争用期发送数据大小易犯错的地方:

上述式子有些同学算的时候不是512bit而是错误的512字节,一开始我也遇到这样的问题,最后我知道问题的根源在于我们将10Mb/s的含义理解错误了,Mb/s的含义是兆比特每秒,指每秒传输的位数量,而我们所说的多少兆带宽是MB,我错误的将Mb理解为MB了。对于MB而言,为了方便将1024≈1000,即有如下等式: 1MB=103KB=106Byte(字节)=8∗106bit(位)

二进制指数类型退避算法

总线上的计算机检测到冲突之后,就会停止发送数据并避让冲突,又如何避让的呢?

首先确定基本退避时间,基本退避时间的意思就是检测到碰撞后所需要等待的时间,一般取为一个争用期(2τ)。

定义一个参数k,其中k=min[重传次数,10]。

从整数集合[0,1,...,2k−1]中随机地取出一个数,记为r,重传所需的时延就是r倍的基本退避时间,即r∗2τ。

当重传达16次仍不能成功时即丢弃该数据帧,并向高层报告。

例如:在第一次重传时,k=1,随机数r从区间[0,1]中选一个整数,因此重传的站可选择的重传推迟时间是0或2τ,在这两个时间中随机选择一个。若再次发生碰撞,则在第二次重传时,k=2,随机数r就从区间[0,3]中选择一个整数,因此重传的时间就是0,2τ,4τ,6τ这四个时间中随机选一个等等依次类推,若连续多次发生冲突,就表明可能有较多的站参与争用信道。但使用上述退避算法可使重传需要推迟的平均时间随重传次数而增大(这也称为动态退避),因而减小发生碰撞的概率,有利于整个系统的稳定。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息