【网络】IP协议的地址管理

news2024/11/24 12:36:15

【网络】IP协议的地址管理

  • 一. IP协议格式
  • 二. 地址管理
    • 1.动态分配IP地址
    • 2.NAT机制
      • 2.1 NAT机制下网络的请求/响应
    • 3. 网段划分
      • 3.1 特殊的IP地址
    • 4.路由选择
    • 5.DNS域名解析系统

一. IP协议格式

在这里插入图片描述

  • 4位版本号(version): 指定IP协议的版本(IPv4/IPv6), 对于IPv4来说, 就是4.
  • 4位头部⻓度(header length): IP头部的⻓度,单位是4字节, IP头部最⼤⻓度是60字节.
  • 8位服务类型(Type Of Service): 3位优先权字段(已经弃⽤), 4位TOS字段, 和1位保留字段(必须置为0). 4位TOS分别表⽰: 最⼩延时, 最⼤吞吐量, 最⾼可靠性, 最⼩成本. 这四者相互冲突, 只能选择⼀个.
  • 16位总⻓度(total length): IP数据报整体占多少个字节. (最大64KB,虽然长度小,但是IP地址提供了拆包组包的机制
  • 16位标识(id): 唯⼀的标识主机发送的报⽂. 如果IP报⽂在数据链路层被分⽚了, 那么每⼀个⽚⾥⾯的这个id都是相同的.
  • 3位标志字段: 第⼀位保留(保留的意思是现在不⽤, 但是还没想好说不定以后要⽤到). 第⼆位置为1表⽰禁⽌分⽚, 这时候如果报⽂⻓度超过MTU, IP模块就会丢弃报⽂. 第三位表⽰"更多分⽚", 如果分⽚了的话, 最后⼀个分⽚置为1, 其他是0. 类似于⼀个结束标记.
  • 13位分⽚偏移(framegament offset): 是分⽚相对于原始IP报⽂开始处的偏移. 其实就是在表⽰当前分⽚在原报⽂中处在哪个位置.
  • 8位⽣存时间(Time To Live, TTL): 数据报到达⽬的地的最⼤报⽂跳数. ⼀般是64. 每次经过⼀个路由, TTL -= 1, ⼀直减到0还没到达, 那么就丢弃了. 这个字段主要是⽤来防⽌出现路由循环 .
  • 8位协议: 表⽰上层协议的类型 .
  • 16位头部校验和: 使⽤CRC进⾏校验, 来鉴别头部是否损坏.
  • 32位源地址和32位⽬标地址: 表⽰发送端和接收端.

二. 地址管理

IP地址是一个32位的整数,为了方便,将其表示成点分十进制的形式,通过3个点分成4个部分,每个部分1个字节,每个部分取值0-255。32位的整数所能表示的数据范围为大约为42亿9千万。那我们就会发现,全球70亿人,每人分配一个地址都不够用,况且我们很多人不止一台设备。因此地址管理应运而生。

1.动态分配IP地址

考虑到全世界的设备不是在同一时刻上网,采用用时分配、不用时回收的方式更充分地利用现有的IP地址。(权宜之计,并没有解决根本问题)。

2.NAT机制

在这里插入图片描述
⼀个路由器可以配置两个IP地址, ⼀个是WAN⼝IP, ⼀个是LAN⼝IP(⼦⽹IP).

⼦⽹内的主机需要和外⽹进⾏通信时, 路由器将IP⾸部中的IP地址进⾏替换(替换成WAN⼝IP), 这样逐级替换, 最终数据包中的IP地址成为⼀个公⽹IP. 这种技术称为NAT(Network Address Translation,⽹络地址转换).

先把IP地址分成两个大类,即私网IP和公网IP。

  1. 私网IP/局域网IP:10.、172.16-172.31.、192.168.这三类地址;
  2. 公网IP/广域网IP:剩下的IP。

要求公网上的设备,对应公网的IP,都必须是唯一的。但私网上的设备,使用私网IP,只需要保证私网内部的IP不重复即可,不同的局域网之内的IP允许重复,这样就大大提高了IP的复用率。

由于上述规定,就有一个重要的限制:

  1. 公网设备访问公网设备,没有任何问题,直接访问即可;
  2. 局域网设备访问局域网设备(同一个局域网内),允许访问;
  3. 局域网设备访问局域网设备(不同局域网内),不允许访问;
  4. 局域网设备访问公网设备,需要对局域网设备的IP地址进行转换;
  5. 公网设备访问局域网设备,不允许主动访问;

就比如说,某些校内资源,不使用校园网,就无法访问:此时你如果用的是家里的wifi,那就是不同局域网内,局域网设备不允许访问局域网设备;你如果使用流量,那就是公网设备不允许主动访问局域网设备。

2.1 NAT机制下网络的请求/响应

在这里插入图片描述
发送请求的过程其实很简单,只是需要在路由器处转换IP地址为公网地址。但是如何返回响应呢?返回的响应如何找到替换前的IP地址呢?
这就要求路由器在转换IP地址时要进行记录:

替换前的IP替换后的IP目的IP源端口目的端口
192.168.1.105.6.7.81.2.3.4100009090

如果有多条记录,又该怎么样进行区分呢:

  1. 如果局域网内的各个设备访问的是不同的服务器,路由器就可以通过服务器的IP地址来进行区分;
  2. 如果局域网的各个设备访问的是同一个服务器,路由器可以通过源端口进行区分;
  3. 如果局域网的各个设备访问的是同一个服务器,而且系统分配的端口又恰好一样,此时就要对端口进行映射,通过映射后的端口来进行区分。
替换前的IP替换后的IP目的IP源端口替换后的端口目的端口
192.168.1.105.6.7.81.2.3.410000100019090
192.168.1.205.6.7.81.2.3.410000100029090

3. 网段划分

把一个IP地址,分成两个部分。即网络号+主机号。
网络号:保证相互连接的两个⽹段具有不同的标识;
主机号:同⼀⽹段内, 主机之间具有相同的⽹络号, 但是必须有不同的主机号;
注意:
一个局域网中,网络号和主机号都相同,这个时候是无法上网的;
一个局域网中,网络号和主机号都不相同,也是无法上网的(无法与局域网内的设备通信,也无法通过连接的路由器与公网的设备通信);
两个相邻的局域网,网络号不能相同。

那在32位IP地址中,网络号和主机号是如何划分的呢?
通过子网掩码(subnet mask)来区分:

  • 子网掩码也是一个32位的正整数,通常用一串”0“来结尾;
  • 将IP地址和⼦⽹掩码进⾏ 按位与 操作, 得到的结果就是⽹络号;
    在这里插入图片描述
    比如这里,就是前24位(点分十进制的前三位)位网络号,最后8位位主机号。
    在这里插入图片描述
    再比如这个,255.255.255.240的二进制就是(11111111 11111111 11111111 1111 0000)就是前28位为网络号,最后4位为主机号。

3.1 特殊的IP地址

  • 将IP地址中的主机地址全部设为0, 就成为了⽹络号, 代表这个局域⽹;
  • 将IP地址中的主机地址全部设为1, 就成为了⼴播地址, ⽤于给同⼀个链路中相互连接的所有主机发送数据包;
  • 127.*的IP地址⽤于本机环回(loop back)测试,通常是127.0.0.1 ;

4.路由选择

此处的原则就是近处由MAC地址决定,总体由IP地址决定。

在这里插入图片描述

5.DNS域名解析系统

TCP/IP中使⽤IP地址和端⼝号来确定⽹络上的⼀台主机的⼀个程序. 但是IP地址不⽅便记忆。DNS域名解析就是用一个容易理解的字符串来代替IP地址,这样就不需要记忆IP地址也能访问对应的服务器。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2220425.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AI工具:最受欢迎与最佳体验的探索

在当今数字化的时代,人工智能(AI)技术的广泛应用正在彻底改变我们的生活方式、工作方式和社会交往。AI工具不仅在工业生产、医疗诊断、金融服务等领域发挥着关键作用,还深入日常生活,为人们带来便捷与高效。本文将探讨…

基于SpringBoot的旅店管理系统的设计与实现源码+Vue前端(酒店、民宿、功能较多)

💗博主介绍💗:✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 温馨提示:文末有 CSDN 平台官方提供的老师 Wechat / QQ 名片 :) Java精品实战案例《700套》 2025最新毕业设计选题推荐…

