当前位置: 首页 > news >正文

【Java EE】IP协议

IP协议详解

  • IP协议基础
  • IP数据报格式
  • IP数据报分片机制
  • 地址管理
    • IP地址的表示与分类
    • 子网划分与子网掩码
    • 特殊IP地址
    • 私有IP地址与NAT
    • IPV6
  • 路由选择
    • 路由表与转发
  • 域名系统
    • DNS层次结构与解析过程
    • DNS记录类型

IP协议基础

IP协议工作在OSI模型的网络层(或TCP/IP模型的网际层),其主要特点是无连接、不可靠和尽力而为的数据传输服务。

  • 无连接:通信前无需建立连接,每个数据包(IP数据报)独立路由。
  • 不可靠:不保证数据包一定能送达目的地,也不保证按序到达,不提供确认和重传机制。可靠性由上层协议(如TCP)保障。
  • 尽力而为:尽最大努力交付数据包。

下面是 TCP/IP 协议栈的层次结构示意图,IP 协议位于网际层:

网络接口层

Ethernet

WiFi

PPP

网际层

IP

ICMP

ARP

传输层

TCP

UDP

应用层

HTTP

FTP

SMTP

DNS

IP数据报格式

一个IP数据报由首部数据两部分组成。首部包含了路由和交付所需的所有控制信息。

关键字段说明:

字段位数说明
版本4位标识IP协议版本(对于IPv4数据包,该字段的值固定为 4;对于IPv6数据包,其版本字段的值则为 6)
首部长度4位以4字节为单位,指示首部长度(可能包含可变长的选项字段(如时间戳、源路由等),因此首部长度是可变的)
服务类型8位用于指示数据报的优先级、延迟、吞吐量等要求
总长度16位定义整个IP数据报(首部+数据)的长度,最大65535字节
标识、标志、片偏移用于IP数据报分片与重组
生存时间8位数据报在网络中可经过的最大路由器跳数,每经过一个路由器减1,为0时被丢弃,防止数据报无限循环
协议8位指示上层协议(如下面的常见上层协议的标识号补充列表所示)
首部检验和16位用于校验首部在传输过程中是否出错
源IP地址和目的IP地址各32位数据报的发送方和接收方的逻辑地址

常见上层协议的标识号补充列表:

协议号协议名称说明
1ICMP互联网控制消息协议
2IGMP互联网组管理协议
6TCP传输控制协议
17UDP用户数据报协议
47GRE通用路由封装协议
50ESP封装安全载荷协议
51AH认证头协议
88EIGRP增强型内部网关路由协议
89OSPF开放最短路径优先协议
115L2TP第二层隧道协议

这些标识号在IP报文头部的「协议」字段中使用,用于指示IP数据包承载的上层协议类型。

IP数据报分片机制

由于不同物理网络的最大传输单元(MTU)各不相同(如以太网MTU为1500字节,而某些广域网链路MTU可能更小),当IP数据报的总长度超过下一跳链路的MTU时,IP协议会自动将数据报拆分成多个较小的数据报,这个过程称为分片。分片后的每个数据报都拥有与原数据报相同的标识字段,以便接收端识别它们属于同一个原始数据报。

分片相关的三个关键字段:

  • 标识:源主机为每个原始数据报分配的唯一编号,所有分片共享该标识,用于重组时归并。
  • 标志:3位标志位,其中:
    • DF(Don’t Fragment):置1表示不允许分片,若数据报超过MTU则直接丢弃并返回ICMP错误。
    • MF(More Fragments):置1表示后面还有更多分片,置0表示这是最后一个分片。
  • 片偏移:以8字节为单位,指示当前分片在原始数据报中的偏移位置,用于重组时按顺序拼接。

分片只在路由器上进行,重组则在目的主机完成。IP协议本身不提供重传机制,如果某个分片丢失,整个数据报都会被丢弃,可靠性由上层协议(如TCP)保障。

地址管理

IP地址是IP协议中用于唯一标识网络中设备的逻辑地址。

