一、IP协议概述

互联网协议(Internet Protocol,IP)是TCP/IP协议族的核心成员,位于OSI模型的网络层(第三层),负责将数据包从源主机传输到目标主机。它是一种无连接、不可靠的协议,提供“尽力而为”的数据包交付服务,依赖上层协议(如TCP)实现可靠性。

1.1 协议定位
  • 核心功能:寻址与路由选择,即根据IP地址确定数据包的路径。
  • 协议栈位置:上层承载TCP、UDP等传输层协议,下层依赖以太网、Wi-Fi等链路层协议。
  • 版本演进
    • IPv4(1981年,RFC 791):目前最广泛使用的版本,32位地址空间。
    • IPv6(1998年,RFC 2460):为解决IPv4地址耗尽问题设计,128位地址空间。
1.2 关键特性
  • 无连接:每个数据包独立路由,无需建立连接(对比TCP的三次握手)。
  • 不可靠:不保证数据包按序、完整到达,丢失或出错时不主动通知。
  • 尽力而为:仅提供基本传输服务,依赖上层协议(如TCP)实现可靠性。
  • 异构网络互联:屏蔽底层网络差异,使不同类型的网络(如以太网、Wi-Fi、广域网)能互联互通。
二、IP协议的工作原理

IP协议的核心功能是寻址路由,通过IP地址标识主机,并通过路由算法确定数据包的传输路径。

2.1 寻址机制
  • IP地址:32位(IPv4)或128位(IPv6)的标识符,用于唯一标识网络中的设备。(数字虚拟地址,就像现实中的地址,可以标识网络中的一个节点,数据就是通过它来找到目的地)
  • 分层结构:IPv4地址分为网络号和主机号两部分(如192.168.1.1中,192.168.1为网络号,1为主机号)。
  • 子网掩码:用于划分IP地址的网络号和主机号(如255.255.255.0表示前24位为网络号,后8位为主机号)。
    在这里插入图片描述
2.2 路由选择
  • 路由器:网络层设备,根据IP地址转发数据包。
  • 路由表:存储网络前缀与下一跳地址的映射关系,路由器据此决定数据包的转发路径。
  • 路由算法:动态路由协议(如OSPF、BGP)自动更新路由表,适应网络拓扑变化。
2.3 数据包格式
  • IPv4数据包

    • 首部:固定20字节(可选字段最多40字节),包含版本、首部长度、服务类型、总长度、标识、标志位、片偏移、生存时间(TTL)、协议、首部校验和、源IP、目的IP等字段。
    • 数据部分:上层协议数据(如TCP/UDP报文)。
      在这里插入图片描述
  • IPv6数据包

    • 基本首部:固定40字节,简化结构(如取消首部校验和,分片由源主机处理)。
    • 扩展首部:可选,用于支持更多功能(如认证、分片)。
    • 数据部分:同IPv4。

在这里插入图片描述

2.4 工作流程

1.电脑
在这里插入图片描述
2.交换机
在这里插入图片描述
3.路由器
在这里插入图片描述

三、IPv4地址

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

3.1 地址分类(历史分类)

IPv4地址范围0.0.0.0 ~ 255.255.255.255
网络号代表所在的网段,主机号表示同网段下的设备
早期IPv4地址分为五类:

  • A类(大规模网络):0.0.0.0-127.255.255.255,默认子网掩码255.0.0.0(/8),前8位为网络号,后24位为主机号。
  • B类(中规模网络):128.0.0.0-191.255.255.255,默认子网掩码255.255.0.0(/16),前16位为网络号,后16位为主机号。
  • C类(小规模网络):192.0.0.0-223.255.255.255,默认子网掩码255.255.255.0(/24),前24位为网络号,后8位为主机号。
  • D类(多路广播网络):224.0.0.0-239.255.255.255,用于组播。
  • E类(保留地址):240.0.0.0-255.255.255.255,保留用于科学研究。

局限性:地址分配不均(如A类地址浪费严重),已被CIDR取代。

复杂子网掩码示例 255.255.255.252
在这里插入图片描述

子网掩码规定换成二进制后前面必须是连续的1,后面是连续的0,不可能出现255.255.255.1这样的子网掩码

