数据链路层


数据链路层的两种通信方式

点对点信道:使用一对一的点对点通信
广播信道:使用一对多的广播通信方式
网络层要讨论的问题是分组怎样从一个网络通过路由器转发到另一个网络
数据链路层研究的是在同一个局域网中分组怎样从一个主机传送到另外一个主机(不经过路由器)
数据链路层的通信方式主要是通过以太网。


以太网的帧格式:
数据链路层的协议数据单元——帧
网络层的协议数据单元——IP数据报
数据链路层把网络层交下来的数据构成帧发送到数据链路上,以及把接收到的帧中的数据取出并交给网络层


数据链路层三个基本问题

封装成帧、透明传输、差错检测
1、封装成帧
封装成帧就是在一段数据的前后分别添加首部和尾部,首部和尾部重要的作用就是帧定界帧定界的目的就是为了收到一个完整的数据帧格式,每一种数据链路层都规定了所能传送的帧的数据部分长度上限——最大传输单元MTU。
MTU最小为46字节,最大一般为1500字节,如果数据包的长度不够46字节,要在后面补填充位;如果数据包的长度大于MTU,需要对数据包进行分片处理
这里写图片描述
2、透明传输
由于帧的开始和结束的标记是使用专门指明的控制字符,依次所传输的数据中任何8比特的组合一定不允许和用作帧定界的控制字符的比他编码一样否则就会出现帧的定界错误。
为了避免这种错误,就必须设法使数据中出现的控制字符”SOH”和”EOT”在接收端不被解释为控制符。具体的方法是:在发送端数据链路层数据中出现的控制字符”SOH”和”EOT”前面插入一个转义字符”ESC”,而在接收端的数据链路层把数据送往网络层之前删除这个转义的字符。
3、差错检验
循环冗余检验CRC
在发送端,先把数据划分为组,假定每组k个比特,假定传送的数据M101001(k=6),CRC运算就是在数据M的后面添加供差错检验用的n位冗余码。然后构成一个帧发送出去。


MTU对IP/UDP/TCP的影响

1、MTU对IP的影响
由于数据链路层MTU的限制,对于较大的IP数据包要进行分包,并给小包上打上标签;每个小包的IP协议头的16位标识符都是相同的;每个小包的IP协议头的三个标志位字段中,第二位置为0 ,表示允许分片,第三位来表示结束标记;到达对端时,再对这些小包进行重组;如果这些小包中任意一个小包丢失,接收端的重组就会失败,但是IP层不会负责重新传输数据。
2、MTU对UDP协议的影响
一旦UDP携带的数据超过1472(1500-20(IP首部)-8(UDP首部))就会在网络层分成多个IP数据报,这多个IP数据报有任意一个丢失都会引起接收端网络层重组失败,如果UDP数据报在网络层被分片,整个数据报被丢失的概率就大大增加
3、MTU对TCP的影响
TCP的单个数据报的最大消息长度称为MSS,TCP 在建立连接的过程中通信双方会对MSS进行协商,理想情况下MSS的值正好是IP不会被分片处理的最大长度,双方在发送SYN的时候会在TCP头部写入自己能支持的MSS值,然后双方得知对方的MSS值之后,选择较小的作为MSS,MSS的值就是在TCP首部的40字节变长选项中。


ARP协议

ARP协议是将IP地址转化为MAC地址,ARP不是一个单纯的数据链路层协议,而是介于数据链路层和网络层之间的协议。
ARP协议的作用:
①在通讯时,源主机的应用程序直到目的主机的IP地址和端口号,却不知道目的主机的硬件地址
②数据包首先先是被网卡接收到,再去处理上层协议的,如果接收到的数据包的硬件地址与本机不符,则直接丢弃
③因此在通讯前必须获得目的主机的硬件地址
ARP协议的工作流程:
①源主机发出ARP请求,询问目的主机(假设已知目的主机的IP是192.168.1.2)的IP地址是多少,并将这个请求广播到本地网段
②目的主机收到广播的ARP请求,发现其中的IP地址与本机相符,则发送一个ARP应答数据报给源主机,将自己的应答地址填写在应答包中
③每台主机都维护一个ARP缓存表,可以用arp -a命令查看,缓存表中的表项有过期时间,如果20分钟没有再使用某个表项,则该表项失效,下次还要发ARP请求获得目的主机的硬件地址


ARP数据包的格式

这里写图片描述
硬件类型是指链路层网络类型,1为以太网
协议类型指要转换的地址类型(把IPv4转换成MAC地址)
硬件地址长度对于以太网地址为6字节
协议地址长度对于IP地址为4字节
op字段为1,表示ARP请求,op字段为2,表示ARP应答

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值