前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[NetWork] IP基础原理

[NetWork] IP基础原理

作者头像
BreezeCloud
发布2022-12-20 14:23:23
5620
发布2022-12-20 14:23:23
举报
文章被收录于专栏:摸鱼网工

IP协议概述

IP(Internet Protocol)互联网协议,是网络层唯一标准 是网络层的核心协议,定义了网络层的封装方式,编址方法,主要负责功能: 网络层寻址(IP地址寻址) 路由路径选择(路由协议路径查找) 包重组

TCP/IP协议

这里面几个协议ICMPIGMPARPRARP待会我们会详细讲解

IP协议的主要作用

  • 标识网络节点和链路

IP为每个链路分配一个全局唯一的网络号[Network Number]来标识每个网络,为节点分配一个全局唯一的32位IP地址,用于标识每个节点 PS:就是网络地址、客户端地址

  • 寻址和转发

寻址寻的是网络IP地址,寻找到一个网络范围,确定范围在转发到相应目的主机。

  • 适应各种数据链路

可以根据链路的MTU(Maximum Transfer Unit 最大传输单元)对IP包进行分片和重组,实现从IP到数据链路层地址的映射(和ARP差不多)

路由器的主要功能

  • 连接网络和聚合网络

将原本从接口上分离的两个网络互联

  • 链路层协议适配

可以通过适配链路层的协议和速率,而实现两者之间通信。

  • 网络间数据包转发

路由器与路由器之间需要运行网关到网关协议 GGP(Gateway to Gateway Protocol)才能确定去往目的网络的正确路径。典型的GGP包括RIPOSPFBGP等路由协议(Routing Protocol) 且IP网络的包转发是逐跳进行的(hop-by-hop),因此每个路由器中都有个张路由表(routing table)里面包含了我们来确定自身数据包要去往目的网络的下一跳地址(Next hop)。

IP头部报文格式

IP报文头部格式

整报文长20-60个byte字节,前20字节常用

4bit + 4bit + 8bit + 16bit +16bit + 3bit + 13bit + 8bit +8bit + 16bit + 32bit(源IP) + 32bit(目IP) = 160bit = 20byte

后40字节Option与Padding不常用

我们逐层来分析每个模块的意思

  • Version

版本号 - 4bit 用于标识IP协议的版本号,目前IP协议版本号一共有两种IPv4 / IPv6目前IPv4地址已经耗尽,IPv6拥有更广的地址,甚至可以为沙漠中的每一个沙粒分配一个地址,国家正在大力推广IPv6与普及

  • IHL

头长度 - 4 bit 又叫Internet Header Length 指我们IP包头部长度,通常不固定 根据Option选项来计算

  • Type of Service

服务类型(TOS)- 8bit 用于QOS(Quality of Service)质量服务中,表示该数据包所期望的服务优先级。

  • Total Length

总长度 - 16bit 用于表示整个IP包的长度,包括数据部分

  • Identification

标识 - 16bit 用于唯一标识主机发送的每一IP包,通常没发送一个IP包其值就会加1

  • Flags

标志位 - 3bit 用来控制包分片功能 是否开启分片,开启分片后是否标记最后一个分片

  • Fragment Offset

片偏移 - 3bit 当我们开启分片功能后,需要为每个一个分片打上标记,来标识每个分片在数据包中所属的位置。 如果不打上标记最后数据组合起来就是混乱的,过不了头部校验直接丢弃。

  • Time to Live

生存时间 - 8bit 又叫TTL,用来标记数据包经过路由器的数目 数据包经过一个路由器,TTL值就会减1,当字段为0时,数据包被丢弃 可以有效防止路由环路

  • Protocol

协议 - 8bit 用于标识传输层的地址或协议号,数据需要怎样的上层服务,交给哪个协议处理(TCP/UDP/ICMP/IGMP/EGP/IGP) 我们记住这个几个常见协议号就行了 1 - ICMP 2 - IGMP 4 - IP 6 - TCP 8 - EGP 9 - IGP 17 - UDP 41 - IPv6 89 - OSPF 112 - VRRP

  • Header Checksum

头部校验和 - 16bit 用于校验数据的完整性和差错校验

  • Source Address

源IP地址 - 32bit

  • Destination Address

目的IP地址 - 32bit

  • Option

可选项 0 - 40bit Option字段很少用,基本上只用来控制、转护要求以及测试等目的。

  • Padding

填充 0 - 40bit 和Option选项一样,该项只用于填充数据。

MTU概念

Maximum Transmission Unit 最大传输单元,指以接口收发数据最大支持的单个数据包的长度 也就是我们包分片后的大小 以太网接口默认MTU是1500Byte字节 PPPoE默认是1492Byte字节

IP地址

用于标识网络层地址,点分十进制,32为长度, 由网络位+主机位组成 例如: 192.168.1.1

IP地址格式计算

IPv4地址理论上有2³²≈43亿个地址,不过现在已经耗尽。

关于IP地址我们需要知道以下两个重要概念:

  • 网络位

用于区分不同的IP网络,说白了就是一个网络位对应一个网段 如果一个主机的网络位长度和数字完全一致,那么这个主机在在这个网段中

  • 主机位

