当前位置: 首页 > news >正文

「网络原理」IP 协议

🎇个人主页:Ice_Sugar_7
🎇所属专栏:计网
🎇欢迎点赞收藏加关注哦!

IP 协议

  • 🍉报头结构
  • 🍉地址管理
    • 🍌动态分配 IP 地址
    • 🍌NAT 机制(网络地址映射)
    • 🍌IPv6
  • 路由选择

🍉报头结构

TCP/IP 协议族是整个网络体系中最核心的协议,类似于 TCP,IP 所包含的内容也很复杂
IP 协议主要完成两方面的工作

  1. 地址管理:使用一套地址体系来描述互联网上每个设备所处的位置
  2. 路由选择:为一个数据包规划如何从网络中某个地址传输到另一个地址

先来认识一下 IP 协议报头

在这里插入图片描述

“16 位总长度” 描述了一个 IP 数据报的长度(包括报头和载荷),虽然 IP 自身有长度限制,但是 IP 也提供了拆包和组包这样的操作,所以载荷很大也没关系,因为在 IP 这一层会自动拆成多个 IP 数据报,每个数据报携带一部分载荷

拆包后该如何组包呢?这就涉及到下面三个属性

在这里插入图片描述

在这里插入图片描述


🍉地址管理

设定 IP 地址的目的就是为了区分网络上不同的设备。但是 IP 地址本质是一个 32 位整数,由于网络设备越来越多,IP 地址不够用就成了上世纪 90 年代一个非常严峻的问题
对于这个问题,有三种解决方案

🍌动态分配 IP 地址

因为全世界的设备不是同时上网,所以就只给正在上网的设备分配一个 IP 地址就 ok 了。不过这并没有从根本解决问题

🍌NAT 机制(网络地址映射)

IP 地址分为两类

  1. 私网 IP / 局域网 IP
    形如 10.,172.16-172.31.,192.168.* 的地址都是私网 IP
  2. 公网 IP / 广域网 IP
    不是局域网的 IP 就是公网 IP

公网上的设备对应的公网 IP 都必须是唯一的;但是私网上 / 局域网上的设备,它们使用私网 IP,只要保证在当前局域网内部的 IP 不重复就 ok 了,不同局域网之间的 IP 是允许重复的
这个设定就会带来一些限制:

  • 公网设备可以直接访问其他公网设备
  • 同一局域网中的不同设备之间可以相互访问
  • 不同局域网中的设备之间不能访问
  • 局域网设备如果要访问公网设备,那就需要先对局域网 IP 进行转换
  • 公网设备不能主动访问局域网设备

这里第四点需要单独拎出来说一下
为了方便解释,这里就只考虑主机经过一个路由器之后就可以把数据转入公网,最终到达服务器,如下图:

在这里插入图片描述

所以发送数据报的流程如下:

在这里插入图片描述

上述的替换过程,本质上是让一个公网 IP 能够对应到多个设备,从而节省 IP 地址

路由器在 NAT 的时候会把这次通信的相关信息记录下来,比如源 IP、目的 IP。
如果局域网各个设备访问的服务器互不相同,那么路由器就可以通过服务器 IP 来区分是哪个设备,只需通过查表就可以把目的 IP 还原为之前的局域网 IP
如果访问的是同个服务器,可以通过端口号来区分,如下图,目的 IP 都是 5.6.7.8:

在这里插入图片描述

端口号可以用来区分同一主机的不同进程,也可以区分不同主机的不同进程,因为客户端的端口号是系统随机分配的,两台主机之间的端口大概率不同。路由器收到响应之后就可以查询传输层中的目的端口,看这里的端口是 2000 还是 3000,从而确定要把响应转发给哪个客户端
不过也有巧合,比如局域网中两台设备的端口恰好相同,那么此时路由器就会对端口号进行映射

在这里插入图片描述
比如对于第一个客户端:

在这里插入图片描述


🍌IPv6

IPv4 使用 4 个字节表示 IP 地址,取值范围为 0 - 2^32;而 IPv6 使用 16 个字节表示,范围为 0 - 2^128。通过增加 IP 地址的个数,从根本上解决问题。但是 IPv6 的报头结构和 IPv4 不兼容,引入 IPv6 就意味着当前的网络设备(路由器等)就需要更换为支持 IPv6 的设备


路由选择

路由选择就是路线规划,但是由于网络结构很复杂,每个路由器都无法掌握全局的信息,只了解一部分局部信息,因此路由器规划出来的路线,只是一个局部的最优解(听起来类似贪心)
每个路由器对网络环境(与它相邻的设备情况)有一定的了解,这样它就可以根据数据报中的目的 IP,告诉数据报下一步应该往哪个方向走
其中的原理为:路由器内部有一个数据结构——路由表,它记录目的 IP 的网段对应的网络接口(就是从路由器哪个口出),但由于路由器只了解局部的情况,所以数据报的目的 IP 在路由表中很可能不存在,此时路由表中的特殊表项(又称下一跳)就发挥了作用,它指向一个默认的网络接口,这个接口通常指向更上层的路由器

http://www.lryc.cn/news/379783.html

相关文章:

  • 电商平台生活用品销售数据分析与应用
  • FastAdmin数据库设计规范
  • 基于MATLAB仿真LFM线性调频信号
  • 互联网的盈利模式
  • 什么是距离选通型水下三维激光扫描仪?(下)
  • 计算机网络(谢希仁第六版)| 课后习题与答案 | 物理层 | 题目知识点详细分析
  • 安卓安装linux + .net环境
  • ES6 新增Set 和 Map 两种数据结构
  • 【学一点儿前端】单页面点击前进或后退按钮导致的内存泄露问题(history.listen监听器清除)
  • vue跳转页面 如果登录了直接跳转 没有登录登录完以后直接跳转,使用vuex管理登录状态
  • 渗透测试-若依框架的杀猪交易所系统管理后台
  • 【免费】中国电子学会2024年03月份青少年软件编程Python等级考试试卷一级真题(含答案)
  • 深入了解RTMP推流技术:视频汇聚EasyCVR低延迟与高稳定性分析
  • containerd手动配置容器网络
  • 数据迁移到 Django 模型表:详尽指南
  • 代码随想三刷二叉树篇4
  • 『大模型笔记』如何让小型语言模型发挥作用!
  • jnp.diag
  • bert文本分类微调笔记
  • 运维:k8s常用命令大全
  • PHP基础之错误与异常
  • 详解Spring AOP(一)
  • 读者写者问题(读者优先、公平竞争、写者优先)
  • Springboot开发之 Excel 处理工具(二)-- Easyexcel
  • 6月27日云技术研讨会 | 中央集中架构新车型功能和网络测试解决方案
  • 微信小程序生命周期
  • 【JS重点15】原型对象概述
  • Java之Hutool/Guava/Apache Commons工具包项目实践
  • 哈喽GPT-4o——对GPT-4o 提示词的思考与看法
  • 《计算机英语》 Unit 3 Software Engineering 软件工程