IP协议用于在计算机网络中传递数据包,定义了数据包的格式和处理规则,确保数据能够从一个设备传递到另一个设备,中间可能经过多个不同的设备(路由器)。
假设有两个设备 A 和 B 通过互联网通信,A 的 IP 地址是 192.168.1.1,B 的 IP 地址是 203.0.113.5。数据包的传输过程如下:
①、设备 A 发送数据包:
②、路由器转发数据包:
③、设备 B 接收数据包:
公网IP地址在互联网范围内是唯一的,IP 地址 = {<网络号>,<主机号>}。
网络号表示主机连接的网络地址在互联网中属于哪个网络,主机号用于唯一标识该网络中的设备
IP地址分为A、B、C、D、E五类
IP 地址在同一个网络中是惟一的,用于在该网络中的设备;域名在同一个网络中也是唯一的。
IP和域名的关系是多对多
一个IP多个域名(域名别名):
203.0.113.10 ← example.com
203.0.113.10 ← www.example.com
203.0.113.10 ← shop.example.com
一个域名多个IP(负载均衡):
google.com → 142.250.191.14
google.com → 142.250.191.46
google.com → 172.217.164.110
ARP是数据链路层的协议,将上一层(网络层)的IP地址解析为数据链路层的MAC地址。
MAC地址是数据链路层使用的地址,是写在网卡上的物理地址,用来定义网络中的设备位置,是唯一的。
IP地址是网络层之上使用的地址,是一个逻辑地址,有可能变更,用来区别同一个网络内的计算机,也可以用来跨网络寻址和路由。
为了节省路由器的存储空间。如果只使用MAC地址来寻址,我们需要知道每个MAC地址所属的子网,路由器中需要存储2^48条MAC地址-子网映射,显然不现实。
然而我们可以直接通过IP地址的前缀得到设备属于哪个子网,剩下的寻址交给子网内部去实现,范围逐渐缩小,最终找到目标。
因为设备在联入网络之前没有IP地址,这时需要用MAC地址来区分不同的设备。
而且IP地址是端到端的,一开始就知道最终目标设备的IP地址,逐步缩小网段范围,负责逻辑寻址;MAC地址是点到点的,负责物理传输,用于标识在同一个网段内的物理设备,只有最后一跳才知道最终目标设备的MAC地址。
网络控制报文协议,作用在网络层。
是一个无连接的,用于网络设备之间交互信息,包括错误报告、网络诊断和网络控制。
当遇到无法访问IP地址对应的目标时,或者无法以期望的速率转发数据包时,会自动发送ICMP消息,根据得到的报告定位错误并进行网络控制优化。
ping用来测试网络的可达性和延迟,基于ICMP协议。
首先DNS解析出IP地址,然后向目标IP发送一个ICMP Echo Requst信息。
目标IP收到一个ICMP Echo Request信息后,会响应一个ICMP Echo Reply。
发起ping命令的设备收到这个ICMP Echo Reply信息后,计算平均响应时间和丢包率等信息,告诉我们网络连接的质量。