你了解IP协议吗?

1.写在前面

前面的博客,大体的介绍完了整个网络的体系,还剩下一个IP协议,今天我们来介绍这个IP协议。

2.网络层与链路层的功能

网络层功能

  • IP 寻址
  • 选路
  • 封装打包
  • 分片
  • 在这里插入图片描述

数据链路层功能

  • 逻辑链路控制
  • 媒体访问控制
  • 封装链路层帧
  • MAC 寻址
  • 差错检测与处理
  • 定义物理层标准
  • 在这里插入图片描述

细腰结构:IP 网络层的核心地位

性能至上的 IP 层

  • 无连接
  • 非可靠
  • 无确认
  • 在这里插入图片描述

多播:广播与组播

  • 全球作用域
  • 组织内
  • 场点内
  • 本地链路层
  • 本机作用域
  • 在这里插入图片描述

路由器与交换机

  • 工作在网络层的路由器
    • 连接不同网络的设备
  • 工作在数据链路层的交换机
    • 同一个网络下连接不同主机的设备
  • 在这里插入图片描述

网络传输示例

在这里插入图片描述

3.IPv4 分类地址

易用性:IPv4 地址的点分十进制表示

  • 32 位二进制数
  • IP 地址空间:2^32 个
  • 在这里插入图片描述

IP 地址的分配机构

  • 层层分配的 IP 地址
  • 在这里插入图片描述

当互联网规律很小时,类别信息被编码进 IP 地址

在这里插入图片描述

分类 IP 地址的优点

  • 简单明了
  • 具有 3 个级别的灵活性
  • 选路(基于网络地址) 简单
  • 在这里插入图片描述

分类 IP 寻址的问题

  • 缺少私有网络下的地址灵活性:同一个网络下没有地址层次
  • 3 类地址块太少,无法与现实网络很好的匹配
  • 在这里插入图片描述

4.CIDR无分类地址

CIDR 子网掩码

CIDR

  • Classless Inter-Domain Routing

表示方法

  • A.B.C.D/N,N 范围[0, 32]

  • 在这里插入图片描述

  • 在这里插入图片描述

CIDR 子网划分示例

  • 71.94.0.0/15
    • 多级子网划分
    • 在这里插入图片描述

208.130.29.33 的寻址历程

  • MCI 分配到了 208.128.0.0/11
  • MCI 将 208.130.28.0/22 分配给ARS
  • ARS 将 208.130.29.0/22 分配给Public Servers 使用
  • www.freesoft.org 使用了208.130.29.33 地址
  • 在这里插入图片描述

全 0 或者全 1 的特殊含义

在这里插入图片描述

预留 IP 地址(RFC1918)

在这里插入图片描述

5.IP 地址与链路地址的转换:ARP 与 RARP 协议

链路层 MAC 地址

  • 链路层地址 MAC(Media Access Control Address)
    • 实现本地网络设备间的直接传输
  • 网络层地址 IP(Internet Protocol address)
    • 实现大型网络间的传输
  • 查看 MAC 地址
    • Windows: ipconfig /all
    • Linux:ifconfig

2.5 层协议 ARP:从 IP 地址寻找 MAC 地址

  • 动态地址解析协议 ARP(RFC826)
    • Address Resolution Protocol
  • 动态地址解析:广播
  • 在这里插入图片描述

2.5 层协议:ARP

  1. 检查本地缓存

    • Windows: arp –a
    • Linux: arp –nv
    • Mac: arp -nla
  2. 广播形式的请求

  3. 单播形式的应答

    在这里插入图片描述

ARP 报文格式:FrameType=0x0806

  • 硬件类型,如 1 表示以太网
  • 协议类型,如 0x0800 表示 IPv4
  • 硬件地址长度,如 6
  • 协议地址长度,如 4 表示 IPv4
  • 操作码,如 1 表示请求,2 表示应答
  • 发送方硬件地址
  • 发送方协议地址
  • 目标硬件地址
  • 目标协议地址
  • 在这里插入图片描述

硬件类型与操作码

  • 硬件类型取值

  • 在这里插入图片描述

  • 操作码取值

  • 在这里插入图片描述

2.5 层协议 RARP:从 MAC 地址中寻找 IP 地址

动态地址解析协议 RARP(RFC903)

  • Reverse Address Resolution Protocol
  • 在这里插入图片描述

