数据链路层

1、链路层的目的:

网络层Ip解决的跨网络发送数据,传输层TCP解决的是提供一系列策略保证数据能够可靠的发送,链路层解决的是两台主机之间的通信问题。

2、

 以太网所有主机共享一个通信信道,当局域网中一台主机发送数据后,该局域网中所有的主机都能收到该数据。只要其他主机发现其所发数据不是给我的就丢弃。一旦出现两台主机所发数据在网络中碰撞,执行碰撞避免算法,只允许一台主机发送数据。

 目的地址和源地址指的是网卡的Mac地址,长度48位,是在网卡出厂时固化的

如何将Mac帧的有效载荷和报头进行分离?

以太网MAC帧的帧头和帧尾都是固定长度的,去掉固定长度的帧头帧尾剩下的就是有效载荷了。

MAC帧如何决定将有效载荷交予上层哪一个协议?

在 MAC帧当中有两个字节的类型字段,因此在分离出报头和有效载荷后,根据该字段将有效载荷交付给上层的协议即可。

A主机把mac帧发送给局域网网中其他主机,本身也能收到,对CRC进行校验,如果产生了碰撞,执行碰撞算法避免,后续再发。如果没有,对应的接收方发现接受的是我自己,ok提取即可。其他人发现不是自己,舍去即可。

 长度48位,6个字节。一般出厂就设置好了。

3、MAC地址和IP地址

实际数据在路由过程中会存在两套IP地址 ,源IP和目的IP,源MAC和目的MAC。

IP地址,描述的是总体的起点和终点。MAC地址描述的是一个区间的起点和终点。

源IP和目的IP可以理解为不变(NAT技术使得源ip会变),源MAC和目的MAC一直在变。

4、MTU:Maximum Transmission Unit,最大传输单元,描述的是底层数据帧一次最多可以发多少数据,不同数据链路层对应的物理层不一样。

以太网规定最大不超过1500字节,如果超过,ip分片从发。如果小于46字节,需要在数据后面填上填从位。

MTU对Ip的影响:分片

MTU对UDP的影响,一旦超过了MTU,ip分片,报文丢一个的概率增加,但UDP没有重发机制所以丢就丢了。

MTU对TCP的影响:分片后,也容易使得报文丢失,TCP可以重传,但是不分片丢的概率就小所以最好不分片。

所以TCP的最大报文长度MSS(Max Segment Size),应该受限于MTU。TCP通信双方建立链接的过程中就经过MSS协商,选取双方较小的MSS作为最终的MSS。MSS值实际就是TCP首部40字节的选项字段中的(kind=2)。

 5、数据跨网络传输的一般过程

主机A想要跨网络把数据交给主机B,首先主机A对数据在添加一层MAC帧,交给局域网中的路由器A。 局域网其他主机也能收到,但一看MAC地址不是自己就不管了就丢弃。路由器一看MAC地址是自己,那就解开MAC帧。将包交给上一层,上层IP解开一看,查询路由表给路由器B。

再次封装MAC帧,将自己的MAC填成源MAC,下一个路由器B填成目的MAC。接着发。

相同过程只有B接受到,其他的一看不是自己就丢弃了,接着路由器C拿到,经过许多相似过程,最终B主机拿到了。

总结:数据在跨网络传输过程中,其对应的源IP和目的I一般不变,数据的源MAC和目的

MAC却一直在变化的,根本原因就是因为该数据对应的上一跳主机和下一跳主机在变,

数据链路层就是主机到主机之间的通信。

6、

ARP协议(Address Resolution Protocol),是根据IP地址获取MAC地址的一个TCP/IP协议。

 ARP是MAC的上层协议。

 

 ARP是MAC帧协议的上层协议,ARP数据格式中前3个字段和最后一个字段对应的就是以太网首部,由于包装ARP后MAC不足46字节,所以需要补上18位填充字段。

ARP请求流程:

 ARP缓存表:

每次发起ARP请求后,都会建立对应主机的IP地址和MAC地址的映射关系,每台主机都维护了一个ARP缓存表,可以使用arp-a命令进行查看。20多分钟后就会失效

 mac帧的报头中已经涵盖了源和目的MAC地址,为什么ARP包头中还要有这样的字段?

MAC帧和ARP虽然都在数据链路层,但毕竟是上下层关系,因此不会关心彼此包头中的数据。

此外,如果底层网络不是以太网,而是其他类型的网络,此时ARP地址就是必要的了

为什么不采用广播方式发送呢?

最好在数据链路层知道不是发给自己的就结束掉。都给ip层(属于系统层)浪费资源。

什么是RARP协议?

叫做Reverse Address Resoluton Protocol,反向地址转换协议,是根据mac地址获取ip的一个协议。

数据如何从服务器发回来,因为在使用NPT的时候将自己的IP替换成WAN口IP,回来时又将响应数据包中的目的换成局域网中的对应主机的IP。

NAT路由器是如何判断,应该从外网收到的响应数据包转发给局域网中的那一台主机呢?

查表:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值