一、理解
实现一路内点对点通信。在一个碰撞域里面的通信。
实现方式:以太网,令牌环网,无线LAN...
二、认识以太网
三、以太网帧格式
数据最多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影响
2、对TCP影响
六、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地址就行。