3.2 CIDR(无类别域间路由)
  • 背景:解决IPv4地址耗尽问题,替代传统分类。
  • 原理:使用“/前缀长度”表示子网掩码(如192.168.1.0/24等价于255.255.255.0)。
  • 优势:支持更灵活的地址分配(如可分配/26、/27等非标准子网)。

一个网段可用的地址数量为2n2^n2n-2(n为主机部分的比特位数)

3.3 特殊IP地址
  • 回环地址:127.0.0.1(localhost),用于本地主机通信。
  • 广播地址
    • 直接广播:特定网络的广播地址(如192.168.1.255/24)。
    • 有限广播:255.255.255.255,用于本网段内广播。
  • 私有IP地址
    • A类:10.0.0.0-10.255.255.255(/8)
    • B类:172.16.0.0-172.31.255.255(/12)
    • C类:192.168.0.0-192.168.255.255(/16)
  • 0.0.0.0:表示“任意地址”,用于路由表中的默认路由或主机启动时。
3.4 子网划分
  • 目的:提高地址利用率,隔离网络流量。
  • 方法:借用主机位作为子网位(如将/24划分为两个/25子网)。
  • 计算示例
    • 原网络:192.168.1.0/24(256地址,可用254,除去了第一个和最后一个)。
    • 划分为两个子网:
      • 子网1:192.168.1.0/25(128地址,可用126),广播地址192.168.1.127。
      • 子网2:192.168.1.128/25(128地址,可用126),广播地址192.168.1.255。
四、IPv6地址详解

IPv6为解决IPv4地址耗尽问题而设计,采用128位地址空间,提供约3.4×10³⁸个地址。

4.1 地址表示
  • 冒分十六进制:每16位用冒号分隔,如2001:0db8:85a3:0000:0000:8a2e:0370:7334。
  • 零压缩:连续的零可简化为双冒号(::),但只能出现一次。
    • 示例:2001:0db8:0000:0000:0000:0000:1428:57ab → 2001:db8::1428:57ab。
  • 内嵌IPv4地址:兼容IPv4的地址,如::ffff:192.168.1.1。
4.2 地址类型
  • 单播地址:唯一标识一个接口,数据包传至该地址。
    • 全球单播地址:2000::/3,全球可路由的公网地址。
    • 链路本地地址:fe80::/10,仅在本地链路内通信(如同一交换机下的设备)。
    • 唯一本地地址:fc00::/7,私有地址,类似IPv4的私有地址。
  • 组播地址:ff00::/8,数据包传至所有加入该组的接口。
  • 任播地址:从一组接口中选择最近的一个(路由意义上的最近)。
4.3 关键特性
  • 无广播地址:用全节点组播地址(ff02::1)替代。
  • 自动配置:支持无状态自动配置(通过RA消息获取前缀)和有状态配置(DHCPv6)。
  • 简化首部:固定40字节,取消分片、首部校验和等字段。
  • 安全性增强:强制支持IPsec(IP安全协议),提供加密和认证。
五、IP地址分配与管理

IP地址的分配需遵循全球统一的规则,确保唯一性和高效利用。

5.1 分配机构
  • IANA(互联网号码分配局):全球最高管理机构,分配地址块给RIR。
  • RIR(区域互联网注册管理机构)
    • ARIN(北美)
    • RIPE NCC(欧洲、中东、中亚)
    • APNIC(亚太地区)
    • LACNIC(拉丁美洲)
    • AfriNIC(非洲)
  • ISP(互联网服务提供商,如移动,电信,联通):从RIR获取地址块,分配给用户。
5.2 动态分配(DHCP)
  • DHCP(动态主机配置协议):自动分配IP地址、子网掩码、网关等配置。
  • 工作流程
    1. DHCP Discover:客户端广播请求。
    2. DHCP Offer:服务器响应可用IP。
    3. DHCP Request:客户端请求特定IP。
    4. DHCP ACK:服务器确认分配。
  • 租期管理:IP地址有租用期限,到期需续租或重新分配。
5.3 静态分配
  • 手动配置:管理员为设备手动分配固定IP地址。
  • 适用场景:服务器、网络设备(如路由器)等需固定IP的设备。
