数据链路层

一、理解

实现一路内点对点通信。在一个碰撞域里面的通信。

实现方式:以太网,令牌环网,无线LAN...

二、认识以太网

1、以太网 不是一种具体的网络 , 而是一种技术标准。 既包含了数据链路层的内容, 也包含了一些物理层的内容。 例如 : 规定了网络拓扑结构 , 访问控制方式 , 传输速率等。
2、以太网中的网线必须使用双绞线。 传输速率有 10M, 100M, 1000M 等。

三、以太网帧格式

数据最多1500是MTU等于1500字节,数据最小46位怎么解决?

IP报文不够46位会带上垃圾数据,IP报文中的16位长度会筛掉垃圾数据。

如何解包?

mac地址大小固定6字节,用固定长度协议

如何分用?

依靠2位类型,类型是0800的是IP数据报

四、以太网中数据传输

之前文章有讲过,详见Linux网络基础-CSDN博客

这里介绍交换机。

流程:一开始交换机不清楚接口两边直连的主机,所以每次发报文都只能发给接口直连的所有主机,但是每发一次报文,交换机会记录报文进入接口的mac地址,这样就记录了指定接口直连的主机,等上一会,交换机就会记录完所有接口直连的所有主机,例如此时主机A要给主机E发消息,一开始交换机不清楚时会发给主机BCDEFG,但是现在接口记录mac地址之后,交换机发现主机A与主机E在同一个接口直连的主机,所以报文只会发给主机BE。

所以交换机的作用就是分割碰撞域,减少数据碰撞。

五、MTU对UDP/TCP报文影响

1、对UDP影响

一旦 UDP 携带的数据超过 1472(1500 - 20(IP 首部 ) - 8(UDP 首部 )), 那么就会在网络层被分片
这多个分片有任意一个丢失 , 都会引起接收端网络层重组失败。 那么这就意味着如果 UDP 数据报在网络层被分片 , 整个数据被丢失的概率就大大增加了。

2、对TCP影响

TCP 的一个数据报也不能无限大 , 还是受制于 MTU。TCP 的单个数据报的最大消息长度, 称为 MSS(Max Segment Size)
(1)TCP 在建立连接的过程中 , 通信双方会进行 MSS 协商.
(2) 最理想的情况下, MSS 的值正好是在 IP 不会被分片处理的最大长度 ( 这个长度仍然是受制于数据链路层的 MTU)
(3)双方在发送 SYN 的时候会在 TCP 头部写入自己能支持的 MSS
(4)然后双方得知对方的 MSS 值之后 , 选择较小的作为最终 MSS
(5)MSS 的值就是在 TCP 首部的 40 字节变长选项中 (kind=2)

六、arp协议

1、arp协议通信流程

报文要交付给下一节点就要知道下一跳节点mac地址,因为要封装mac帧。

所以我们要有一种能力:在一个子网中,将下一跳节点的IP地址转化成mac地址。

这就是arp协议:先广播,再mac帧传播报文。

具体arp流程(始终记住:我们虽然画图是一个个主机,但是其实都是一个个网络协议栈!!!所以报文一定是一层一层分析!!!)

大概流程:路由器routeR再网络中收到要发送的报文,目的IP是IPC,但是由于不知道主机C的mac地址,所以没办法封装mac帧走数据链路层,所以就要arp协议来获取macC

(1)arp请求:路由器收到报文是在网络层,向下交付到arp层开始构建arp请求,再向下交付构建mac帧,自此就相当于在一个内网里面喊话:我路由器有一个arp请求,请求IPC转化成macC

主机C发现是要叫自己把macC给路由器,所以开始构建arp应答

(2)arp应答:主机C在arp层构建arp应答,再向下交付mac帧封装arp应答。

最后路由器收到arp应答,缓存macC,开始报文发送。

顺带一提,rarp协议就是知道mac地址,但是不知道IP地址,这时就很简单,用mac地址直接问IP地址,返回IP地址就行。

2、arp报文格式

硬件类型指链路层网络类型 ,1 为以太网。
协议类型指要转换的地址类型,0x0800 IP 地址。
硬件地址长度对于以太网地址为 6 字节。
协议地址长度对于和 IP 地址为 4 字节。
op 字段为 1 表示 ARP 请求 ,op 字段为 2 表示 ARP 应答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值