网络层协议:IP

目录

1、概念

2、关键组成部分

2.1 IP地址

2.1.1 概念

2.1.2 主要版本

2.1.3 IP地址分类

2.2 IP数据报(IP协议传输的基本数据单元)

3、工作原理

3.1 路由

3.2 分片与重组

4、相关协议


1、概念

目的:负责在复杂的网络环境中将数据包从源主机路由传递到目标主机。

定位:位于TCP/IP模型的网络层(或OSI模型的第3层),在传输层(如TCP, UDP)之下,数据链路层(如以太网, Wi-Fi)之上。

概念:提供跨越不同物理网络的逻辑寻址路由功能,屏蔽底层网络技术的差异(如以太网、Wi-Fi、PPP、光纤等),使上层协议(TCP, UDP, ICMP等)无需关心数据包如何穿越各种物理网络。

特性:无连接、不可靠服务

  • 无连接: 发送数据包前不需要预先建立连接。每个数据包(IP数据报)都是独立寻路,路径可能不同

  • 不可靠: 不保证数据包一定能送达目的地,也不保证按顺序送达,不保证数据完整性(不提供确认、重传、流量控制机制)。这些可靠性保障由上层协议(如TCP)或应用程序自身负责。

  • 尽力而为: 不提供带宽或延迟保证(QoS需额外机制)。

  • 安全性: 原生IP不提供加密和强认证(依赖IPsec或上层协议如TLS)。

作用

①、寻址:每个连接到网络的设备都有一个唯一的 IP 地址。IP 协议使用这些地址来标识数据包的源地址和目的地址,确保数据包能够准确地传输到目标设备。

②、路由:IP 协议负责决定数据包在网络传输中的路径。比如说路由器使用路由表和 IP 地址信息来确定数据包的最佳传输路径。

③、分片和重组:当数据包过大无法在某个网络上传输时,IP 协议会将数据包分成更小的片段进行传输。接收端会根据头部信息将这些片段重新组装成完整的数据包。

2、关键组成部分

2.1 IP地址

2.1.1 概念

唯一标识: 每个连接到IP网络的设备(主机、路由器)都必须有一个唯一的IP地址,用于在网络中标识自己。

逻辑地址: 与物理地址(如MAC地址)不同,IP地址是软件配置的,可以变化,用于在更大范围的网络中寻址。

2.1.2 主要版本

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

  • 包含 网络部分 (标识设备所在的网络) 和 主机部分 (标识网络内的特定设备)。

  • 通过 子网掩码 来区分网络部分和主机部分。

操作二进制示例结果(十进制)
IP地址11000000.10101000.00000001.01100100192.168.1.100
子网掩码11111111.11111111.11111111.00000000255.255.255.0
网络号(IP AND 掩码)11000000.10101000.00000001.00000000192.168.1.0
主机号(IP AND 掩码取反)00000000.00000000.00000000.011001000.0.0.100

主要问题:

  • 地址枯竭: 32位地址空间(约42.9亿)已基本耗尽(通过NAT技术缓解)。

  • 配置复杂: 经常需要DHCP或手动配置。

  • 安全性: 设计之初未充分考虑安全性(依赖IPsec扩展)。

  • QoS支持有限: 依赖ToS字段,支持不够完善。

  • 报头设计: 包含选项字段,处理效率较低。

NAT:网络地址转换协议,我们知道属于不同局域网的主机可以使用相同的 IP 地址,从而一定程度上缓解了 IP 资源枯竭的问题,然而主机在局域网中使用的 IP 地址是不能在公网中使用的,当局域网主机想要与公网主机进行通信时,NAT 方法可以将该主机 IP 地址转换为全球 IP 地址。该协议能够有效解决 IP 地址不足的问题。

IPv6: 解决IPv4地址枯竭问题,使用128位地址(通常表示为8组4位十六进制数,如 2001:0db8:85a3:0000:0000:8a2e:0370:7334),地址空间极其巨大,并简化了报头设计,增强了安全性和移动性。

