计算机网络:链路层
链路层主体部分是在网络适配器(网卡)用硬件实现的,少部分靠软件实现
检错纠错技术
奇偶校验
奇校验:原始码流+校验位 总共有奇数个1
偶校验:原始码流+校验位 总共有偶数个1
只能检错出奇数个bit错误
二维奇偶检验
可以检测数据出错位置并纠正,只能检测校验比特错误但不能纠正
校验和
循环冗余检测
Cyclic Redundancy Check,CRC
crc里采用了模二运算:加法无进位,减法无借位,也就等价于异或
双方协商一个r+1比特模式,叫做生成多项式G,G的最高有效比特位应为1
CRC标准能检测小于 r + 1 比特的突发差错
发送方对于数据D要加r个附加比特R作为发送数据X,这个R要使发送数据X可以被生成多项式G做模二算数整除
对于接收方
- 如果用生成多项式G除得尽,表明数据正确;
- 如果除不尽,
余数将指明出错位所在位置
。
发送方怎么求这个R?
根据上述需要满足$D\times2^r\ xor\ R =nG$
两边同时再异或个R可得$D\times2^r=nG\ xor\ R$
右边就可以被G除就可以获得于余数R $R=remainder\frac {D\times2^r}G$这一步就说明了R怎么求: D左移r位,模二除G得到余数
检验过程硬件电路实现实现比较简单快速
https://www.bilibili.com/video/BV1V4411Z7VA/
视频里串行crc硬件实现部分:
多项式G为$x^4+x+1$ 即除数G=10011
类别小学列竖式时的除法,探测仪处为0时证明不够除,被除数左移一位,为1时,做模二减法即做异或操作,即把为除数为1的位置反转,为0的位置不变,对于位于除数探测位的1来说此时这里数值为1,1 xor 1 = 0可以直接左移掉,概括起来来说就是高位为1的时候进行模2运算,之后进行移位;高位为0的时候单纯地进行移位操作
https://www.cnblogs.com/Zeker62/p/15046165.html
多路访问链路
信道划分协议
时分复用:Time Division Multiplexing,TDM
时间划分为时间帧,时间帧划分为时隙,每个时隙分给一个用户
频分多路复用: Frequency Division Multiplexing,FDM
码分多址 (Code Division Multiple Access, CDMA)
不同节点不同编码
🕊🕊🕊🕊🕊🕊🕊🕊🕊🕊🕊🕊🕊🕊🕊🕊🕊🕊🕊🕊🕊🕊🕊🕊🕊🕊🕊🕊🕊🕊
局域网LAN
local area network
48位mac地址用来局域网内寻址,用于使帧从一个网卡传递到与其物理连接的另一个网卡(ip地址主要是用来做子网路由,单独路由每个ip太多了,所有用网络号一样的子网路由)
前24位地址用来表示硬件厂商编号,后24为该厂商网卡序列号
mac广播地址为ff ff ff ff ff ff ff ff
地址解析协议
address resolution protocol,arp
arp工作在局域网,将ip地址解析为mac地址
以太网
以太网帧结构
- preamble前同步码(8字节)
- 前七个字节 10101010 + 后一个字节 10101011
- 用来同步接收方和发送方的时钟速率使得接收方将自己的时钟调到发送端的时钟从而可以按照发送端的时钟来接收所发送的帧
- dest address 目标mac地址(6字节)
- source address 源目标地址(6字节)
- tpye类型(2字节)
- 指出高层协 (大多情况下是IP,但也支持其它网络层协议 Novell IPX 和 AppleTalk)
- 数据data(46~1500字节)
- ip数据报,以太网最大传输单元MTU最大1500,ip数据报最小46字节
- CRC校验码(四字节)
以太网提供无连接不可靠服务,crc校验不通过就扔了,也不会告诉发送方