一个 IPv4 地址有多少位?
32 位
比如, 127.0.0.1:
1 | 127 0 |
192.168.1.0/24 代表哪些 IP 地址?
192.168.1.0 到 192.168.1.255
192.168.1.0/24 表示所有与 192.168.1.0 前 24 位相同的地址
有 2^(32-24)=256 个这样的 IP 地址
这被称为「CIDR 表示法」
每个 TCP 数据包都有 IP 地址吗?
是的,有两个
下面是 TCP 包的结构:
1 | +-+-+-+-+-+-+-+-+--+- |
IP 头包含一个源和目的 IP 地址,一个 TTL,一个长度字段,以及一些其他东西。
每个 UDP 数据包都有 IP 地址吗?
是的
它的结构与 TCP 数据包相同,只是有一个 UDP 头而非 TCP 头。
每个 IP 数据包都有端口吗?
不是
IP 报头含一个 IP 地址,但没有端口
例如,ICMP 数据包(ping 使用的数据包)有一个IP地址,但没有端口
TCP 和 UDP 数据包有端口
计算机的公网 IP 地址是否允许为10.11.12.13?
不允许
以下 3 个 IP 范围是为私有网络保留的:
- 10.0.0.0 – 10.255.255.255
- 172.16.0.0 – 172.31.255.255
- 192.168.0.0 – 192.168.255.255
127.0.0.0/8 也被保留用于同一台计算机内部的连接。
如果你的计算机在本地网络上的 IP 地址是 192.168.1.123,它向 google.com 发送了一个数据包,当数据包到达 google.com 时,数据包上的源 IP 地址是 192.168.1.123 吗?
不是
192.168.1.123是本地 IP 地址,所以谷歌将无法联系到你的电脑
路由器会改写数据包,将数据包的源 IP 改写为计算机的公网 IP
这被称为「网络地址转换」 或 NAT(network address translation)
是否可以发送一个 2M 的 IPv4 数据包?
不行
IPv4 数据包的长度字段为 16 位,所以最大长度是 65535。
在实践中,数据包往往必须比这个数字更小(常见的限制是1500字节)。
你的 ISP 的路由器使用数据包的哪一部分将数据包发送到正确的服务器?
目的IP地址
它们一般不使用数据包中的任何其他信息。
网站如何知道你所在的国家?
根据你的源 IP 地址
很多服务使用你的源 IP 地址来确定你在哪个国家。这就是为什么很多人使用 VPN:他们通过 VPN 进行代理,从而使数据包的源 IP 地址在一个不同的国家。
将 IP 头中的 TTL 字段被设置为 64 有什么用?
它被允许进行 63 次跳跃
这意味着在它完成了大约 63 跳(到 63 个服务器或路由器)之后,就不会被进一步发送。
TTL(time to live)字段的存在是为了避免数据包在互联网上陷入循环。