在物理层上,所有的数据都是不受检查的。物理层有点傻。
数据内容的控制就放在了数据链路层。链路层为网络层提供服务
组帧
数据链路层会将IP层的数据报作为自己的数据部分。然后在数据的首部和尾部设置数据帧。在数据帧中有一个起始帧和终止帧用来标志数据部分的开头和结束,一般是一串二进制数(011100)。那么如果在数据部分出现了这些控制字符时怎么办呢,说不定在数据部分的中间就有一个和起始帧一摸一样的二进制数据,那么就有了一些算法来解决这些问题。下面只记录比较可行的通用的。
0比特法:起始帧和终止帧都是由连续的六个1组成。在数据部分一旦遇到连续的5个1那么就在第五个1后添加一个0 。这种方法也是最常用的。数据部分不会再有连续的6个1 。
违规编码法:在正常曼切斯特编码法中,二进制0是由 高-低 电平表示的,二进制1是由 低-高 这样的电平表示的。所以我们可以用 高-高 电平表示开始,低-低表示结束。这样的方法也是极其简单可靠的。
差错控制
传输中必然会出现差错,一般来说差错都是由噪声引起的。
差错
位错
帧错
丢失、重复、失序
在网络中传输的数据经过路由器时,路由器会检测数据的完整性,发现错误的帧时将会将帧丢弃。
差错控制(比特出错)
检错编码
奇偶校验码
由n-1位信息源与1位校验元构成
二进制数据中1的总数为奇数那么就是奇校验;为偶数就是偶校验
如采用奇校验,发送的数据中1的个数为偶数,那么添加一个校验元。接收方如果接收的1的个数为偶数那么判断数据发生差错
循环冗余码CRC
纠错编码
海明码:可以发现双比特错,纠正单比特错。动一发而牵全身
工作流程:确定校验码位数r =》 确定校验码和数据的位置 =》 求出校验码的值 =》 检错并纠错
流量控制与可靠传输机制
数据链路层的流量控制
较高的发送速度和较低的接收能力不匹配就会造成传输出错。
链路层与传出层流量控制的区别
链路层的流量控制是点对点(节点)的,而传输层的流量控制是端到端(主机)的。
链路层流量控制手段:接收方收不下就不向发送方回复确认
传输层流量控制手段:接收端给发送端一个窗口公告告诉发送端
流量控制的方法简介
停止--等待协议
每发送一个帧就等待接收方的确认信息
可以看作是:发送窗口大小为1,接收窗口大小为1的滑动窗口。
滑动窗口协议:发送发和接收方各自维护一个滑动窗口,窗口内的数据已经经过了编号。发送方依次将发送窗口内的数据发送出去,接收方收到后将回复确认帧。当发送方收到他的发送窗口的第一个帧的确认时会将滑动窗口向后移一位。
后退N帧协议 (GBN)
发送窗口大小 >1 ,接收窗口大小=1
选择重传协议 (SR)
发送窗口大小 > 1,接收窗口大小 >= 1
停止--等待协议
每发送一个分组,就停止等待。对方发送过来确认后再发送下一个分组。
分为两种情况
无差错情况
发送0号帧 - 接收方发送确认0号帧;发送1号帧 - 接收方发送确认1号帧.。。。。
有差错情况
发送0号帧 - 接收方没收到;发送方超时计时器到时间 - 重新发送0号帧
超时计时器设置的重传时间应当比帧传输的平均RTT(往返传输时延)更长一些
如果确认帧ACK缺失
发送方还会超时重传。。。
优点:简单
缺点:信道利用率太低
信道划分介质访问控制
点对点链路:两个节点之间通过一个链路相连,没有第三者。应用:ppp协议,常用于广域网
广播式链路:所有主机共享通信介质。应用:早期的总线以太网、无线局域网、常用于局域网
在广播式的链路中,我们要采取一定的措施,使得两对节点之间的通信不会发生相互干扰的情况。这就是介质访问控制。
介质访问控制
静态划分信道
频分多路复用 FDM
时分多路复用 TDM
波分多路复用 WDM
码分多路复用 CDM
动态划分信道
轮询访问介质访问控制
令牌传递协议
随机访问介质访问控制
ALOHA协议
CSMA协议
CSMA/CD协议(重要)
CSMA/CA协议(重要)
局域网
局域网 (Local Area Network):简称LAN,是指在某一区域内由多台计算机互联形成的计算机组,使用广播信道。
局域网一般采用总线型拓扑结构。
以太网
是一种基带总线局域网规范,是当今现有局域网采用的最通用的通信协议标准,使用CSMA/CD技术。
以太网提供无连接、不可靠的服务
无连接:没有握手过程
不可靠:不对发送方的数据帧编号,接收方不向发送方进行确认,差错帧直接丢弃,差错纠正由高层负责。
以太网拓扑:物理上星型,逻辑上总线型
10BASE-T以太网是现在最常见的以太网,采用无屏蔽双绞线。采用曼彻斯特编码。
适配器与MAC地址
计算机与外界局域网的链接是通过通信适配器的(网卡)
网卡上有RAM和ROM。ROM上有计算机硬件地址:MAC地址
MAC是每一个适配器唯一的标识。通常用6个16进制数表示。
PPP协议&HDLC协议
广域网
跨域范围大,现在使用的如 Internet。由多个局域网组建而成
局域网的设备都处于链路层和物理层。广域网多了个路由器所以多了个网络层
PPP协议:点对点协议(PPP)是目前使用的最广泛的数据链路层协议,用户使用拨号电话接入因特网时一般都使用PPP协议。只支持全双工链路。
对于链路层的帧,无需纠错、序号、流量控制
链路层设备
冲突域:同一个冲突域内每个节点都能收到被发送的帧。并且同一时间只能有一台主机发送数据,如果两台主机同时发送消息那么数据将会发生碰撞。通常由物理层设备所连接的所有设备会构成一个冲突域。
广播域:网络中能接收任一设备发出的广播帧的所有设备的集合。简单的说如果站点发出一个广播信号,所有能接收到这个信号的设备范围成为一个广播域。
链路层扩展以太网
网桥 (交换机的前身,现在已经不用了):网桥会根据MAC的目的地址进行转发和过滤。并不像集线器那样向所有的接口转发此帧,而是先检查此帧的目的MAC地址,然后转发,或者将此帧丢弃(即过滤)。网桥一般是只有两个接口。
多接口网桥==以太网交换机:交换机通常会有十几个接口。交换机的每一个接口都是一个冲突域,与网桥一样。交换机的每一个端口都可以独占总带宽。