用于标识IP网络中的设备地址,一个网络范围内部的主机号是唯一的。

IP地址的分类

IP地址分类

一共分为五大类即A、B、C、D、E

  • A类地址范围

1.0.0.0 - 126.255.255.255 前8位为网络位,后24位为主机位 127留作保留,本地测试用

A类地址

  • B类地址范围

128.0.0.0 - 191.255.255.255 前16位为网络位,后16位为主机地址

B类地址

  • C类地址范围

192.0.0.0 - 224.255.255.255 前24位为网络地址,后8位为主机地址

C类地址

  • D类地址范围

224.0.0.0 - 239.255.255.255 只能用作组播地址,不能配置为主机地址

D类地址

  • E类地址范围

240.0.0.0 - 255.X.X.X 用于科研用地址,不对外公开

E类地址

  • 特殊的几个IP地址

127.X.X.X 本地换回地址,用来标识本地主机。 主机位全0 为网络地址,标识网段,例如192.168.1.0 主机位全1 为本网段的广播地址,广播和单播概念后面再讲,例如192.168.1.255 255.255.255.255 为全网广播地址 0.0.0.0标识所有IP地址,通常用来做默认匹配

公网/私网IP地址范围

IP除了5大类之分,还有公私网之分 公网就是我们可以在互联网上寻找到的地址,全球唯一,通常由运营商分配。

  • 私网地址范围

A类:10.X.X.X B类:172.16.X.X - 172.31.X.X C类:192.168.X.X 自动私有地址169.254.X.X 运营商专用私用地址100.64.X.X - 100.127.X.X

ARP协议

ARP(Address Resolution Protocol) 地址解析协议,以太网并不能识别32位的IP地址,于是研发了这种协议,通过动态的将IP地址解析为MAC地址实现通信 主机通过ARP解析到目的MAC地址,会将其存在自己的ARP缓存表中,方便下次查询时直接使用。

  • ARP的工作流程

1.主机A以广播形式发送ARP查询请求,询问到达主机B的IP地址对应的MAC地址 2.主机B以单播形式恢复主机A的本机的MAC地址 3.主机A和主机B各自都将对方的IP地址和MAC地址对应关系写入ARP缓存表

工作流程

ARP缓存表又被分为动态ARP缓存表与静态ARP缓存表

  • 动态ARP缓存表

通过ARP协议动态解析活动,超过老化时间(aging time)没有使用就自动删除。

  • 静态ARP表

通过手动配置添加对应信息至ARP表,静态ARP表不会被老化,且优先级高于动态ARP表

ARP在主机上的一些常用命令 arp -a查询ARP缓存表 arp -d清空ARP缓存表

RARP协议

逆向地址解析协议 根据本机自己的MAC地址,来查询本机自己的IP地址

工作流程

ICMP协议

互联网控制消息协议,一个网络层协议 定义了错误报告提供了网络诊断功能,通常配合高层协议使用 比如说应用 Ping命令 Tracert命令

  • Ping

关于这个命令,用来测试网络连通性,常见的几个命令: ping -a [source address] [destination address] 指定源IP和目的IP发送请求 ping -c [number] [destination address] 指定数量发送request报文给目的方 ping -s [size] [destinaction address] 指定发送的报文的大小 ping -t [time] [destination address] 指定报文的延时时间 除了以上几个命令,我们还需要了解回送的报文的意思

ICMP消息表

Echo Request回应请求,用来发送测试对方是否可达

Echo Reply回应响应,对Echo Request 回复响应

Time Exceeded超时,当TTL字段成0代表不可达

Destination Unreachable目的不可达,表示去往的母子主机不存在

IP包转发流程

首先判断目的IP是否和本机IP属于同一网段 同一网段,会直接查询目的IP的MAC地址,并进行封装转发 不在同一网段,会查询网关的IP地址的MAC地址,并进行封装转发

主机单播包发送流程

当路由器收到一个单播包,首先还是判断目的地址是否找自己

是,则接收该包并逐层解封获取数据

否,则判断是否属于本身接口上的网段,如果是,则将包转发给对应网段,否则匹配路由表项,将包转交给Next hop下一跳转发处理。

路由器单播包发送流程

IP包接收流程

包的接收流程满足以下条件之一即可

  • 目的IP地址等于自己的IP地址
  • 目的IP地址是一个广播地址
  • 目的IP地址是一个组播地址,而本机的某个服务属于此组播

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022 年 12 月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • IP协议概述
  • IP协议的主要作用
  • 路由器的主要功能
  • IP头部报文格式
  • MTU概念
  • IP地址
  • IP地址的分类
  • 公网/私网IP地址范围
  • ARP协议
  • RARP协议
  • ICMP协议
  • IP包转发流程
  • IP包接收流程
相关产品与服务
云联网
云联网(Cloud Connect Network,CCN)提供全网互联服务,助力您实现各地域的云上、云下多点互联。云联网的智能调度、路由学习等特性,可帮助您构建极速、稳定、经济的全网互联,轻松满足在线教育、游戏加速、混合云等全网互联场景下的极速体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档