IP地址的表示与分类

IPv4地址是一个32位的二进制数,通常用点分十进制表示(如192.168.1.1)。


图:传统的IP地址分类(A、B、C、D、E类)

类别前缀二进制位网络号位数主机号位数用途
A类08位24位用于大型网络
B类1016位16位用于中型网络
C类11024位8位用于小型网络
D类1110--用于多播
E类1111--保留

子网划分与子网掩码

分类地址浪费严重,子网划分允许将一个大的网络号(A、B、C类)划分成多个更小的子网。

子网掩码是一个32位的数字,它由一串连续的1后跟一串连续的0组成。1对应网络号和子网号部分,0对应主机号部分。通过与IP地址进行“按位与”操作,可以提取出网络地址。

图:子网掩码用于区分IP地址中的网络部分和主机部分

例如,一个C类地址192.168.1.0/24,使用子网掩码255.255.255.224(或/27)可以将其划分为多个子网。

图:将一个C类网络划分为多个子网的计算过程

特殊IP地址

类型示例或格式用途
网络地址192.168.1.0(主机位全0)标识网络本身,不分配给具体主机。
直接广播地址192.168.1.255(主机位全1)向该网络内所有主机发送数据包。
受限广播地址255.255.255.255仅在本地网络内广播,路由器不转发。
本机环回地址127.0.0.1测试本机网络协议栈,数据不离开主机。
链路本地地址169.254.0.0/16DHCP失败时自动分配,用于本地通信(如Windows的APIPA地址)。

补充说明

  • 网络地址直接广播地址的主机位规则适用于所有IPv4地址(如A/B/C类网络)。
  • 链路本地地址范围是169.254.0.1至169.254.255.254(RFC 3927)。

私有IP地址与NAT

为了缓解IPv4地址枯竭问题,RFC 1918规定了三类私有IP地址范围,这些地址不能在公网上路由,主要用于内部网络。

网络地址转换是使私有网络能够访问公网的关键技术。NAT路由器将内部私有IP地址和端口号,映射为公网IP地址和端口号。

NAT地址转换可视化网站

图:NAT(网络地址转换)工作流程示意图


IPV6

为了解决地址枯竭问题~
IPv6

路由选择

IP协议的核心功能之一是通过路由选择将数据包从源主机传递到目的主机。

路由表与转发

每个路由器或主机都维护一张路由表,表项通常包含:目的网络地址、子网掩码、下一跳地址、出接口等。

图:一个典型的路由表结构,包含网络地址、掩码、网关和接口

补充:转发过程+路由协议

域名系统

域名系统将人类可读的域名(如www.example.com)转换为机器可读的IP地址。

DNS层次结构与解析过程

DNS是一个分布式的、层次化的数据库系统。

根域名服务器
.

顶级域名服务器
.com

顶级域名服务器
.org

顶级域名服务器
.net

顶级域名服务器
.edu

顶级域名服务器
.cn

权威域名服务器
example.com

权威域名服务器
google.com

权威域名服务器
wikipedia.org

权威域名服务器
baidu.com.cn

子域名服务器
www.example.com

子域名服务器
mail.example.com

子域名服务器
www.google.com

子域名服务器
maps.google.com

子域名服务器
en.wikipedia.org

子域名服务器
www.baidu.com

递归/迭代查询过程

  1. 主机向本地DNS服务器发起递归查询。
  2. 本地DNS服务器代表主机向根域名服务器、顶级域名服务器、权威域名服务器进行迭代查询,最终获得IP地址。
  3. 本地DNS服务器将结果返回给主机,并可能缓存起来。

DNS记录类型

