2023.9.18 网络层 IP 协议详解

目录

IP协议

IPv4

[32位 源IP 地址 / 32位 目的IP 地址](#32位 源IP 地址 / 32位 目的IP 地址)

[IP 地址管理](#IP 地址管理)

[特殊 IP](#特殊 IP)

路由选择


IP协议

IPv4


32位 源IP 地址 / 32位 目的IP 地址

基本知识:

  • 在 IP 报头中一般表示为 32位 二进制整数
  • 日常生活中的 IP 一般将 32位 二进制整数,也就是 4字节 的二进制整数,分割为 4个部分,每个部分用 0~255 十进制整数 表示,形如 176.12.215.122,称为 点分十进制

注意:

  • 如果当全世界上网设备都拥有一个唯一且不重复的 IP 地址时,我们 IP报头 中的 32位 整数仅能表示 42亿9千万 台设备,这显然是不够用的

解决方案:

  • 动态分配 IP地址:全世界上网设备并不全在 同一时间段 进行上网,此时可以 以此为基础进行 IP地址的动态分配,但是该方案仅提高了 IP地址的利用率,IP地址 的总数并未增加!
  • 使用 IPv6:用 128位,也就是 16 字节 来表示 IP地址,相当于 IPv4 能表示设备数量的 4 次方,也就是 42亿9千万 * 42亿9千万 * 42亿9千万 * 42亿9千万 这么庞大的数量,为全世界的设备都分配一个 IP地址 都是绰绰有余的
  • **NAT 网络地址转换:**本质为一个 IP地址 代表一批设备,进一步提高 IP地址的利用率

NAT 将 IP地址 分为两大类:

  • 内网 IP(私网 IP):10.* 或 172.16.* ~ 172.31.* 或 192.168.*
  • 外网 IP(公网 IP):除私网 IP 以外均为 公网 IP

规则:

  • 公网IP 必须是唯一的
  • 私网IP 在不同局域网内 可以重复使用
  • 私网中的某一设备想访问公网的设备,需要用到对应的 NAT设备(路由器),将 IP地址 进行映射,从而完成网络 访问
  • 公网的设备 无法直接访问 私网的设备
  • 不同局域网的私网设备无法直接相互访问

查看本机的私网IP:

  • 打开 cmd 输入 ipconfig
  • 红框部分为本机电脑的 私网IP

查看本机的公网IP:

  • 打开浏览器搜索 IP地址
  • 点开上图红色箭头所示链接
  • 红框部分为 运营商路由器 为本机提供的 公网IP

NAT 具体工作流程图:

总结:

  • 虽然 IPv6 能满足我们的需求,但是现今世界还是主要使用 IPv4 + NAT + 动态分配 来进行网络的组件,其中最重要的原因是 IPv6 和 IPv4 不兼容,如需更换 IPv6 则需更换路由器等网络设备,所带来的经济效益十分的低!

IP 地址管理

IP地址 分为两部分:

  • 网络号:标识网段,保证相互连接的两个网段有不同的标识(局域网)
  • 主机号:标识主机,主机之间具有相同的网络号,但必须有不同的主机号

如何划分网络号和主机号?

  • 通过 子网掩码
  • 特点:左边都为1,右边都为0
  • 图中 子网掩码 为 255.255.255.0(家用设备 最常见的)
  • 即 1111 1111 1111 1111 1111 1111 0000 0000
  • 1 的部分描述 该 IP 有多少位为 网络号,0 的部分描述 该 IP 有多少位为 主机号

特殊 IP

  • IP地址 的主机地址全部设为 0 ,变为网络号,代表这个局域网
  • IP地址 的主机地址全部设为 1 ,变为广播地址,用于给同一个链路中相互连接的所以主机发送数据,使用 UDP 往该地址发送数据报,整个局域网所以的设备都能收到
  • 127.* 的 IP地址用于本机环回测试,通常为 127.0.0.1
  • 主机号为 1, 通常为 网关IP,也就是网络的入口,也可自行配置

路由选择

核心思路:

  • 问路

具体思路:

  • 每个路由器会保存一定的周围设备的信息(路由表)
  • IP数据报 每经过一个路由器,需要匹配路由表,来看下一步咋走
  • 如果路由表有匹配项 (认识路)则直接按照要求走
  • 如果没有匹配项(不认识路) 则会提供一个默认路径,大体方向是对的
  • 循环上述过程,直到到达 目的IP

注意:

  • 每经过一个路由器问一次,同时 TTL-1,如果减到 0 ,还未到达 目的IP ,该 IP数据报将被直接丢弃
  • 当然 TTL 的值为32,足够将 IP数据报 传输给全世界任何地方
相关推荐
开开心心就好6 小时前
音频降噪剪辑工具,音量裁剪一键处理
运维·服务器·前端·spring·ocr·音视频·1024程序员节
一枕槐安4876 小时前
大模型限流、重试、超时处理:API 调用健壮性方案
linux·服务器·php·大模型api·指数退避·限流控制·超时预算
黑十6 小时前
PyTorch 报 “no CUDA GPUs are available“ 怎么办?3 步排查
服务器·网络·人工智能·pytorch·python
Ruiery8 小时前
Linux 6.6内核并发与同步(五):mutex 可睡眠锁
linux·运维·服务器
开开心心就好8 小时前
竖式除法出题工具,整除余数混合模式
运维·服务器·前端·javascript·ocr·perl·1024程序员节
updayday8549 小时前
客户附件不该发往旧邮箱,如何在发送前拦截 - Ping64 邮件安全管控
大数据·网络·数据库·安全·智能路由器
其实防守也摸鱼9 小时前
Chrome 扩展安全攻防实录:从攻击面到防御实践
开发语言·前端·网络·chrome·安全·web安全·php
小茬粥9 小时前
QEMU 宿主机网卡实例发现与采集脚本(标准 Linux / Proxmox VE 适配版)COLT_CMDB_QEMU_IFACE.sh
网络
见合八方9 小时前
借助半导体光放大器实现功率预算超31dB的112.5Gbit/s长距无源光网络
网络·5g·soa·光通信·激光雷达·半导体光放大器
程序猿老A10 小时前
轻量应用服务器总是CPU 100%怎么办?
服务器