基于JSP实习管理系统【附源码】

基于SSM的学生管理系统(源码L文说明文档) 目录 4 系统设计 4.1 系统概述 4.2系统功能结构设计 4.3数据库设计 4.3.1数据库E-R图设计 4.3.2 数据库表结构设计 5 系统实现 5.1管理员功能介绍 5.1.1管理员登录 5.1.2…

RuoYi-Vue若依 环境搭建 速成

一、若依简介 RuoYi-Vue 是一个开源的后台管理系统,适用于快速开发企业级应用。该平台由两部分组成:前端和后端。 (1)技术框架 前端技术: Vue.js: 前端框架使用 Vue.js,这是一种流行的JavaScript框架&a…

鸿蒙网络编程系列28-服务端证书锁定防范中间人攻击示例

1. TLS通讯中间人攻击及防范简介 TLS安全通讯的基础是基于对操作系统或者浏览器根证书的信任,如果CA证书签发机构被入侵,或者设备内置证书被篡改,都会导致TLS握手环节面临中间人攻击的风险。其实,这种风险被善意利用的情况还是很…

数据结构与算法——Java实现 44.翻转二叉树

目录 226. 翻转二叉树 思路 代码 本地代码测试 不管前方的路有多苦 只要走的方向正确 不管多么崎岖不平 都比站在原地更接近幸福 —— 24.10.21 226. 翻转二叉树 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 示例 1: 输…

GEE引擎传奇UI界面修改教程

