深入浅出Android网络优化之网络筑基(后篇),flutterplugin开发

本文深入探讨了Android网络优化中的网络基础,包括ARP、RARP协议、NAT技术的工作原理和应用,以及ICMP协议的详细解析,如Ping和Traceoute的使用。通过理解这些基础概念,开发者可以更好地优化网络通信,提高应用性能。
摘要由CSDN通过智能技术生成
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、询问报文

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

常用的 ping 就是查询报文,是一种主动请求并且获得主动应答的 ICMP 查询报文,如下:

  • ICMP ECHO REQUESTZ「对 ping 的主动请求进行网络抓包」
  • ICMP ECHO REPLY「主动请求的回复」

所以,ping 发的包也是符合 ICMP 格式的,仅仅增加了一些自己的格式。如下所示:

  • 1)、「标识符:派出去两队侦察兵,一队是侦查战况的,一队是去查找水源的,要有个标识才能区分」
  • 2)、「序号:派出去的侦察兵,都要进行编号,便于知道前线的战况」
  • 3)、「发送请求时间值:存放在选项数据中,用来计算往返时间和路程的长短」

ping 命令执行时,源主机会构建一个 ICMP 请求数据包,其中有两个最重要的字段,如下:

  • 1)、「类型:对于请求数据包,此值为8」
  • 2)、「顺序号:区分连续 ping 时发出的多个请求数据包。每发出一个请求数据包,顺序号会自动加1」

2)、ICMP 报文的应用

Ping 应用

例如 ping www.wanandorid.com 网站,如下所示:

quchao@quch

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值