深入解析互联网协议:揭秘数据包传输与IP地址机制

本文深入解析互联网协议(IP)的核心机制,包括IPv4与IPv6地址结构、数据包分片原理、IP头部字段功能,并澄清IP地址与地理位置关联的常见误解,揭示第三方地理定位数据的局限性。

解包数据包:揭秘互联网协议

互联网是全球协作的产物,旨在构建一个连接数十亿设备的互操作网络,无论国家、区域或制造商差异。这一努力催生了数百种定义设备通信标准的协议。互联网协议(IP)是其中最广为人知的,但自诞生以来便饱受谣言和阴谋论的困扰。

这些谣言虽流传广泛却易于驳斥。IEEE、IETF和ISO等组织已在线发布标准或请求评论(RFC)。这些文档虽充满技术术语,却是信息宝库。当前互联网协议标准(RFC 791)于1981年发布。

本文旨在揭秘互联网协议。

若熟悉实体邮件投递流程,便易理解网络流量传输原理。例如,从纽约搬迁至加州时,物品无法装入单一箱子,需分装多个箱子并粘贴目的地和返回地址后再寄出。

相同概念适用于网络数据传输。发送电子邮件或流式传输最新电影时,数据借助互联网协议(及其他协议)传输。但传输的不是家居物品,而是数据报(datagram),且数据被拆分为数据包(packet)而非箱子。

互联网协议有两大主要功能:寻址和分片。

寻址:源与目的地的IP地址

当前使用的互联网协议有两个版本:IPv4和IPv6。IPv4地址为固定长度,包含四个八位组,形如192.168.1.1。IPv4地址供应有限,当前网络兼容设备数量已超过可用IPv4地址。网络地址转换(NAT)和IPv6是应对IPv4地址枯竭的两种解决方案。

NAT有多个变体,最常见的是端口地址转换(PAT)。互联网服务提供商(ISP)为家庭分配一个IP地址,但用户通常拥有多个需联网设备(游戏机、笔记本电脑、手机、智能电视、Alexa等)。由于每个设备无法拥有唯一IP地址,家庭路由器会为每个设备分配私有IP地址和端口号,然后使用ISP分配的单公网地址将所有设备流量发送至公共互联网。

IPv6旨在完全替代IPv4。IPv4共有43亿个地址,而IPv6约有340万亿个。因多种原因,IPv6推广缓慢但采用率正逐步上升。Google定期发布用户IPv6连接统计数据。

分片:数据包拆分与重组

当数据报过大无法穿越网络时,需进行分片。由于多种数据包大小限制,互联网协议需将数据报拆分为任意数量的片段供后续重组。

IP数据包包含两个关键部分:头部和数据。

IP头部包含数据传输和重组指令。下图展示IPv4头部结构:

图1:RFC 791

各头部组件摘要:

  • 版本:当前使用的IP版本为IPv4和IPv6。上图展示IPv4头部格式。
  • 互联网头部长度:指示头部结束和数据开始位置。
  • 服务类型(ToS):虽不常用,ToS使管理员能优先处理不同流量,请求低延迟、高吞吐量或高可靠性服务路由。该组件在不同RFC中历经变更。
  • 总长度:数据包总长度,含头部和数据。
  • 标识:若数据报被分片为多个IP数据包,每个包含相同16位标识号以指示归属同一组。
  • 标志:指示数据报是否及如何分片。
  • 分片偏移:标识分片数据顺序。
  • 生存时间:数据包允许留存网络的最长时间。此功能防止路由环路和无法到达目的地的数据包导致拥塞。
  • 协议:IP数据包被另一传输协议封装;此字段指示所用协议。
  • 头部校验和:头部在传输途中可能变更(如生存时间),校验和可指示是否存在错误。
  • 源地址:发送方IP地址。
  • 目的地址:目的地IP地址。
  • 选项:特殊交付指令。此字段默认禁用且不常用。
  • 填充:确保IP头部长度为32位。

互联网数字分配机构(IANA)

几乎每人拥有IP地址,但多数人不熟悉其分配方式。关于IP地址功能存在常见误解。网络充斥声称IP地址可精确定位某人位置的视频。但此前解析中未提及位置信息。数据包不含位置信息或坐标,IP地址仅是几乎随机分配的数字。

互联网数字分配机构(IANA)致力于跟踪和分配有限IPv4地址。IANA将IP地址块委托给区域互联网注册管理机构(RIR),后者再将地址块分配给区域内不同请求组织(如ISP)。ISP随后将地址分配给客户。家庭和手机由此获得地址,实现互联网数据传输。主要区域包括:

  • AFRINIC:非洲区
  • APNIC:亚太区
  • ARIN:加拿大、美国及部分加勒比岛屿
  • LACNIC:拉丁美洲及部分加勒比岛屿
  • RIPE NCC:欧洲、中东和中亚

IP地址与地理定位的真相

多家地理定位公司拥有专有位置数据库。这些数据库精度不一且数据冲突。撰写本文时,WhatIsMyIPAddress显示笔者位置为华盛顿,而MaxMind显示为德克萨斯。无官方准确数据库;地理定位数据均由第三方公司编译。此类数据对广告商定位目标受众具有价值(如本地冰淇淋店在线广告定位区域人群),但不提供用户精确坐标,仅能精确至邮政编码。

信息收集方式包括:

  • RIRs作为位置信息主要来源。注册管理机构允许指定者为其IP地址块指定国家和地理坐标,但无提供信息或保证准确性要求。
  • 用户提交数据(如天气网站请求位置提供基于位置的预报),数据可出售给地理定位公司。
  • 将GPS坐标与IP地址关联。
  • 根据分配IP地址的ISP猜测位置。

位置数据不可靠的原因包括:

  • 用户可能使用VPN或代理隐藏真实IP地址。
  • IP地址块可转让和出售。早期互联网先驱(如MIT)在个人计算机普及前获大量地址,后将其出售(如MIT向亚马逊出售约800万个地址)。公司破产等亦导致地址转让。
  • 公司合并常见。大型ISP收购小型ISP可能导致网络工程师面临复杂问题,引发重大网络变更。
  • 多数IP地址动态分配且可能无意中变更。原因包括路由器断电或重置后重连、更换ISP等。IP地址被回收并重新分配给不同位置用户。

位置数据误解引发的现实问题

ARIN 2018年发布博客解释无主IP地理定位数据库,且无法控制第三方数据收集方式。博客引用2017年学术研究,指出ARIN的城市级位置数据不可信。

2016年,堪萨斯家庭因经历“数字地狱”起诉MaxMind。警方和政府官员反复造访家庭农场调查各类犯罪、失踪人员甚至自杀未遂事件。该家庭最终发现MaxMind将农场设为6亿IP地址的默认位置。公司后将默认位置改为堪萨斯湖泊,诉讼私下和解。南非另一家庭遭遇类似问题,MaxMind将其位置设为数千IP地址的默认值。

互联网协议蕴含众多复杂细节,但本文望为基础知识提供良好起点。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计