还记得小林之前给大家分享了gom引擎UI界面编辑教程,今天给大家分享一下gee引擎UI界面修改教程 首先打开登录器生成器-客户端界面设置 在客户端界面设置这里可以自定义UI素材,也可以直接在原素材上编辑主界面 传奇根目录指向的是你的传奇客户端根目录&am…

单神经元建模:基于电导的模型[神经元结构、静息电位和等效电路]

文章目录 神经元结构、静息电位和等效电路神经元结构静息电位能斯特方程1. **描述浓度比的非线性关系**:2. **化学势与电势的关系**:3. **对称性**:4. **热力学与平衡**:总结: GHK方程Nernst方程和GHK方程的对比 等效电…

深度学习:YOLO目标检测和YOLO-V1算法损失函数的计算

简介 YOLO(You Only Look Once)是一种基于深度学习的目标检测算法,它的核心思想是将目标检测问题转化为一个回归问题,通过一个神经网络直接预测目标的类别和位置。 YOLO算法将输入图像分成SxS个网格,每个网格负责预测…

cefsharp79.1.360(Chromium 79.0.3945.130)支持H264视频播放-PDF预览 老版本回顾系列体验

一、关于此版本 版本:Cef 79.1.36/CefSharp 79.1.360/Chromium 79.0.3945.130/支持H264/支持PDF预览 支持PDF预览和H264推荐版本 63/79/84/88/100/111/125 运行环境需要 visual c++ 2015不支持xp/vista/2003/2008默认不支持h264(版权问题)支持打印预览 print preview已知问题…

Kafka之原理解析

定义 Kafka 是一个分布式流媒体平台,kafka官网:http://kafka.apache.org/ Kafka 是一种高吞吐量、分布式、基于发布/订阅的消息系统,最初由 LinkedIn 公司开发,使用Scala 语言编写,目前是Apache 的开源项目。 流媒体…

深入解析Golang GMP

文章目录 1. 引言2. GMP 模型概述与核心结构体2.1. G(Goroutine)2.2. M(Machine/Thread)2.3. P(Processor)2.4. 全局调度器schedt(Scheduler) 3. Goroutine 的生命周期与状态管理3.1…

子比主题美化-用户中心隐私功能

前言 子比主题用户中心的文章、评论、粉丝等默认全部人可见,但是有时不想让全部人可见就可以开启此功能 图片展示 教程开始 把以下代码添加到子比主题下,按顺序找到该文件/inc/functions/zib-author.php,在zib-author.php第374行把原代码删…

面试官:`interrupted()` 和 `isInterrupted()` 你真的用懂了吗?

感谢Java面试教程的 Java面试题:interrupted和isInterrupted方法的区别 在Java中,interrupted() 和 isInterrupted() 是用于检查线程中断状态的方法,但它们之间有一些关键的区别。 方法类型: interrupted() 是一个静态方法&…

每月洞察:App Store 和 Google Play 的主要更新

Google Play 和 App Store 的算法不断发展,定期更新和变化会显着影响其功能。对于开发人员和营销人员来说,跟上这些变化至关重要,因为它们会直接影响应用发现和排名。 本文将深入探讨 Google Play 和 App Store 的最新更新,解释它…

基于微信小程序二手物品调剂系统设计与实现

文章目录 前言项目介绍技术介绍功能介绍核心代码数据库参考 系统效果图文章目录 前言 文章底部名片,获取项目的完整演示视频,免费解答技术疑问 项目介绍 二手物品调剂系统是一种在线平台,旨在促进用户之间的二手物品交易。该系统提供了一个…

【Pycharm】显示内存不足the IDE is running low on memory解决方法

Pycharm提示显示内存不足the IDE is running low on memory解决方法 在右上角找到Help,点击,找到change memory settings 修改数值如1024,2048 等,增大容量即可。最后点击save and Restart

Newstar_week1_week2_wp

week1 wp crypto 一眼秒了 n费马分解再rsa flag: import libnum import gmpy2 from Crypto.Util.number import * p 9648423029010515676590551740010426534945737639235739800643989352039852507298491399561035009163427050370107570733633350911691280297…

大数据之hive(分布式SQL计算工具)加安装部署

1.分布式SQL计算: 对数据进行统计分析, SQL是目前最为方便的编程工具. 2.hive:主要功能: 将 SQL语句翻译成MapReduce程序运行,提供用户分布式SQL计算能力 3.构建分布式SQL计算:(hive核心组件) 需要有: 一:元数据管理功能, 即:数据位置,数据结构,等对数…

每日OJ题_牛客_[NOIP2001]装箱问题_01背包_C++_Java

目录 牛客_[NOIP2001]装箱问题_01背包 题目解析 C代码 Java代码 牛客_[NOIP2001]装箱问题_01背包 [NOIP2001]装箱问题 (nowcoder.com) 描述: 有一个箱子容量为V(正整数,0 ≤ V ≤ 20000),同时有n个物品&…