ARP协议
- 定义与作用
- ARP即地址解析协议,主要用于将IP地址解析为对应的MAC地址。在以太网等局域网环境中,数据链路层通信是基于MAC地址进行的,而网络层及以上通常使用IP地址来标识设备。当一台主机要向另一台主机发送数据时,它需要知道目标主机的MAC地址才能在数据链路层进行数据帧的封装和传输,ARP协议就是用来完成这种地址转换的。
- 工作原理
- 发送ARP请求:当主机A要向主机B发送数据,但不知道主机B的MAC地址时,主机A会在本地网络中发送一个ARP请求广播帧。这个帧包含了主机A的IP地址和MAC地址,以及目标主机B的IP地址。
- 接收与响应:网络中的所有主机都会接收到这个ARP请求,但只有目标主机B会对其进行响应。主机B发现请求中的目标IP地址与自己的IP地址匹配,就会发送一个ARP响应帧,其中包含了自己的MAC地址。
- 缓存更新:主机A接收到主机B的ARP响应后,会将主机B的IP地址和MAC地址的映射关系存储在本地的ARP缓存表中,以便后续再次与主机B通信时可以直接使用,而无需再次发送ARP请求。
- 应用场景
- 局域网通信:在局域网中,主机之间进行数据传输前,都需要通过ARP协议来获取目标主机的MAC地址,从而实现数据链路层的帧传输。
- 路由器转发:路由器在转发数据包时,也需要使用ARP协议来获取下一跳设备的MAC地址,以便将数据包正确地发送到下一个网络节点。
RARP协议
- 定义与作用
- RARP即反向地址解析协议,它的作用与ARP相反,是将MAC地址解析为IP地址。通常在无盘工作站等场景中,设备知道自己的MAC地址,但不知道自己的IP地址,需要通过RARP协议向网络中的RARP服务器请求获取IP地址。
- 工作原理
- 发送RARP请求:无盘工作站启动时,会通过网卡发送一个RARP请求广播帧,帧中包含了它自己的MAC地址,请求网络中的RARP服务器为其分配一个IP地址。
- 服务器响应:RARP服务器接收到RARP请求后,会在其数据库中查找与该MAC地址对应的IP地址。如果找到匹配的记录,RARP服务器就会发送一个RARP响应帧,将分配给该MAC地址的IP地址发送给无盘工作站。
- 地址配置:无盘工作站接收到RARP响应后,就会将获取到的IP地址配置到自己的网络接口上,从而可以在网络中进行通信。
- 应用场景
- 无盘工作站:在无盘工作站环境中,由于设备没有本地存储来保存IP地址等配置信息,需要通过RARP协议从服务器获取IP地址,以便能够连接到网络并获取启动所需的其他资源。
- 网络初始化:在一些特殊的网络环境中,设备在启动或初始化阶段可能需要通过RARP协议来获取IP地址,尤其是在那些需要集中管理和分配IP地址的场景中。
随着技术的发展,RARP协议的使用场景逐渐减少,在现代网络中,动态主机配置协议(DHCP)已经成为更常用的为设备分配IP地址的方式。
DHCP动态主机配置协议
DHCP(Dynamic Host Configuration Protocol)动态主机配置协议是一种用于自动分配网络配置参数的网络协议,DHCP交互中,全程都是使用 UDP广播通信。
概述
DHCP基于UDP协议,工作在客户端/服务器模式下,主要用于为网络中的设备自动分配IP地址、子网掩码、默认网关、DNS服务器地址等网络配置信息,大大简化了网络管理员对大量设备进行IP地址分配和管理的工作,提高了网络配置的效率和准确性,增强了网络的可扩展性和灵活性。
IP地址分配的工作原理
- 发现阶段:客户端启动后,会在本地网络中发送一个DHCP Discover广播数据包,目的是寻找网络中的DHCP服务器。该数据包包含客户端的MAC地址等标识信息,其使用的广播目的地址是 255.255.255.255(端口67)并且使用0.0.0.0 (端口68)作为源IP地址。DHCP客户端将该IP数据报传递给链路层,链路层然后将帧广播到所有的网络中设备。
- 提供阶段:网络中的DHCP服务器接收到DHCP Discover数据包后,会从自己的地址池中选择一个未被使用的IP地址,并将其与其他配置信息(可租约的IP 地址、子网掩码、默认网关、DNS服务器以及IP地址租用期)一起封装在DHCP Offer数据包中,发送给客户端。这个数据包仍然是广播形式,以便客户端能够接收到。
- 请求阶段:客户端可能会收到多个DHCP服务器发送的DHCP Offer数据包,它通常会选择第一个收到的Offer,并向网络中发送一个DHCP Request广播数据包,表明自己选择了该服务器提供的IP地址等配置信息,同时也通知其他DHCP服务器可以收回它们提供的IP地址。
- 确认阶段:DHCP服务器接收到DHCP Request数据包后,会检查该请求是否合法,如果合法,就会发送一个DHCP ACK确认数据包给客户端,正式将IP地址等配置信息分配给客户端,客户端收到确认后,就可以使用分配到的IP地址等信息进行网络通信了。
地址续租的工作原理
- 如果租约的DHCP IP地址快期后,客户端会向服务器发送DHCP请求报文
- 服务器如果同意继续租用,则用DHCP ACK报文进行应答,客户端就会延长租期。
- 服务器如果不同意继续租用,则用DHCP NACK报文,客户端就要停止使用租约的IP地址。
DHCP中继代理
主要功能
- IP地址分配:这是DHCP最主要的功能,服务器可以从预先配置的地址池中动态地为客户端分配IP地址,确保每个客户端都能获得唯一且有效的IP地址。
- 配置参数提供:除了IP地址,DHCP服务器还可以为客户端提供子网掩码、默认网关、DNS服务器地址、域名等其他网络配置参数,使客户端能够完整地配置网络连接。
- 地址续租与回收:DHCP分配的IP地址通常有一定的租约期限。当租约快到期时,客户端会向服务器发送续租请求,如果服务器允许,就会延长租约;如果客户端不再需要IP地址或租约到期未续租,服务器会收回该IP地址,以便重新分配给其他客户端。
NAT原理
- 定义:NAT是一种将私有网络地址(如局域网内的地址)转换为公有网络地址(如互联网上的地址)的技术,使得位于私有网络中的设备能够与外部网络进行通信。
- 工作原理:当内部网络中的一台主机向外部网络发送数据包时,NAT设备会将数据包中的源IP地址替换为自己的公有IP地址,并记录下这个转换关系。当外部网络中的设备响应数据包时,NAT设备再根据记录的转换关系,将目标IP地址转换回内部主机的私有IP地址,从而实现内外网之间的通信。
NAPT原理
- 定义:NAPT是NAT的一种扩展,也称为端口地址转换或PAT。它不仅转换IP地址,还转换端口号,使得多个内部主机可以通过同一个公有IP地址和不同的端口号来与外部网络进行通信。
- 工作原理:NAPT设备在进行地址转换时,会将内部主机的源IP地址和源端口号转换为公有IP地址和一个不同的端口号,并记录下这个转换关系。当外部网络中的设备响应数据包时,NAPT设备根据目标端口号和记录的转换关系,将数据包转发到相应的内部主机。
NAT/NAPT缺点
- 缺点
- 增加了复杂性:NAPT需要同时管理IP地址和端口号的转换,相比NAT,其配置和管理更为复杂。转换表的生成与转换操作都会产生性能开销。
- 可能导致端口冲突:如果内部网络中有多个应用程序使用了相同的端口号,在经过NAPT转换后,可能会导致端口冲突,影响应用程序的正常运行。不过,这种情况可以通过合理规划内部网络的端口使用来避免。
- 对某些特殊应用的兼容性问题:和NAT类似,一些特殊的应用程序可能无法在NAPT环境下正常工作,需要进行特殊的配置或使用穿透技术来解决。
- 外部无法主动与NAT内部服务器建立连接,因为 NAPT 转换表没有转换记录。
- 通信过程中,如果 NAT 路由器重启了,所有的 TCP 连接都将被重置。
NAT 穿透技术
- NAT 穿越技术拥有这样的功能,它能够让网络应用程序主动发现自己位于 NAT 设备之后,并且会主动获得NAT设备的公有IP,并为自己建立端口映射条目,注意这些都是NAT设备后的应用程序自动完成的。
- 也就是说,在NAT穿透技术中, NAT设备后的应用程序处于主动地位,它已经明确地知道NAT设备要修改它外发的数据包,于是它主动配合NAT设备的操作,主动地建立好映射,这样就不像以前由NAT设备来建立映射了。
- 说人话,就是客户端主动从NAT设备获取公有IP地址,然后自己建立端口映射条目,然后用这个条目对外通信,就不需要 NAT 设备来进行转换了。