RARP 的工作流程

  1. 广播形式的请求

  2. 单播形式的应答

    在这里插入图片描述

RARP 报文格式:FrameType=0x8035

  • 硬件类型,如 1 表示以太网
  • 协议类型,如 0x0800 表示 IPv4
  • 硬件地址长度,如 6
  • 协议地址长度,如 4 表示 IPv4
  • 操作码,如 3 表示请求,4 表示应答
  • 发送方硬件地址
  • 发送方协议地址
  • 目标硬件地址
  • 目标协议地址
  • 在这里插入图片描述

ARP 欺骗(ARP spoofing/poisoning)

在这里插入图片描述

6.NAT 地址转换与 LVS 负载均衡

IPv4 地址短缺

在这里插入图片描述

少量的公网 IP VS 大量的主机

在这里插入图片描述

NAT(IP Network Address Translator)应用的前提

  • 内网中主要用于客户端访问互联网
  • 同一时间仅少量主机访问互联网
  • 内网中存在一个路由器负责访问外网

单向(向外)转换 NAT:动态映射

在这里插入图片描述

NAPT 端口映射:Network Address Port Translation

在这里插入图片描述

双向(向内)NAT:IP 地址静态映射

在这里插入图片描述

LVS(Linux Virtual Server)/NAT 工作模式

在这里插入图片描述

NAT

优点:

  • 共享公共 IP 地址,节约开支
  • 扩展主机时不涉及公共地址
  • 更换 ISP 服务商(更换公网 IP 地址),不对主机地址产生影响
  • 更好的安全性,外部服务无法主动访问内网服务
  • 更好的隔离性

缺点:

  • 网络管理复杂
  • 性能下降
  • 重新修改校验和
  • 客户端缺乏公网 IP 导致功能缺失
  • 某些应用层协议由于传递网络层信息而功能受限

7.IP 选路协议

如何传输 IP 报文?

  • 直接传输
  • 本地网络间接传输
    • 内部选路协议 RIP OSPF
  • 公网间接传输
    • 外部选路协议 BGP

在这里插入图片描述

路由表 routing table

在这里插入图片描述

RIP 内部选路协议

Routing Information Protocol

  • 特点
    • 基于跳数确定路由
    • UDP 协议向相邻路由器通知路由表
  • 问题
    • 跳数度量
    • 慢收敛
    • 选路环路
    • 在这里插入图片描述

OSPF 内部选路协议

Open Shortest Path First

多级拓扑结构:同级拓扑中的每台路由器都具有最终相同的数据信息(LSDB)

  • 直接使用 IP 协议(协议号 0x06 为 TCP,0x11 为 UDP,而 0x59 为 OSPF)传递路由信息
  • 在这里插入图片描述

OSPF 最短路径树

  • 只有路由器到达网络有开销
    • 网络到达路由器没有开销
  • RC 的最短路径树
  • 在这里插入图片描述

RC 构造最短路径树

  1. 第一级:RC 直达设备

    • N2:3
    • N3:6
    • RB:5
  2. 第二级:间隔 1 跳设备

    • 经过 N2 到 RA:3
    • 经过 N3 到 RD:6
  3. 第三级:间隔 2 跳设备

    • 经过 N2、RA 到 N1:5
    • 经过 N3、RD 到 N4:10

    在这里插入图片描述

BGP:Border Gateway Protocol

  • 网络间的选路协议

  • 存放网络间信息 RIB

    • Routing Information Base
    • TCP 协议传输 RIB 信息
  • E(External)BGP

    • 外部对等方传输使用
  • I(Internal)BGP

    • 内部对等方传输使用

    在这里插入图片描述

路由跟踪工具

  • Windows: tracert
  • Linux/Mac: traceroute
  • 在这里插入图片描述

8.MTU 与 IP 报文分片

IP 报文格式

  • IHL:头部长度,单位字

  • TL:总长度,单位字节

  • Id:分片标识

  • Flags:分片控制

    • DF 为1:不能分片
    • MF 为1:中间分片
  • FO:分片内偏移,单位 8 字节

  • TTL:路由器跳数生存期

  • Protocol:承载协议

  • HC:校验和

    在这里插入图片描述

MTU(Maximum Transmission Unit)分片

  • MTU 最大传输单元( RFC791 :>=576 字节)
  • ping 命令
    • -f:设置 DF 标志位为 1
    • -l:指定负载中的数据长度
  • 在这里插入图片描述

