IP协议详解

目录

一、IP协议概念

二、IP协议头格式

三、地址管理

1、网段划分

[2、特殊的 IP 地址](#2、特殊的 IP 地址)

[3、IP 地址的数量限制(NAT)](#3、IP 地址的数量限制(NAT))

4、在跨局域网进行访问时应该如何?

四、路由选择


一、IP协议概念

IP (Internet Protocol,网际协议)是TCP/IP协议族的核心 ,位于OSI模型网络层,负责无连接、尽力而为的数据包跨网传输,核心是寻址和路由,不保证可靠交付(可靠性由TCP等上协议进行补充)


二、IP协议头格式

  • **4位版本:**固定为4,表示这是 IPv4 报文,若为6则对应 IPv6 协议
  • **4位首部长度:**以4字节为单位计数,最大值为15(对应60字节头部),用于标识 IP 头 部的总长度
  • 8位服务类型(TOS): 用于指定报文的传输优先级与服务质量(如低延迟、高吞吐量)
  • **16位总长度:**表示整个IP报文(头部+数据)的字节数
  • **16位标识:**为每个IP报文分配标识,用于分片重组时识别属于同一原始报文的分片
  • **3位标志:**核心是DF(不分片)和MF(更多分片),DF=1 表示禁止分片,MF=0 表示最后 一个分片
  • **13位片偏移:**标识当前分片在原始报文的位置,用于按序重组分片
  • **8位生存时间:**限制报文在网络中转发次数,防止无限转发,值为0时会丢弃
  • **8位协议:**标识IP报文承载的上层协议
  • **16位首部校验和:**仅对头部进行校验,用于验证传输是否正确
  • **32位源IP地址:**标识报文发送端IP地址
  • **32位目的IP地址:**标识报文接收端IP地址

三、地址管理

1、网段划分

IP 地址由网络号和主机号构成

**网络号:**保证相互连接的两个网段具有不同的标识

**主机号:**同一网段内,主机之间具有相同的网络号,不同的主机号

  • 不同的子网就是把网络号相同的主机放在一起
  • 如果在同一子网中增加一台设备,那么它们的主机号不能重复
  • DHCP技术能给子网内新增主机自动分配IP地址

以前提出一种划分网络号和主机号方案,将所有IP地址分为了5类

  • A类:0.0.0.0127.255.255.255
  • B类:128.0.0.0191.255.255.255
  • C类:192.0.0.0223.255.255.255
  • D类:224.0.0.0239.255.255.255
  • E类:240.0.0.0247.255.255.255

这样会导致浪费大量的 IP地址,针对这种情况有了新的划分方案 CIDR(Classes Interdomain Routing):

  • 引入一个额外的子网掩码(subnet mask)来区分网络号和主机号
  • 子网掩码也是一个32位的正整数,通常用一串 " 0 " 来结尾
  • 将 IP地址和子网掩码进行"按位与"操作,得到的结果就是网络号

2、特殊的 IP 地址

在 IP 地址中针对一些特定值有一些特定的含义:

  • 将 IP 地址中的主机地址全部设为 0,就成为了网络号,代表这个局域网(192.168.100.55 --> 192.168.100.0), 某个具体设备不可以使用这个IP
  • 将 IP 地址中的主机地址全部设为 1 ,就成为了广播地址,用于给同一链路中相互连接的主机发送数据包(192.168.100.255)
  • 127.* 的 IP 地址用于本机环回(loop back)测试,通常是127.0.0.1 。localhost(域名,IP 地址的代称)

3、IP 地址的数量限制(NAT)

在进行设计 IP 地址时是为了让每个设备的 IP 地址不同,用来区分

IPv4是一个4字节32位的正整数,表示的范围是 2^32 ( 0 ~ 42亿9000万 ),TCP/IP规定每个主机都需要有一个IP地址,但由于互联网的发展,IPv4 所指的范围对于现在的设备不足以支持

应对IP地址不足策略:

  1. **动态分配IP地址:**当一个设备需要上网则进行分配,不需要则不分配(此方法已经在使用,但效果有限)
  2. NAT网络地址转换(核心): 将IP地址分为两大类 ①内网IP(私网IP): 10.* 、172.16-172.31 、192.168.* ②外网IP(公网IP): 其余全是外网IP 注意:约定不同局域网内,内网IP可以重复
  3. **IPv6:**不是IPv4的升级,这是两个不相关的协议,彼此不兼容,IPv6用16字节128位表示一个IP地址

4、在跨局域网进行访问时应该如何?

此处又分为5种情况:

  1. 同一个局域网内两个设备进行访问,此时不需要考虑NAT,只需要根据不同IP地址来区分不同设备即可
  2. 两个外网IP设备访问,也不需要考虑NAT,因为外网IP全局唯一
  3. 不同局域网中两个设备尝试访问对方,这是不被允许的,因为它们的IP地址可能相同
  4. 外网 IP 的设备访问内网 IP 的设备,这也是不被允许的,内网IP设备的地址可能会混淆
  5. 内网 IP 设备尝试访问外网 IP 设备,就会触发 " 网络地址转换 " ,NAT设备(路由器)对IP 数据报其中的 "源 IP 做出修改" ,修改为自己的IP

第五种访问的大致流程如下:

首先内网设备知道了源IP和目地IP及端口号,我们知道要访问外网设备需要外网IP ,对方在返回响应时也需要外网IP 才能做到,那么我们以联通路由器为例(有外网IP),一个联通路由器在一定时间内可能会有成千上万的内网IP进行访问,我们应该如何才能做到区分并返回正确响应,在NAT设备中维护了一个表,包含了映射关系(如果端口号相同也会进行一定的替换),然后会将替换好的IP地址与端口号发往目的IP和端口,此处就完成了发送,返回响应也根据表中数据进行修改后即可


四、路由选择

IP 协议进行数据转发的时候,路线规划的过程,由于如今网络环境的复杂化,IP 协议的路由选择不知道 "全局" ,因此IP协议的路由选择是**"渐进式"、"启发式"**的过程,它只能给出路线的 "较优解"

  • 路由的过程,是一跳一跳(Hop by Hop)"问路"的过程
  • " 一跳一跳 " 就是数据链路层的一个具体区间,具体在以太网中指源MAC地址到目的MAC地址之间的帧传输区间


IP 数据包的传输过程也和问路一样,数据转发的时候到达路由器,每个路由器都会知道一些周围的情况(维护一个"路由表")

  1. 如果路由器知道在哪,会给出具体位置
  2. 如果路由器不知道在哪,会给出一个方向

在路由表中如果没有任何一个记录可以匹配到,就会走默认的路径(下一跳表项,都不匹配会给默认值),下一跳表项通常是指 "上一级" 路由器


相关推荐
wanhengidc6 分钟前
云手机 高振畅玩不踩坑
运维·服务器·安全·web安全·智能手机
有谁看见我的剑了?13 分钟前
linux 添加硬盘后系统识别不到硬盘处理
linux·运维·服务器
易连EDI—EasyLink27 分钟前
易连EDI–EasyLink实现OCR智能数据采集
网络·人工智能·安全·汽车·ocr·edi
@insist1231 小时前
信息安全工程师考点精讲:身份认证核心原理与分类体系(上篇)
大数据·网络·分类·信息安全工程师·软件水平考试
SmartRadio1 小时前
ESP32-S3 双模式切换实现:兼顾手机_路由器连接与WiFi长距离通信
开发语言·网络·智能手机·esp32·长距离wifi
_.Switch1 小时前
东方财富股票数据JS逆向:secids字段和AES加密实战
开发语言·前端·javascript·网络·爬虫·python·ecmascript
金色光环3 小时前
FreeModbus释放底层的 TCP 监听端口
服务器·网络·tcp/ip
数智化精益手记局3 小时前
拆解物料管理erp系统的核心功能,看物料管理erp系统如何解决库存积压与缺料难题
大数据·网络·人工智能·安全·信息可视化·精益工程
灰子学技术4 小时前
Envoy HTTP 过滤器处理技术文档
网络·网络协议·http