5.4 NAT(网络地址转换)
  • 背景:缓解IPv4地址耗尽问题,允许多台内网设备共享一个公网IP。
  • 工作原理
    • SNAT(源NAT):修改数据包的源IP地址(如将内网192.168.1.1转换为公网203.0.113.1)。
    • DNAT(目的NAT):修改数据包的目的IP地址(如将公网流量转发至内网服务器)。
  • 实现方式
    • 静态NAT:一对一映射。
    • 动态NAT:多对多映射。
    • NAPT(网络地址端口转换):最常见,多对一映射,通过端口号区分不同连接。
六、IP协议的高级特性

IP协议不仅提供基础传输功能,还支持多种高级特性以适应复杂网络环境。

6.1 IP分片与重组
  • 原因:链路层MTU(如以太网1500字节)可能小于IP数据包长度,需分片。
  • 分片字段
    • 标识(Identification):同一数据包的所有分片使用相同标识。
    • 标志(Flags):MF(More Fragments)指示是否有后续分片,DF(Don’t Fragment)禁止分片。
    • 片偏移(Fragment Offset):该片在原数据包中的相对位置(以8字节为单位)。
  • 重组:目标主机根据标识、标志和片偏移重组数据包。
6.2 服务质量(QoS)
  • IPv4中的TOS字段:8位,前3位为DSCP(差分服务代码点),后2位为ECN(显式拥塞通知)。
  • IPv6中的Traffic Class字段:类似IPv4的TOS,提供流量分类和优先级。
  • 应用:区分语音、视频等实时流量与普通数据流量,优先保障高优先级流量。
6.3 生存时间(TTL)
  • 作用:防止数据包在网络中无限循环(每经过一个路由器,TTL减1,为0时丢弃)。
  • 典型值:Linux默认64,Windows默认128。
  • 应用:ping命令通过TTL判断目标主机操作系统类型。
6.4 IPsec(IP安全协议)
  • 功能:提供IP层的加密和认证,保障数据完整性和机密性。
  • 主要协议
    • AH(认证头部):提供数据完整性和源认证,不加密数据。
    • ESP(封装安全载荷):提供加密和可选认证。
  • 工作模式
    • 传输模式:仅加密数据部分,适用于端到端通信。
    • 隧道模式:加密整个IP数据包,适用于VPN等网络到网络通信。
七、IP协议相关工具与应用
7.1 ping命令
  • 作用:测试两台主机间的连通性。
  • 原理:发送ICMP Echo Request包,接收ICMP Echo Reply包。
  • 常用参数
    • -c:指定发送次数。
    • -i:指定间隔时间。
    • -t:设置TTL值。
7.2 traceroute(Linux)/tracert(Windows)
  • 作用:显示数据包从源到目标所经过的路由器路径。
  • 原理:通过逐步增加TTL值,迫使路由器返回ICMP Time Exceeded消息。
  • 典型输出:显示路由器IP、响应时间。
7.3 ifconfig/ip addr(Linux)、ipconfig(Windows)
  • 作用:查看和配置网络接口信息。
  • 典型输出:IP地址、子网掩码、MAC地址、状态等。
7.4 netstat(网络统计)
  • 作用:显示网络连接、路由表、网络接口等信息。
  • 常用参数
    • -a:显示所有连接和监听端口。
    • -n:以数字形式显示地址和端口。
    • -p:显示进程信息。
7.5 nslookup/dig
  • 作用:查询域名对应的IP地址(DNS解析)。
  • 示例nslookup www.baidu.com 返回百度服务器的IP地址。
八、IP协议的安全问题与防护

IP协议的设计注重通用性,也带来了一些安全隐患。

8.1 常见安全威胁
  • IP欺骗(Spoofing):伪造源IP地址发送数据包,常用于DoS攻击或绕过访问控制。
  • IP分片攻击:利用分片机制构造异常数据包(如重叠分片),导致目标系统崩溃。
  • ICMP Flood:通过大量ICMP包耗尽目标带宽或系统资源。
  • IPsec漏洞:如密钥管理不当导致加密失效。
8.2 防护措施
  • 防火墙规则
    • 过滤源IP为私有地址的外网流量(防止IP欺骗)。
    • 限制ICMP流量速率,防止ICMP Flood。
  • 网络分段:将网络划分为多个安全区域,限制IP包的传播范围。
  • IPsec配置:正确配置IPsec加密和认证,保护敏感流量。
  • 安全审计:监控异常IP流量(如大量分片数据包),及时发现攻击迹象。
九、IPv4与IPv6的过渡技术