常见网络 MTU

在这里插入图片描述

可能出现多次分片

在这里插入图片描述

IP 分片示例

  • 分片主体
    • 源主机
    • 路由器
  • 重组主体
    • 目的主机
  • 在这里插入图片描述

9.IP 协议的助手:ICMP 协议

ICMP:Internet Control Message Protocol

  • RFC792
  • IP 助手
    • 告知错误
    • 传递信息
  • 在这里插入图片描述

ICMP协议格式

承载在 IP 之上

组成字段

  • 类型
  • 子类型
  • 校验和
  • 在这里插入图片描述

ICMPv4 报文类型

错误报文

  • 3:目的地不可达
  • 4:发生拥塞,要求发送方降低速率
  • 5:告诉主机更好的网络路径
  • 11:路径超出 TTL 限制
  • 12:其他问题

信息报文

  • 0:连通性测试中的响应
  • 8:连通性测试中的请求
  • 9:路由器通告其能力
  • 10:路由器通知请求
  • 13:时间戳请求
  • 14:时间戳应答
  • 17:掩码请求
  • 18:掩码应答
  • 30:Traceroute

目的地不可达报文:Type=3

常用子类型 Code

  • 0:网络不可达
  • 1:主机不可达
  • 2:协议不可达
  • 3:端口不可达
  • 4:要分片但 DF 为1
  • 10:不允许向特定主机通信
  • 13:管理受禁
  • 在这里插入图片描述

Echo 与 Echo Reply 报文

ping 联通性测试

在这里插入图片描述

TTL 超限:Type=11

traceroute/tracert

在这里插入图片描述

10.多播与 IGMP 协议

广播与组播

在这里插入图片描述

广播地址

  • 以太网地址: ff:ff:ff:ff:ff:ff
  • IP 地址
  • 在这里插入图片描述

组播IP地址

预留组播地址

  • 224.0.0.1: 子网内的所有系统组

  • 224.0.0.2: 子网内的所有路由器组

  • 224.0.1.1: 用于 NTP 同步系统时钟

  • 224.0.0.9: 用于 RIP-2 协议

  • 在这里插入图片描述

  • 在这里插入图片描述

组播以太网地址

  • 以太网地址:01:00:5e:00:00:00 到 01:00:5e:7f:ff:ff
  • 低 23 位:映射 IP 组播地址至以太网地址
    • 224.0.0.22: 11100000 00000000 00000000 00010110
    • 01:00:5e:00:00:16: 0000001 00000000 01011110 00000000 00000000 00010110
  • 在这里插入图片描述

IGMP(Internet Group Management Protocol)协议

Type 类型

  • 0x11 Membership Query [RFC3376]
  • 0x22 Version 3 Membership Report [RFC3376]
  • 0x12 Version 1 Membership Report [RFC-1112]
  • 0x16 Version 2 Membership Report [RFC-2236]
  • 0x17 Version 2 Leave Group [RFC-2236]

在这里插入图片描述

0x22 Membership Report:状态变更通知

在这里插入图片描述

Group Record 格式

Record Type 类型

  • 当前状态
    • 1: MODE_IS_INCLUDE
    • 2: MODE_IS_EXCLUDE
  • 过滤模式变更(如从 INCLUDE 奕为 EXCLUDE)
    • 3: CHANGE_TO_INCLUDE
    • 4: CHANGE_TO_EXCLUDE
  • 源地址列表变更(过滤模式同时决定状态)
    • 5: ALLOW_NEW_SOURCES
    • 6: BLOCK_OLD_SOURCES
  • 在这里插入图片描述

11.支持万物互联的 IPv6 地址

IPv6 目的

  • 更大的地址空间:128 位长度
  • 更好的地址空间管理
  • 消除了 NAT 等寻址技术
  • 更简易的 IP 配置管理
  • 优秀的选路设计
  • 更好的多播支持
  • 安全性
  • 移动性

IPv6 地址的冒分十六进制表示法

  • 首零去除
  • 零压缩
    • FF00:4501:0:0:0:0:0:32
      • FF00:4501::32
    • 805B:2D9D:DC28:0:0:FC57:0:0
      • 805B:2D9D:DC28::FC57:0:0
      • 805B:2D9D:DC28:0:0:FC57::
    • 环回地址0:0:0:0:0:0:0:1
      • ::1

IPv6 地址分布

在这里插入图片描述