关键改进:

  • 巨大的地址空间: 128位地址(约3.4×10³⁸个地址),彻底解决地址枯竭问题,支持端到端通信(减少NAT依赖)。

  • 简化的报头: 固定40字节基本报头,格式更简单高效,路由器处理更快。选项功能通过扩展报头实现。

  • 更好的QoS支持: 流标签字段便于识别和处理特定数据流。

  • 内建安全: IPsec支持成为协议标准组成部分(非强制)。

  • 改进的扩展性: 扩展报头机制更灵活。

  • 自动配置: SLAAC(无状态地址自动配置)简化了主机配置。

  • 更好的移动性支持: 移动IPv6设计更优。

2.1.3 IP地址分类

IP 地址 = {<网络号>,<主机号>}。

  1. 网络号:它标志主机所连接的网络地址表示属于互联网的哪一个网络。
  2. 主机号:它标志主机地址表示其属于该网络中的哪一台主机。

IP 地址分为 A,B,C,D,E 五大类:

  • A 类地址 (1~126):以 0 开头,网络号占前 8 位,主机号占后面 24 位。
  • B 类地址 (128~191):以 10 开头,网络号占前 16 位,主机号占后面 16 位。
  • C 类地址 (192~223):以 110 开头,网络号占前 24 位,主机号占后面 8 位。
  • D 类地址 (224~239):以 1110 开头,保留为多播地址。
  • E 类地址 (240~255):以 1111 开头,保留位为将来使用

2.2 IP数据报(IP协议传输的基本数据单元)

结构: 由 报头 和 数据载荷 组成。

