文章中所有图片均来自中科大郑烇教授在b站发布的——“中科大郑烇、杨坚全套《计算机网络(自顶向下方法 第7版,James F.Kurose,Keith W.Ross)》课程”
链路层和局域网
引论和服务:
网络层实现子网到子网的通信,链路层实现子网内的通信
多点连接和点到点连接:点到点主要是在广域网中,两个点通信,多点连接主要在局域网中,例如多点接入到一个ap中
多点访问控制:因为共享的介质只能同时接收发送一个终端的数据,需要保证同一时间只有一个终端发送数据,多点访问控制就是解决这个问题
当需要在共享介质中完成只在两个点之间的通信需要给网卡编址
多点连接存在的问题:多点访问控制,编址
互联网中使用多点连接,因为带宽大的原因,如果使用了多点连接造成的碰撞损失大,一旦发送了数据的碰撞就会导致数据包的丢失,而且需要进行同步操作,发送碰撞的双方需要停止发送且重发这个数据包
数据链路层实现的是子网内部的通信,二网络层实现的是不同子网之间的路由
上文中的以太网是有限局域网标准,帧中继多用于点对点的数据帧发送,802.11是一种无线局域网标准,类比生活中就是不同的运输方式。
链路层的服务主要是子网内的点到点的传输,主要是通过封装帧的方式实现的;链路层是否进行差错检测主要取决于物理层的介质,介质能否保证传输质量是决定是否需要链路层进行纠检错的关键因素
无线网络存在较大的差错率,在链路层进行差错控制,无需等到上层校验出错才重传
链路层主要通过网卡实现,网卡将数据打出,也就是将数据传送到物理层上
差错检测和纠错:
差错检测和传输层一样不能保证百分百可以检测出错误
奇偶校验主要是使用汉明码的方式进行校验
可参见:https://editor.csdn.net/md/?articleId=113842664
主要就是传输层的那种方式,可参见传输层的文章
发送方通过添加edc的方式将发送的数据凑成一个可以被生成多项式整除的数据,接收方接收数据如果数据可以被生成多项式整除就认为通过了校验
那么现在的问题就是如何获得EDC部分
已知生成多项式为G,101110为数据部分,将数据部分左移r位,这里的r为3,
xor为异或运算,且 n xor 0 = n
所以 D*2r XOR R 实际上是一个加法运算
两边进行一个XOR R运算 R XOR R =0 则得到第二个式子
我们知道XOR实际上为一个加法操作则通过除G右式余数为一个R,我们在取左式的余数得到公式
多点访问问题:
点到点的链路不存在多点访问的问题,多的访问问题只存在共享介质情况下
多点连接的网络又叫广播式网络,在这种情况下,广播发出,到网卡上比较mac地址,如果符合就接收
多点访问主要分为上述三种类型
上述分别为时分多路复用,波分多路复用,码分多路复用
随机存取协议主要是进行冲突检测
CSMA/CD:载波侦听,多路访问,冲突检测
CSMA/CA:载波侦听,多路访问,冲突避免
cdma主要包括了在发送前进行侦听,当发现了其他设备发送信号自己就等待到对方发完
但是信号的传播存在一个传播延时,随着网络的覆盖范围越大,发生冲突的概率越大,因为其中的传播延时越大,另一个点收到对方信号的时间也就越大,这样导致虽然信号有经发送了但是其他设备可能还有没检测到,所以使用csma这种方式会导致信道资源被浪费,因为双发都在发送信号导致混乱
cd:边说边听
当发送过程中检测到其他设备在发送数据立刻暂停
这样可以部分的减少信道的浪费,但是不能避免出现浪费
其中的黄红相见为冲突的信道和时间
csma主要用于共享式以太网,现在使用比较少,现在多是交换式以太网
强化冲突:如果AB发生了冲突,这是B检测到了,B会发出一个强化冲突的信号,这是为了让A听见信号,防止B的发送信号数量少或者中途产生了衰减导致A没有意识到自己发送的数据被干扰了。
当AB发生了冲突运行二进制指数退避算法
在发送冲突后双双方进行一个随机,这个随机表示在k*512位时后重发数据,当然如果又冲突了随机的阈值变为原来的两倍
,这样就能有更大的概率不会出现冲突
CSMA/CD效率位1,需要的条件是当tprop变为0,表示没有传播延时,可以有效利用信道 或 当trans为无限大,则当一个节点拿到信道,一直使用
无线的最大特点就是衰减快,且干扰严重
ap和节点使用同一频段通信
因为进行CD时需要发送和接收天线同时工作,但是因为信号衰减快,很可能只能检测到自己的发送信号
在LAN中不冲突约等于信息发送成功,但是在WLAN中不冲突也不一定成功,这是无线的特点决定的因为存在隐藏终端问题
如上图中——隐藏终端:在AC不能收到对方的信号,B能收到双方的信号,这是因为AC互相不能收到对方的信号所以双方不能发现冲突,因此不冲突不能保证成功,所以他们同时发送数据被B,但是B点因为需要接收双方的数据导致接收数据失败
而且在WLAN中发送了冲突也不一定表示一定不成功,可参照下图
因为BC可以检测到双方的信号,所以当检测的是否如果BC冲突了但是他们分别向AD发送信号,但是A收不到C的信号,D收不到B的信号这样虽然BC发生了冲突但是AD依然成功的接收了信息
所以wlan中不使用冲突检测,发送就全部发完,虽然这样可能会降低信道利用率
发送前监听,当为冲突进行随机,当到检测到没有冲突时,等待随机值对应的周期数
因为无线的误差大的特点,增加了ack确认帧
同时AP还有预约相关的,当发送长数据帧,如果被干扰了会导致信道的长时间浪费,可以使用向AP预约的功能,预约成功AP发送一个CTS禁言帧,这样就知道预约了的主机可以发送数据了
对于这种预约功能还在ADSL中使用
ADSL的上下行带宽不一致原因就是
上行带宽中:需要共享带宽,使用预约的方式,通过下行信道发布预约结果,我们发送的数据都是通过上行带宽上去的所以时共享性的
下行带宽中:只有接入部分使用,带宽独享,CMTS(调制解调器)只需要比较mac地址就可以决定谁接收数据了,也就是服务商向我们提供的服务
使用时分多路复用技术将信道的使用分为多个微时隙,在微时隙内进行预约,采用二进制指数退避算法进行预约成功率的控制
令牌帧有一个位置,为1表示为数据帧,0表示为令牌帧,发送方抓住令牌,然后将该位置改写,附带数据发送出去,绕环一周回到原来的位置,由发送方重新吸收数据,为什么不是接受方吸收数据,因为可能是广播帧
轮流的方式需要一个控制的物品,礼物master和令牌容易发送故障,且其中的花费较大
LANs:
ip地址网络号部分用于路由,主机号用于内网寻址
mac地址:链路层地址,网络内部节点到节点的区分
在中间子网的转发和内网的转发,用于穿行内网
可以分层,有利于分层管理
使用csma/cd的多点访问控制技术
同轴电缆为了方式电磁波的回弹加上了终结器,然而如果导线的任意一处破碎都会导致电磁波回弹,导致使用csma/cd发送不成功
所以同轴电缆变为了hub(集线器),hub收到主机信号发送给所有主机,所有主机处于一个碰撞域中,但是因为广播方式csma/cd效率低下
升级为交换机,端口协议mac地址和ip的对应关系,依然使用csma/cd,但是一个主机到交换端口的线路只由主机和端口共享,大大减少了共享
同步作用,同步发送方和接受方的发送和接收速率
曼彻斯特编码:时序中间进行跳变,向下跳变表示为,向上跳变为0
为什么不能使用上面的第一种编码方式,存在误差,一马平川的传输方式,不利于接收方的时钟对齐,如果时序有一点的冲突就会导致这次的传输不成功
每四个比特进行一次对齐,保证了每传输4个比特就有一次跳变保证时钟可以对齐
补充:
前面我们说了LAN中不碰转约等于成功,那么那些不碰撞也不成功的包括什么呢
红色表示的是A发送的数据,绿色表示是B发送的数据,蓝色的圈表示的是传播时延a,我们假设A发送的数据在一个传播时延后到达了B,但是在这个传播时延之前B没有检测到A发送了数据所以B发送了数据(也就是绿色)且在一个传播时延后到达了A,但是可能A在紫色部分就结束了自己的发送,这时A是意识不到自己的数据和B发生了冲突的,所以必须保证每一个数据帧的长度大于两倍的传播时延射阳才能保证如果发送了冲突可以准确的发现,所以在数据链路层中通过填充长度的方式来延长发送时延保证这一点