文章目录
- 数据包在传输过程中的变化过程
- 单播组播和广播
- ARP协议
- ARP代理
- 免费ARP
- 路由数据转发过程
- DNS协议
数据包在传输过程中的变化过程
在说ARP和DNS之前,我们需要知道数据包在传输过程的变化过程
从图片中可以看到,发送方的原数据最开始是在应用层,然后再传输层加上UDP头,再网络层加上IP头,在物理层加上帧头、帧尾和CRC校验,然后接收方会逐层校验拆包,知道在应用层得到原数据
单播组播和广播
单播就是一对一的,广播就是看目标设备在不在范围内,组播是看目标设备是不是要发送的设备
ARP协议
地址解析协议,是根据IP地址获取物理地址的一个TCP/IP协议,用在双端设备在通讯收发数据之前,如果不知道对端的MAC地址,就可以通过ARP协议来获取
ARP协议是跨数据链路层和网络层的,所以他的上层协议是IP协议
ARP协议实现的过程就是自己设备会发送一个ARP Request的广播,那么当前路由器所连接的所有设备都会收到这个广播,数据包中的目的MAC填0,所有收到这个广播的设别都会看自己的IP是不是这个广播的目IP,如果不是就会将这个包丢弃,如果是就会回一个ARP Reply的单播,然后就可以开始通信了
ARP代理
当发送端广播ARP请求时,本地网络上不会有主机回应(因为IP地址是外网的),此时路由器将会回应该请求,则发送源认为路由器就是目的主机,会将报文全部转发给它,再由路由器转发报文到外网,则该路由器就被称为ARP代理。
免费ARP
在主机开机配置时,会发送一个目的IP地址为自己IP地址的ARP请求报文,该报文称之为免费ARP,作用有两点:
- 让主机确认本地网络上是否有与自己IP地址相同的主机,若有,则会返回一个错误报文。
- 告诉整个广播域,目前某个IP所对应的MAC地址是什么——这一行为就像是在发宣传单,而宣传单是不需要回应的。若接收主机ARP缓存中本身就有发送源主机IP—MAC对,则会更新,否则,会缓存发送源的IP—MAC对。
路由数据转发过程
原设备和目的设备不是连接同一个路由器上的,需要通过多个路由器转发才能连接上
每次发送数据的时候源ip是当前设备的ip地址,源mac是最开始设备mac地址,目的ip为最终设备的ip地址,目的mac是下一跳的mac(通过路由表寻找)
DNS协议
域名解析协议,DNS服务器将好记的域名解析成IP地址
**过程:**网络客户端将要访问的域名传到本地DNS服务器,如果缓存里有就直接返回IP地址,如果没有就访问DNS根服务器,发现是.com域,那么本地DNS服务器再访问.com域服务器,发现是.163.com域,那么再次访问.163.com域服务器寻找IP地址。