报头关键字段:

  • 版本 (Version): 4位,标识IP版本(4或6)。

  • 首部长度 (IHL): 4位,指示IP报头长度(以32位字为单位)。

  • 服务类型 (ToS / DSCP/ECN): 8位,用于QoS(服务质量),指示数据包的优先级或服务要求(如延迟、吞吐量、可靠性)。

  • 总长度 (Total Length): 16位,整个IP数据报(报头+数据)的长度(字节)。

  • 标识 (Identification): 16位,用于唯一标识一个数据报或其分片。同一个数据报的所有分片共享相同的标识。

  • 标志 (Flags): 3位:

    • Reserved:保留位。

    • DF (Don't Fragment):为1时表示禁止路由器对此数据报分片。如果数据报太大无法通过下一跳网络,路由器会丢弃它并发送ICMP错误消息。

    • MF (More Fragments):为1时表示这不是最后一个分片(后面还有分片);为0时表示这是最后一个分片或是未分片的数据报。

  • 片偏移 (Fragment Offset): 13位,指示该分片在原数据报数据部分中的相对位置(以8字节为单位)。用于接收方重组分片。

  • 生存时间 (TTL - Time To Live): 8位,数据报在网络中允许经过的最大路由器跳数。每经过一个路由器,该值减1。当TTL减到0时,数据报被丢弃,并发送ICMP超时消息。主要作用是防止数据报在网络中无限循环。

  • 协议 (Protocol): 8位,指示数据报载荷中封装的是哪个上层协议的数据(如TCP=6, UDP=17, ICMP=1)。

  • 首部校验和 (Header Checksum): 16位,用于检测IP报头在传输过程中是否发生错误。只校验报头,不校验数据部分。每经过一个路由器都需要重新计算。

  • 源IP地址 (Source Address): 32位(IPv4)或128位(IPv6),发送主机的IP地址。

  • 目的IP地址 (Destination Address): 32位(IPv4)或128位(IPv6),接收主机的IP地址。

  • 选项 (Options): 可变长(IPv4),很少使用。在IPv6中被移至扩展报头。

  • 填充 (Padding): 确保IP报头长度是32位的整数倍。

数据载荷: 承载的上层协议数据(如TCP段、UDP数据报、ICMP消息)。

3、工作原理

3.1 路由

核心概念:

  • 路由表: 每个主机和路由器都维护一个 路由表,其中包含如何到达不同目标网络或主机的信息。

  • 路由条目: 通常包含目标网络地址、子网掩码、下一跳路由器地址(网关)或出口接口、度量值(优先级)等。

  • 路由协议: 路由器之间运行 路由协议(如RIP, OSPF, BGP)来动态交换网络可达性信息,自动更新和维护路由表。

转发过程:

  1. 主机或路由器检查目标IP地址。

  2. 查找路由表,找到最长前缀匹配的路由条目(即与目标地址网络部分匹配最长的条目)。

  3. 根据匹配的路由条目:

    • 如果下一跳是直接相连的网络,则通过ARP(IPv4)或邻居发现(IPv6)获取目标主机的物理地址(MAC地址),将数据报封装在数据链路层帧中直接发送。

    • 如果下一跳是路由器(网关),则通过ARP/邻居发现获取该网关的物理地址,将数据报封装在帧中发送给网关。

  4. 网关路由器收到后,重复上述查找路由表和转发的步骤,直到数据报到达目标网络或TTL耗尽。

3.2 分片与重组

原因: 数据链路层(如以太网)有 最大传输单元 (MTU) 限制。当IP数据报长度大于路径中某个网络的MTU时,就需要分片。

过程:

  1. 路由器(或源主机)将原始数据报分割成多个较小的 分片 (Fragments)

  2. 每个分片都有自己的IP报头(大部分字段复制自原始报头,但总长度标识标志片偏移会修改)。

  3. MF标志位:除了最后一个分片设为0,其他分片都设为1。

  4. 片偏移表示该分片数据在原始数据报数据部分中的起始位置(以8字节块为单位)。

  5. 分片独立路由到目的地。

重组: 只有目的主机负责将所有具有相同标识的分片,按照片偏移顺序重新组装成原始数据报。如果缺少任何分片,整个原始数据报会被丢弃,重组失败。

4、相关协议

  • ICMP (Internet Control Message Protocol): 用于在IP主机和路由器之间传递控制消息(如网络可达性测试ping、目标不可达、超时traceroute、重定向等)。是IP协议的重要辅助协议。

ICMP 协议是一种面向无连接的协议,用于传输出错报告控制信息。它属于网络层协议,主要用于在主机与路由器之间传递控制信息,包括报告错误、交换受限控制和状态信息等。当遇到 IP 数据无法访问目标、IP 路由器无法按当前的传输速率转发数据包等情况时,会自动发送 ICMP 消息。

ping的基本过程:

①、当执行 Ping 命令,Ping 首先解析域名获取 IP 地址,然后向目标 IP 发送一个 ICMP Echo Request 消息。

②、当目标 IP 收到 ICMP Echo Request 消息后,它会生成一个 ICMP Echo Reply 消息并返回,即 Ping 响应消息。

③、发起 Ping 命令的设备接收到 ICMP Echo Reply 消息后,计算并显示从发送 Echo Request 到接收到 Echo Reply 的时间(通常称为往返时间 RTT,Round-Trip Time),以及可能的丢包情况。

Ping 通常会发送多个请求,以便提供平均响应时间和丢包率等信息,以便我们了解网络连接的质量。

  • ARP (Address Resolution Protocol): 用于在IPv4网络中根据IP地址查询对应的物理地址(MAC地址)。

    • MAC 地址是数据链路层和物理层使用的地址,是写在网卡上的物理地址,用来定义网络设备的位置,不可变更。
    • IP 地址是网络层和以上各层使用的地址,是一种逻辑地址。IP 地址用来区别网络上的计算机。

ARP协议的工作过程:

①、ARP 请求

当主机 A 要发送数据给主机 B 时,首先会在自己的 ARP 缓存中查找主机 B 的 MAC 地址。

如果没有找到,主机 A 会向网络中广播一个 ARP 请求数据包,请求网络中的所有主机告诉它们的 MAC 地址;这个请求包含了请求设备和目标设备的 IP 和 MAC 地址。

②、ARP 应答

网络中的所有主机都会收到这个 ARP 请求,但只有主机 B 会回复 ARP 应答,告诉主机 A 自己的 MAC 地址。并且主机 B 会将主机 A 的 IP 和 MAC 地址映射关系缓存到自己的 ARP 缓存中,以便下次通信时直接使用。

③、更新 ARP 缓存

主机 A 收到主机 B 的 ARP 应答后,也会将主机 B 的 IP 和 MAC 地址映射关系缓存到自己的 ARP 缓存中。

  • RARP (Reverse ARP): 根据MAC地址查询IP地址(基本被DHCP取代)。

  • DHCP (Dynamic Host Configuration Protocol): 为主机自动分配IP地址、子网掩码、网关、DNS服务器等配置信息。只给接入网络的设备分配 IP 地址,因此同一个 MAC 地址的设备,每次接入互联网时,得到的 IP 地址不一定是相同的,该协议使得空闲的 IP 地址可以得到充分利用。

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

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

相关文章

Fastadmin报错Unknown column ‘xxx.deletetime‘ in ‘where clause

报错原因 在开启软删除后&#xff0c;设置了表别名&#xff0c;软删除字段依旧使用原表名。 解决方法 原代码 $list $this->model->with([admin, product])->where($where)->order($sort, $order)->paginate($limit);foreach ($list as $row) {$row->ge…

TCN+Transformer+SE注意力机制多分类模型 + SHAP特征重要性分析,pytorch框架

效果一览 TCNTransformerSE注意力机制多分类模型 SHAP特征重要性分析 TCN&#xff08;时序卷积网络&#xff09;的原理与应用 1. 核心机制 因果卷积&#xff1a;确保时刻 t t t 的输出仅依赖 t − 1 t-1 t−1 及之前的数据&#xff0c;避免未来信息泄露&#xff0c;严格保…

Elasticsearch的数据同步

elasticsearch中的数据多是来自数据库&#xff0c;当数据库发生改变时&#xff0c;elasticsearch也必须跟着改变&#xff0c;这个就叫做数据同步。 当我们是进行微服务的时候&#xff0c;同时两个服务不能进行相互调用的时候。就会需要进行数据同步。 方法一&#xff1a;同步…

uniapp 时钟

<template><view class"clock-view"><view class"clock-container u-m-b-66"><!-- 表盘背景 --><view class"clock-face"></view><!-- 时针 --><view class"hand hour-hand" :style&quo…

【大模型】实践之1:macOS一键部署本地大模型

Ollama + Open WebUI 自动部署脚本解析说明文档 先看下效果 一、脚本内容 #!/bin/bash set -eMODEL_NAME="qwen:1.8b" LOG_FILE="ollama_run.log" WEBUI_PORT=3000 WEBUI_CONTAINER_PORT=8080 WEBUI_URL="http://localhost:$WEBUI_PORT" DOC…

相机Camera日志实例分析之三:相机Camx【视频光斑人像录制】单帧流程日志详解

【关注我&#xff0c;后续持续新增专题博文&#xff0c;谢谢&#xff01;&#xff01;&#xff01;】 上一篇我们讲了&#xff1a; 这一篇我们开始讲&#xff1a; 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下&#xff1a; 一、场景操作步骤 操作步…

介绍一下 TCP方式程序的通讯,服务器机与客户机

TCP通信方式&#xff1a;服务器与客户机通信详解 TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。下面我将详细介绍TCP方式下服务器与客户机的通信过程。 基本概念 TCP特点&#xff1a; 面向连接&#xff1a;通信前需建立连接可靠传输&#xff1a;…

Ubuntu系统复制(U盘-电脑硬盘)

所需环境 电脑自带硬盘&#xff1a;1块 (1T) U盘1&#xff1a;Ubuntu系统引导盘&#xff08;用于“U盘2”复制到“电脑自带硬盘”&#xff09; U盘2&#xff1a;Ubuntu系统盘&#xff08;1T&#xff0c;用于被复制&#xff09; &#xff01;&#xff01;&#xff01;建议“电脑…

【PyTorch】2024保姆级安装教程-Python-(CPU+GPU详细完整版)-

一、准备工作 pytorch需要python3.6及以上的python版本 我是利用Anaconda来管理我的python。可自行安装Anaconda。 Anaconda官网 Free Download | Anaconda 具体Anaconda安装教程可参考 https://blog.csdn.net/weixin_43412762/article/details/129599741?fromshareblogdet…

Oracle RAC私网网卡冗余

第一步&#xff1a;添加网卡&#xff08;网络部门实施&#xff09; 第二步&#xff1a;给新网卡配置ip地址&#xff08;如果网络部门没有配置&#xff0c;要自己动手配置&#xff09; 第三步&#xff1a;查看心跳网络配置 –1 su - grid oifcfg getif enp0s3 192.168.1.0 glo…

c#,Powershell,mmsys.cpl,使用Win32 API展示音频设备属性对话框

常识&#xff08;基础&#xff09; 众所周知&#xff0c;mmsys.cpl使管理音频设备的控制面板小工具&#xff0c; 其能产生一个对话框&#xff08;属性表&#xff09;让我们查看和修改各设备的详细属性&#xff1a; 在音量合成器中单击音频输出设备的小图标也能实现这个效果&a…

织梦dedecms内容页调用seotitle标题的写法

首先方法一&#xff0c;直接用织梦的sql实现&#xff1a; <title> {dede:field nametypeid runphpyes} $idme; global $dsql; $sql"select seotitle from dede_arctype where id$id"; $row$dsql->getOne($sql); me$row["seotitle"]; {/dede:fiel…

linux等保思路与例题

例题 最近在做玄机的靶场&#xff0c;对这方面没怎么接触过&#xff0c;于是决定做一下顺便学习一下 这里可以用change更改命令来查看&#xff1a;change -l xiaoming 也可以用shadow中存储的信息grep出来&#xff1a;cat /etc/shadow|grep xiaoming 其中&#xff1a; 第一个字…

AirSim中文文档(2025-6-11)

文档的git链接&#xff1a; https://github.com/yolo-hyl/airsim-zh-docs 目前可访问的网站&#xff1a; https://airsim.huayezuishuai.site/

​​​​​​​6板块公共数据典型应用场景【政务服务|公共安全|公共卫生|环境保护|金融风控|教育科研]

