以太网
环回接口
详见https://www.bilibili.com/video/av10610680?p=2 60:00
- 传给环回地址(127.0.0.1)的任何数据均作为IP输入
- 传给广播地址或多播地址的数据报复制一份传给环回接口,然后送到以太网上。这是因为广播传送和多波传动的定义,包含主机本身
- 任何传给该主机IP地址的数据军送到环回接口
MTU
- 数据帧最大的字节(1500,802是1492)
- 如果IP层有一个数据包要传,而且数据的长度比链路层的MTU还大,那么IP层就要进行分片
- 点到点的链路层和MTU并非指的是网络媒体的物理特性,而是一个逻辑限制,目的是为交互使用提供足够快的响应时间
- 两台通信主机路径中的最小MTU,被称作路径MTU,路径MTU在两个方向上不一定是一致的
IEEE802封装
- 802.3针对整个CSMA/CCD网络
- 802.4针对令牌总线网络
- 802.5针对令牌环网络
- 这三者的共同特性由802.2标准来定义,那就是802网络共有的逻辑链路控制(LLC)
3. ARP
3.1 过程
- 应用程序FTP客户端调用函数gethostbyname把主机名换成32bit的IP地址。
- FTP客户端请求TCP用得到的IP地址建立连接
- TCP发送一个连接请求分段到远端的主机,即用上述IP地址发送一份IP数据报
- 如果目的主机在本地网络上(如以太网、令牌环网或对点链接的另一端),那么IP数据报可以直接送到目的主机上,如果目的主机在一个远程网络上,那么通过IP选路函数来确定位于本地网络上的下一站路由器地址,并让它转发IP数据报。这两种情况下,IP数据报都是被送到位于本地网络上的一台主机或路由器.。
- 假设是一个以太网,那么发送端主机将32bit的IP地址变成48bit的以太网地址。从逻辑地址到对应的物理地址需要进行翻译。这就是ARP的功能。ARP本来事用于广播网络的,有许多主机或路由器连在同一个网络上
- ARP发送一份称作ARP请求的以太网数据帧给以太网上的每个主机。这个过程称作广播。ARP请求数据帧中包含目的主机的IP地址,其意思是如果你是这个IP地址的拥有者,请你回答你的物理地址
- 目的主机的ARP层收到这份广播报文后,识别出这是发送端在询问他的IP地址,于是发送一个ARP应答。这个ARP应答包含IP地址及对应的物理地址
- 收到ARP应答后,使ARP进行请求-应答交换的IP数据报现在就可以传送了。
- 发送IP数据报到目的主机
- 注意:ARP每次请求,所有服务器(不管是不是目的服务器),都会查看源IP地址和源mac地址,并更新自己的路由表
3.2 ARP分组格式
- 以太网首部(14)+ARP部分(28)
- 以太网首部:以太网目的地址(mac,6)+以太网原地址(mac,6)+帧类型(2)
- 帧类型:0x0806是ARP
- ARP部分:硬件类型(2)+协议类型(2)+硬件地址长度(1)+协议地址长度(1)+操作类型(2)+发送端以太网地址(6)+发送端IP地址(4)+目的以太网地址(6)+目的IP地址(4)
- 硬件类型标志硬件地址的类型。1表示以太网地址。
- 协议类型表示协议地址类型,0x0800表示IP地址
- 硬件地址长度和协议地址长度即后面两种地址的长度
- 操作类型在ARP里,1是ARP请求,2是ARP应答,3是RARP请求,4是RARP应答
3.3 代理ARP
一个主机R1为no ip routing(无默认网关,无路由能力),此时另外一个个路由器R2开启代理模式,则当R1发出10.1.2.3的arp请求时,R2收到后会帮R1寻找,若找到,将R2接口的mac地址发送给R1,即R1会将接下来的ip包中的mac地址是R2的接口地址
3.4 免费ARP
- 己请求自己,即发送自己的IP地址请求,若有人回复,则说明新建的IP地址有重复
- 每次更换IP,或者机器启动,都会发送一次免费ARP