不同作用域下的多播

Scope ID

  • 14:全局作用域

  • 8:组织作用域

  • 5:场点作用域

  • 2:本地链路作用域

  • 1:本机作用域

  • 在这里插入图片描述

  • 在这里插入图片描述

网络地址与主机地址

全局路由前缀:48

  • 可任意划分为多级

子网ID:16

  • 可任意划分为多级

接口ID:64

  • 直接映射 MAC 地址

在这里插入图片描述

IEEE802 48 位 MAC 地址映射主机地址(EUI-64)

  • 取 OUI(组织唯一标识)放左 24 比特

  • 中间 16 比特置为 FFFE

  • 置 OUI 第 7 位为 1 表示全局

    在这里插入图片描述

12.IPv6 报文及分片

IP 头部

在这里插入图片描述

IPv6 主首部格式

  • Version
  • Traffic Class
    • TOS
  • Flow Label:QOS 控制
  • Payload Length
    • Total Length
  • Next Header
  • HopLimit
    • TTL
  • 删除字段
    • IHL
    • Identification, Flags, Fragment Offset
    • Header Checksum

在这里插入图片描述

IPv6 报文格式

  • 40 字节主首部
  • 可选的扩展首部
  • 数据
  • 在这里插入图片描述

IPv6 首部链

在这里插入图片描述

分片扩展首部

  • Fragment Offset
    • 单位 8 字节
  • MoreFragments
    • 0 表示最后分片
    • 1 表示非最后分片
  • identification
    • 扩展 IPv4 相同头部至 4 字节

在这里插入图片描述

IPv6 的分片

  • 不可分片部分
    • 主首部
  • 部分扩展首部
    • 可分片部分
  • 数据
    • 部分扩展首部

在这里插入图片描述

13.从 wireshark 报文统计中找规律

搭配“显示过滤器”使用

统计方式

  • 报文总体分布:捕获文件属性与数据包长度分布
  • 端点统计与会话统计
  • 协议分级统计
  • HTTP/HTTP2 等应用层协议统计
  • TCP 协议连接统计
  • IO 流统计与数据流统计

报文总体分布

捕获文件属性

  • when:何时抓包
  • where:哪个 IP 接口在抓包
  • how:捕获过滤器是什么?
  • how much:多少报文?多少字节?多快速率?

报文长度分布:信息传输效率

  • 各种长度报文的分布

协议分级统计(配合显示过滤器)

  • 分组数量/字节数百分比(同层)
  • 绝对分组数量/字节数
  • 速率(比特/秒)
  • 协议消息统计
    • 结束“分组”
    • 结束字节
    • 结束速率

端点统计/会话统计

  • OSI 不同层次统计
    • 数据链路层(解析名称:MAC/IP/PORT)
      • 通讯双方/单端点、分组数、字节数、报文方向、速率、持续时间
    • 网络层
    • 传输层
      • UDP/TCP,端口统计
  • 快速应用过滤器及着色规则

HTTP/HTTP2 统计

  • HTTP
    • 分组统计:请求方法与响应码统计
    • 请求:基于 Host 和 URI 统计
    • 负载均衡:基于 IP 与 Host 统计
    • 请求序列:对请求同一 Domain 下的 URI 统计
  • HTTP2
    • 帧类型统计

TCP 连接信息统计

  • 基于 TCP 连接特性统计,可切换方向
    • RTT 时间
    • 吞吐量
    • 窗口大小
    • 序列号

IO 图表与数据流统计

  • IO 图表
    • 绘制出不同颜色、各类型(折线、直方、点)图
    • 以时间作为 X 轴(可选择时间间隔)
    • 可设置过滤器下的报文信息为Y轴
    • 报文数量、字节数、统计函数
  • 数据流
    • 可选择基于显示过滤器,显示各端之间的数据流量

专家系统

  • Error:错误信息,包括 Wireshark 解析失败信息
  • Warning:异常警告信息
    • RST 复位关闭、TCP 窗口关闭、TCP 乱序报文等
  • Note:正常通信中的异常通信报文
    • TCP 重复 ACK、TCP 重传报文、Keepalive、TLS 复用密钥、零窗口探查等
  • Chat:通信的基本信息

14.写在最后

本篇博客主要介绍完了IP协议,至此整个网络协议到此就介绍完了。

猜你喜欢

转载自blog.csdn.net/qq_36434742/article/details/125520145
今日推荐