1. 政务服务 1.1 城市规划与管理 公共数据在城市规划与管理中可发挥关键作用。通过汇聚自然资源、建筑物、人口分布等基础数据,构建数字孪生城市模型,辅助城市总体规划编制、决策仿真模拟。在城市基础设施建设、安全运营、应急管理等方面,公共数据也是不可或缺的基础支撑。例…

LevelDB介绍和内部机制

介绍 LevelDB 是 Google 开源的高性能键值对嵌入式数据库&#xff0c;具有一系列设计上的优势&#xff0c;特别适合写多读少、对存储空间要求高效的场景。 核心优势 1. 高写入性能&#xff08;顺序写磁盘&#xff09; 基于 LSM-Tree&#xff08;Log Structured Merge Tree&am…

数据库-数据查询-Like

引言 &#xff1c;模糊沟通&#xff1e; 父亲&#xff08;45岁&#xff0c;对外谦和&#xff0c;对内急躁&#xff0c;东北口音&#xff09; 儿子&#xff08;18岁&#xff0c;逻辑思维强&#xff0c;喜用生活化比喻&#xff09; 母亲&#xff08;43岁&#xff0c;家庭矛盾调…

SD-WAN优化云应用与多云架构访问的关键策略

1. SD-WAN如何优化企业对公有云和SaaS应用的访问&#xff1f; 1.1 智能流量优化 SD-WAN通过应用识别技术&#xff0c;可以根据不同的业务应用流量需求&#xff0c;动态分配网络资源。例如&#xff0c;SD-WAN能够优先为钉钉、企业微信、金山文档等关键SaaS应用分配低延迟、高带…

JVM——对象模型:JVM对象的内部机制和存在方式是怎样的?

引入 在Java的编程宇宙中&#xff0c;“Everything is object”是最核心的哲学纲领。当我们写下new Book()这样简单的代码时&#xff0c;JVM正在幕后构建一个复杂而精妙的“数据实体”——对象。这个看似普通的对象&#xff0c;实则是JVM内存管理、类型系统和多态机制的基石。…

专题:2025年跨境B2B采购买家行为分析及采购渠道研究报告|附160+份报告PDF汇总下载

原文链接&#xff1a;https://tecdat.cn/?p42612 在商业决策的复杂版图中&#xff0c;数据是穿透迷雾的精准坐标。本报告汇总解读聚焦2024年跨境B2B行业核心动态&#xff0c;以详实数据为锚&#xff0c;串联商品出口、品牌网站运营、独立站流量生态三大关键领域。我们深入挖掘…