由于IPv6无法完全兼容IPv4,需采用过渡技术实现平滑迁移。

9.1 双栈技术
  • 原理:设备同时支持IPv4和IPv6协议栈,根据目标地址选择使用。
  • 优势:实现简单,兼容性好。
  • 局限性:需全网设备支持,部署成本高。
9.2 隧道技术
  • 原理:将IPv6数据包封装在IPv4数据包中,通过IPv4网络传输。
  • 常见隧道协议
    • 6to4:自动创建隧道,使用特殊IPv6地址前缀2002::/16。
    • GRE隧道:通用路由封装,支持多种协议封装。
    • ISATAP:站内自动隧道寻址协议,用于IPv6孤岛间通信。
9.3 翻译技术(NAT-PT)
  • 原理:在IPv4和IPv6之间进行地址和协议转换。
  • 典型方案
    • NAT64:将IPv6地址映射到IPv4地址,实现IPv6客户端访问IPv4服务。
    • DNS64:配合NAT64,将域名解析为合成的IPv6地址(如IPv4地址嵌入到64:ff9b::/96前缀)。

IP协议作为TCP/IP协议族的核心,是现代互联网的基石。它通过IP地址实现全球寻址,通过路由机制实现数据包转发,支撑了各种上层应用的运行。IPv4的32位地址空间虽面临耗尽问题,但通过NAT、CIDR等技术仍在广泛使用;IPv6的128位地址空间则为未来网络发展提供了充足的地址资源。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/92864.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/92864.shtml
英文地址,请注明出处:http://en.pswp.cn/web/92864.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DataFun联合开源AllData社区和开源Gravitino社区将在8月9日相聚数据治理峰会论坛

🔥🔥 AllData大数据产品是可定义数据中台,以数据平台为底座,以数据中台为桥梁,以机器学习平台为中层框架,以大模型应用为上游产品,提供全链路数字化解决方案。 ✨杭州奥零数据科技官网&#xff…

【工具】通用文档转换器 推荐 Markdown 转为 Word 或者 Pdf格式 可以批量或者通过代码调用

【工具】通用文档转换器 推荐 可以批量或者通过代码调用 通用文档转换器 https://github.com/jgm/pandoc/ Pandoc - index 下载地址 https://github.com/jgm/pandoc/releases 使用方法: 比如 Markdown 转为 Word 或者 Pdf格式 pandoc -s MANUAL.txt -o example29.docx …

【UEFI系列】Super IO

