深入浅出Android网络优化之网络筑基(后篇),我凭什么拿到了阿里、腾讯、今日头条3家大厂offer

本文深入探讨了Android网络优化,详细阐述了ARP缓存、RARP协议、NAT技术以及ICMP协议的工作原理,揭示了这些基础知识在获取大厂offer中的关键作用。内容涵盖ARP缓存的查看、网络地址转换的目的和端口映射,以及ICMP协议在Ping和网络故障排查中的应用。
摘要由CSDN通过智能技术生成
ARP 缓存池表

「缓存了 IP 地址到硬件地址之间的映射关系。有缓存时直接从缓存中取出即可,没有缓存时则会和 MAC 地址表获取地址时使用的广播形式类似」,即

  • 1)、「E 检查 MAC 地址表,发现没有 C 的信息」
  • 2)、「E 将广播 A 的数据包到除 A 以外的端口」
  • 3)、「E 将收到来自 B、C 的回应,并将地址记录」

「ARP 缓存是 ARP 协议和 RARP 协议运行的关键。此外,ARP 缓存表中的记录并不是永久有效的,有一定的期限」

查看 ARP 缓存表

使用 arp -a 命令,如下所示:

quchao@quchaodeMacBook-Pro EMC-MBANK-ANDROID % arp -a
? (22.1.253.254) at 0:10:db:ff:10:0 on en0 ifscope [ethernet]
? (224.0.0.251) at 1:0:5e:0:0:fb on en0 ifscope permanent [ethernet]
? (239.255.255.250) at 1:0:5e:7f:ff:fa on en0 ifscope permanent [ethernet]

ARP 协议

「ARP 协议被直接封装在了数据链路层中的数据帧里面的」

既然 ARP 协议是直接被封装在数据链路层中的数据帧里面的,那么为什么它是属于网络层的内容?

主要是因为 「ARP 协议使用到了网络层的 IP 地址」

ARP 协议内容

2)、RARP(Reverse Address Resolutioni Protocol)逆地址解析协议

  • 1)、「将数据链路层 MAC 48位地址转换为网络层 IP 32位地址」
  • 2)、「除了类型 8035 标识为 RARP 协议,其它内容与 ARP 协议类似」

3)、小结

  • RARP 协议与 ARP 协议是 TCP/IP 协议栈里面的基础协议,它们的操作对程序员是透明的。
  • 理解它们有助于我们理解网络分层的细节。
  • 「它们是协调数据链路层和网络层配合工作的重要协议」

4、网络地址转换 NAT(Network Address Translationn) 技术

「不改变 IP 地址的网关,我们称为转发网关;改变 IP 地址的网关,我们称为 NAT 网关」

为什么要使用 NAT?

  • 1)、「IPv4 最多只有40+亿个 IP 地址」
  • 2)、「早期 IP 地址的不合理规划导致 IP 号浪费」

1)、内网地址

特点
  • 1)、内部机构使用。
  • 2)、避免与外网地址重复。
三类内网地址
  • 「A 类:10.0.0.0~10.255.255.255(支持千万数量级设备)」
  • 「B 类:172.16.0.0~172.31.255.255(支持百万数据级设备)」
  • 「C 类:192.168.0.0~192.168.255.255(支持万数量级设备)」

对于公司,它可以在外部使用全球唯一的外网 IP 地址,通常在内部使用一个 B 类内网地址即可。

同理,对于家庭可以在外部使用全球唯一的外网 IP 地址,通常在内部使用一个 C 类内网地址即可。

问题:内网的多个设备使用同一个外网 IP 请求外网服务,外部是怎么样才能知道是哪一个内网设备请求的呢?

「使用 NAT ,它用于多个主机通过一个公有 IP 访问互联网的私有网络,并减缓了 IP 地址的消耗,但是增加了网络通信的复杂度」

2)、外网地址

  • 全球范围使用。
  • 全球公网唯一。

3)、端口映射

例如如下两个 NAT 转换过程:发送数据时,A 设备内网地址和端口号 => 外网地址与端口号:192.168.2.11:6666 => 173.21.59.10:16666,B 设备内网地址和端口号 => 外网地址与端口号:192.168.2.10:7777 => 173.21.59.10:17777。

「由于同时转换了 Port ,即进行了 端口映射,NAT 也可称为 NA§T」

5、ICMP(Internet Control Message Protocol)协议

1)、ICMP 协议拆解

功能

ICMP 协议主要是用于 「辅助 IP 协议发送与接收数据的,它可以报告错误信息或异常情况」

ICMP 报文结构

「ICMP 协议被封装在 IP 数据报的数据之中,其也分为 报文首部与报文数据。如果需要使用 ICMP 协议,则需要在 IP 协议首部的8位协议中写入1,以表明 IP 数据所携带的具体数据是 ICMP 协议的」

类型
1、差错报告报文

差错报告报文具体分为 「七种类型」,而 「大部分的报文类型是由类型的值和具体代码组成的」。具体如下图所示:

2、询问报文

询问报文具体分为 「两类」,它仅仅是由 「类型的值」 决定的。具体如下图所示:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值