记录类型说明例子
A记录将域名映射到 IPv4 地址example.com93.184.216.34
AAAA记录将域名映射到 IPv6 地址example.com2606:2800:220:1:248:1893:25c8:1946
CNAME记录域名别名,将一个域名指向另一个域名www.example.comexample.com
MX记录邮件交换记录,指定负责接收邮件的服务器,并带有优先级example.commail.example.com(优先级 10)
NS记录指定该域名的权威域名服务器example.comns1.example.com
TXT记录存放任意文本信息,常用于 SPF、DKIM、DMARC 及域名验证example.com"v=spf1 include:_spf.google.com ~all"
SOA记录授权起始记录,包含管理信息(主DNS、管理员邮箱、序列号等)example.comns1.example.com admin@example.com 2024052401 3600 …
PTR记录指针记录,用于反向解析:IP 地址 → 域名34.216.184.93.in-addr.arpaexample.com
SRV记录服务定位记录,指定特定服务的主机名和端口_sip._tcp.example.comsip.example.com:5060
CAA记录证书颁发机构授权,限制谁能签发证书example.com0 issue "letsencrypt.org"
http://www.jsqmd.com/news/886017/

相关文章:

  • SLAM/VIO中的信息矩阵:为什么它是优化问题的‘灵魂’?一个直观的图解指南
  • 通过Taotoken管理控制台实现API Key的权限与审计管理
  • 泉州梅雨季来临,房屋漏水抓紧修!2026最新房屋漏水维修公司TOP5调研盘点!卫生间免砸砖防水、楼顶外墙、阳光房+地下室渗漏解决方案解析 - 防水百科
  • 在Taotoken模型广场中根据任务与预算挑选合适模型的决策过程
  • 如何在浏览器中一键解密所有加密音乐文件:Unlock-Music完全指南
  • 2026 昆山黄金回收哪家靠谱?5 家实地测评,高价无套路 - 资讯快报
  • 树莓派5与Hailo-8L构建实时AI视觉测距系统:从原理到实践
  • 【WinForm UI控件系列】模式输入对话框inputDialog(支持文本,整型、浮点型数字、单选框、多选框、下拉框、颜色)
  • AI Agent 面试题 958:LangChain框架的核心架构和设计理念详解
  • GIS工程应用记录(AI辅助编程)
  • 通过curl命令快速测试Taotoken大模型API的连通性与返回格式
  • 从零理解 Redisson:Java 分布式工具箱的入门与实战
  • 私有化视频会议解决方案/智能会议管理系统EasyDSS筑牢企业远程培训核心技术底座
  • Chromebook常用配置 - yi
  • Claude多方案对比评估深度复盘(企业级评估框架首次公开)
  • Python 3、VS Code、PyCharm 安装常见问题及解决方案大全(Windows/Mac/Linux)
  • 宁波梅雨季来临,房屋漏水抓紧修!2026最新房屋漏水维修公司TOP5调研盘点!卫生间免砸砖防水、楼顶外墙、阳光房+地下室渗漏解决方案解析 - 防水百科
  • 私有化视频会议系统EasyDSS一个平台,搞定直播、点播、作业、统计—学校终于不用买多套系统了
  • 蓝桥杯软件测试备考:用Python+Selenium搞定Web自动化那些高频考点(附完整代码)
  • TVA注意力层INT8量化配置技巧
  • 泰州梅雨季来临,房屋漏水抓紧修!2026最新房屋漏水维修公司TOP5调研盘点!卫生间免砸砖防水、楼顶外墙、阳光房+地下室渗漏解决方案解析 - 防水百科
  • 感谢雷总!Mimo大模型价值¥659/月的 MAX 套餐,让我免费领到了!
  • Nodejs后端服务如何集成Taotoken实现多模型智能对话
  • 虚幻5 Unrealsharp EditorTick + Nanite雪地踩坑记录
  • http响应的 headers中拿到文件名
  • 开源权重、商业闭源、衍生模型——DeepSeek知识产权边界全解析,一文厘清5类侵权陷阱
  • Jira 自动化语言编码双计数器机器:实现加法与斐波那契数列运算,具备图灵完备性
  • 如何快速搭建ROS机器人仿真环境:完整实战指南
  • 开发多语言翻译服务时如何利用多模型能力优化效果与成本
  • 2026年5月西安GEO优化服务商TOP5:AI搜索与豆包排名实战推荐 - 资讯快报