文章目录一、什么是Super IO二、Super IO的作用常见厂商三、逻辑设备控制如何访问SIO逻辑设备的配置寄存器具体配置数值四、硬件监控(hardware monitor)一、什么是Super IO Super Input/Output超级输入输出控制器。 通过LPC(low pin count&a…

飞算 JavaAI 2.0.0 测评:自然语言编程如何颠覆传统开发?

一、前言 在AI技术高速发展的今天,编程方式正在经历一场革命。传统的“手写代码”模式逐渐被AI辅助开发取代,而飞算JavaAI 2.0.0的推出,更是让自然语言编程成为现实。 作为一名长期使用Java开发的程序员,我决定深度体验飞算Java…

Dubbo + zk 微服务

一、安装zk注册中心 win版本:windows环境下安装zookeeper教程详解(单机版)-CSDN博客 linux版本: 二、服务提供方搭建 引入dubbo和zk依赖 提供接口 使用注解方式实现接口级注册到zk,而springcloud是将服务注册到注册…

聆思duomotai_ap sdk适配dooiRobot

一、说明 1、duomotai_ap介绍 duomotai_ap是一个针对多模态开发板(如 CSK6-MIX 开发板)的大模型 AI 开发套件 SDK,主要用于开发语音、视觉等多模态 AI 应用。 2、dooiRobot介绍 基于Doly 机器人的经典外观设计,采用聆思CSK6011A…

Photoshop软件打开WebP文件格的操作教程

Photoshop软件打开WebP文件格的操作教程,好吧,这是英文原版: Photoshop 23.2 原生支持 WebP 格式,无需插件即可打开、编辑和保存 WebP 文件。用户可通过“文件 > 另存为副本”选择 WebP 格式,调整无损/有损压缩及质…

【数据结构】——顺序表链表(超详细解析!!!)

目录一. 前言二. 顺序表1. 顺序表的特点2. 代码实现三. 链表1. 单向链表代码实现2.双向链表代码实现四. 顺序表与链表的区别总结一. 前言 顺序表和链表是最基础的两种线性表实现方式。它们各有特点,适用于不同的应用场景。本文将详细介绍这两种数据结构的实现原理、…

GitHub的简单使用方法----(4)

在安装完git之后,桌面右键会出现两个git的选项第一个gui打开是这样的用户界面分别是新建仓库,克隆仓库,打开已经存在的仓库。tips:Git Gui 默认只能操作本地仓库——它本质上是一个图形化的“本地 Git 客户端”。 它本身不内置“下载远程仓库…

蓝桥杯----大模板

在写大模板之前,先讲一个函System_Init(),用于系统初始化关闭所有LED与外设,关闭所有LED就是传入0xff数据打开锁存器,关闭外设就是传入0x00打开锁存器。现在所有底层已经提供给大家了,先提供最简单版本的大模板&#x…

科技写作改革我见:取消参考文献,以点读率取代引证率!

科技写作改革我见:综述应取消参考文献,学术成就评估以点读下载率取代参考文献引证率!李升伟 张君飞 韩若兰引言在当今信息爆炸的时代,科技写作作为知识传播的核心载体,其形式与评价体系正面临前所未有的挑战。传统…

【Altium designer】快速建立原理图工程的步骤

快速建立原理图工程的步骤产品规格书分析 整理产品需求,明确主控芯片、外围接口类型、总线频率、电源需求及隔离要求、PCB尺寸等关键信息。使用文本清单列出所有需求,确保无遗漏。硬件需求架构图绘制 根据需求说明书和收集的信息,使用VISIO绘…

Origin2025b安装包免费,附Origin 2025安装教程

老规矩先放链接:origin2025b安装包 有位小粉丝问我有没有Origin2025b的安装包,有的兄弟有的,只有你想不到,没有小兔找不到的软件。 这个origin是OriginLab公司开发的一个科学绘图、数据分析的软件,Origin支持各种各样…

【C++语法】输出的设置 iomanip 与 std::ios 中的流操纵符

文章目录【C语法】输出的设置 iomanip 与 std::ios 中的流操纵符1. iomanip 中的流操纵方法1.1 位宽操作类1.1.1 std::setw(x)1.1.2 std::setfill(c)1.1.3 std::left1.1.4 std::right1.1.5 std::internal1.2 小数操作类1.2.1 std::fixed1.2.2 std::setprecision(x)1.2.3 std::s…

go语言学习笔记-Map

map 是一种无序的基于 key-value 的数据结构,Go 语言中的 map 是引用类型,必须初始化 才能使用。 Go 语言中 map 的定义语法如下map[KeyType]ValueType常见两种创建方法1 使用map初始化var scoreMap make(map[string]int, 8) scoreMap["陈翔"…

芯片安全标准驱动库,筑牢芯片功能安全基石

随着整车控制器功能日益复杂,为满足越发严格的功能安全认证要求,项目开发人员需要采取相应的安全措施对系统中电子元器件的单点故障(Singel Point Fault)和潜在故障(Latent Fault)进行检测和管理&#xff0…

rn相关ScrollView

一:ScrollView的style和contentContainerStyle二:flex:1,和flexGrow:1用处内容将纵向空间占满

Spark Core 3.3.2 略讲~

✨博客主页: https://blog.csdn.net/m0_63815035?typeblog 💗《博客内容》:大数据、Java、测试开发、Python、Android、Go、Node、Android前端小程序等相关领域知识 📢博客专栏: https://blog.csdn.net/m0_63815035/…

智能家居Agent:物联网设备的统一控制与管理

智能家居Agent:物联网设备的统一控制与管理 🌟 Hello,我是摘星! 🌈 在彩虹般绚烂的技术栈中,我是那个永不停歇的色彩收集者。 🦋 每一个优化都是我培育的花朵,每一个特性都是我放飞的…

汉高携手SAP推出AI驱动的退换货与争议管理解决方案

2025年8月12日,SAP宣布与全球知名的胶黏剂、密封剂及消费品制造商汉高(Henkel AG & Co. KGaA)联合开发了一套基于SAP AI Services的定制化解决方案,用于优化退换货及争议管理流程。该方案旨在通过人工智能自动化索赔相关文件的…