IP协议-NAT机制(理解网络结构的关键要点)

2023-11-05

       前言

        我们现在使用得最多的IP协议版本是IPv4,IPv4是4个字节,32位,也就是说我们的IP地址最多就只有2^32(42亿)个,在日常生活中,我们需要联网的设备都需要有IP地址才能进行通讯,很明显现在42亿个IP地址已经完全不足以满足我们现在的需求了(就目前世界上需要IP地址的设备肯定超百亿)

        此时聪明的程序员就想到了NAT机制来解决这个问题

NAT机制(网络地址转换)

        对于IP地址不够用这个问题想到了一个办法:

        我们把IP地址分为两大类

        1.内网IP

        不同局域网中的设备,.内网IP可以重复,相同局域网中的设备,.内网IP不可以重复

        一般10.*,172.16.*至172.31.*,192.168.*都是内网IP

        2.外网IP

        外网IP不能重复

        3.通讯存在的问题

        a.如果是局域网内部的设备进行通信,肯定是顺利的(同一个局域网下的内网IP不同)

        b.不同局域网中的设备进行通讯,是会存在一些问题的,由于是不同的局域网,所以内网IP有可能相同,因此不能直接进行通信,要想进行通信的话就需要一个带有外网IP的设备进行中转

        c.局域网内部的设备访问外网IP的设备,我们平时使用的电脑,手机都是在局域网内部使用,它们会有内网IP,但服务器就有外网IP,两者进行通信就涉及到了NAT的工作过程

        4.例子

        假设我的电脑现在需要向csdn发送一个请求,就相当于是内网IP的设备要和外网IP的设备进行通信

        以下的过程是简写

        首先,假设我的电脑的上一层局域网就是电信路由器,电信路由器拥有外网IP,我的电脑发送一条IP协议的数据报给电信路由器,IP协议的数据报中就包括了源IP地址和目的IP地址,电信路由器接收到我的电脑发送的数据报后,就会触发NAT机制,电信路由器会使用自己的外网IP地址替换掉当前数据报中的源IP地址(相当于电信路由器用自己的外网IP地址替你发送数据报给csdn的服务器),此时数据报中的源IP地址和目的IP地址都是外网IP地址,就可以建立通信。

        csdn的服务器接受到这个数据报后并不知道这个数据源自于我的电脑(不知道我的电脑的内网IP),它只知道csdn的外网IP,电信路由器肯定不止帮助我这一台设备,而是会帮助很多的设备转发数据报,所以NAT机制下,一个外网IP所代表的就不只是一个设备了,而是很多的设备

        csdn服务器处理好请求以后会返回一个IP数据报给我的电脑,这个数据报就会先到达电信路由器,电信路由器要帮助很多的设备转发数据报,那么它如何知道当前这个数据报要发送给我的电脑呢?

        当电信路由器替换数据报中的源IP地址为自己的外网IP时,会维护一个映射表,形如:替换前:我的内网IP 替换后:电信路由器的外网IP ,当电信路由器需要转发数据报给下层的设备时,就会对照映射表,将目的IP替换为我的内网IP,这样就确保了数据报发送到我的电脑上

NAT机制的重要性

        当前的互联网世界就是NAT构建起来的

        NAT的缺点很明显:

        1.效率不高

        2.非常繁琐

        3.不方便直接访问局域网中的设备

.......

        NAT机制虽然提高了IP地址的利用率(多个设备使用同一个外网IP),但并没有从根本上解决IP地址不够用这个问题

        但NAT机制有一个最大的优点:NAT是一个纯软件实现的方案。

为什么纯软件实现的方案这个优点这么大呢,可以看下面多IPv6的介绍就知道了

IPv6

        IPv6从根本上解决了IP地址不够用这个问题,IPv6是16个字节,128位,也就是说能表示2^128(42亿*42亿*42亿*42亿)个IP地址,这个IP地址是怎么用也用不完的

        但是为什么现在的互联网世界是NAT构建起来的而不是IPv6呢?

        因为IPv6和IPv4不兼容了,而市面上大多数的设备都采用的是IPv4,如果要使用IPv6的话就代表要更新设备,但大多数的人是不会去花钱更新设备的,所以IPv6就普及不起来,而NAT机制是纯软件实现的方案就不需要多余的成本。

        

       

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IP协议-NAT机制(理解网络结构的关键要点) 的相关文章

  • Metasploit安装及使用教程(非常详细)从零基础入门到精通,看完这一篇就够了。

    通过本篇文章 我们将会学习以下内容 1 在Windows上安装Metasploit 2 在Linux和MacOS上安装Metasploit 3 在Kali Linux中使用 Metasploit 4 升级Kali Linux 5 使用虚拟化
  • 通过一个寒假能学会黑客技术吗?看完你就知道了

    一个寒假能成为黑客吗 资深白帽子来告诉你 如果你想的是学完去美国五角大楼内网随意溜达几圈 想顺走一点机密文件的话 劝你还是趁早放弃 但是成为一名初级黑客还是绰绰有余的 你只需要掌握好渗透测试 Web安全 数据库 搞懂web安全防护 SQL注
  • 如何使用内网穿透实现iStoreOS软路由公网远程访问局域网电脑桌面

    文章目录 简介 一 配置远程桌面公网地址 二 家中使用永久固定地址 访问公司电脑 具体操作方法是 简介 软路由 是PC的硬件加上路由系统来实现路由器
  • 改善python程序的91建议记录

    使用else子句简化循环 异常处理 案例1 执行sql异常时处理 def save db obj try save attr1 db execute a sql stmt obj attr1 save attr2 db execute an
  • Linux 系统日志及其归档

    主要记录Linux 系统需要关注的日志文件 以及日志归档服务 rsyslogd 系统日志服务 rsyslogd 日志服务 rsyslogd reliable and extended syslogd 可靠 可扩展的系统日志服务 Rsyslo
  • 内网穿透的应用-使用Net2FTP轻松部署本地Web网站并公网访问管理内网资源

    文章目录 1 前言 2 Net2FTP网站搭建 2 1 Net2FTP下载和安装 2 2 Net2FTP网页测试 3 cpolar内网穿透 3 1 Cpolar云端设置 3 2 Cpolar本地设置
  • 自定义编写zabbix_agent脚本

    vi usr lib systemd system zabbix agent servicce Unit Description Zabbix Agent After syslog target After network target S
  • centos系统有什么好处?

    CentOS是一种基于开源代码的Linux操作系统 它有以下几个优势 1 稳定性 CentOS是一种非常稳定的操作系统 它的代码经过了严格的测试和审查 因此它非常适合作为服务器操作系统使 用 2 安全性 由于CentOS是基于开源代码的操作
  • Web 安全漏洞之 OS 命令注入

    什么是 OS 命令注入 上周我们分享了一篇 Web 安全漏洞之 SQL 注入 其原理简单来说就是因为 SQL 是一种结构化字符串语言 攻击者利用可以随意构造语句的漏洞构造了开发者意料之外的语句 而今天要讲的 OS 命令注入其实原理和 SQL
  • 5个步骤,教你瞬间明白线程和线程安全

    记得今年3月份刚来杭州面试的时候 有一家公司的技术总监问了我这样一个问题 你来说说有哪些线程安全的类 我心里一想 这我早都背好了 稀里哗啦说了一大堆 他又接着问 那你再来说说什么是线程安全 然后我就GG了 说真的 我们整天说线程安全 但是对
  • 38条Web测试经验分享

    1 页面链接检查 每一个链接是否都有对应的页面 并且页面之间切换正确 可以使用一些工具 如LinkBotPro File AIDCS HTML Link Validater Xenu等工具 LinkBotPro不支持中文 中文字符显示为乱码
  • 前端必备的 web 安全知识手记

    前言 安全这种东西就是不发生则已 一发生则惊人 作为前端 平时对这方面的知识没啥研究 最近了解了下 特此沉淀 文章内容包括以下几个典型的 web 安全知识点 XSS CSRF 点击劫持 SQL 注入和上传问题等 下文以小王代指攻击者 话不多
  • 基于java的物业管理系统设计与实现

    基于java的物业管理系统设计与实现 I 引言 A 研究背景和动机 物业管理系统是指对物业进行管理和服务的系统 该系统需要具备对物业信息 人员信息 财务信息等进行管理的能力 基于Java的物业管理系统设计与实现的研究背景和动机主要体现在以下
  • 网络安全(黑客)自学启蒙

    一 什么是网络安全 网络安全是一种综合性的概念 涵盖了保护计算机系统 网络基础设施和数据免受未经授权的访问 攻击 损害或盗窃的一系列措施和技术 经常听到的 红队 渗透测试 等就是研究攻击技术 而 蓝队 安全运营 安全运维 则研究防御技术 作
  • 一台java服务器可以跑多少个线程?

    一台java服务器可以跑多少个线程 一台java服务器能跑多少个线程 这个问题来自一次线上报警如下图 超过了我们的配置阈值 打出jstack文件 通过IBM Thread and Monitor Dump Analyzer for Java
  • 国外拨号VPS指南:开启你的全球网络之旅

    在当今数字化时代 互联网已经成为了我们生活的一部分 而要在全球范围内畅通无阻地访问互联网 拥有一个可靠的国外拨号VPS是非常重要的 无论您是为了工作 学习还是娱乐 国外拨号VPS都可以为您提供更广泛的网络体验 本文将为您提供国外拨号VPS的
  • Mysql中设置只允许指定ip能连接访问(可视化工具的方式)

    场景 Mysql中怎样设置指定ip远程访问连接 Mysql中怎样设置指定ip远程访问连接 navicat for mysql 设置只有某个ip可以远程链接 CSDN博客 前面设置root账户指定ip能连接访问是通过命令行的方式 如果通过可视
  • 搞懂 三次握手四次挥手

    计算机网络体系结构 在学习TCP 三次握手四次挥手之前 让我们先来看下计算机网络分层 主要分为OSI模型和TCP IP模型 OSI模型比较复杂且学术化 所以我们实际使用的TCP IP模型 以连接Mysql服务器为例理解这五层 应用层 应用层
  • 静态综合实验

    1 IP地址划分 192 168 1 0 27 用于主干拆分 192 168 1 32 27 用于用户拆分 192 168 1 64 27 用于用户拆分 192 168 1 96 27 用于用户拆分 192 168 1 128 27 用于用
  • 【无标题】

    大家都知道该赛项的规程和样题向来都是模棱两可 从来不说具体的内容 导致选手在备赛时没有头绪 不知道该怎么训练 到了赛时发现题目和备赛的时候完全不一样 那么本文将以往年信息安全管理与评估赛项经验来解读今年2023年国赛的规程 帮助选手们指明方

随机推荐

  • spring boot毕业生跟踪调查管理系统 毕业设计源码论文+答辩PPT

    答辩PPT 论文 springboot毕业生跟踪调查管理系统 摘 要 信息化社会内需要与之针对性的信息获取途径 但是途径的扩展基本上为人们所努力的方向 由于站在的角度存在偏差 人们经常能够获得不同类型信息 这也是技术最为难以攻克的课题 针对
  • CF 1843F2 - Omsk Metro (hard version)

    CF 1843F2 Omsk Metro hard version 题目描述 给定 n n n 个节点的有根树 根节点为 1 1 1 每个节点上有权值 0
  • asp.net中,<%#%>,<%=%>和<%%>分别是什么意思,有什么区别

    在asp net中经常出现包含这种形式的html代码 总的来说包含下面这样几种格式 一 这种格式实际上就是和asp的用法一样的 只是asp中里面是vbscript或者javascript代码 而在asp net中是 net平台下支持的语言
  • 使用ScriptableObject代替部分配置表的坑点

    1 使用ScriptableObject代替部分配置表的坑点 2 加载配置内存过大问题 3 URP的UI在Android模型器下比在真机上暗 4 Unity在Windows上第一次运行Play启动很慢 5 如何正确卸载UnityWebReq
  • 【华为OD统一考试B卷

    在线OJ 已购买本专栏用户 请私信博主开通账号 在线刷题 运行出现 Runtime Error 0Aborted 请忽略 华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一
  • 【2023】数据库sql增删改查执行命令汇总(配合详细举例)

    一 单表查询 数据查询语言 专门用于查找表中的数据 select from emp 关键字 select from 表名 查询表中的所有数据 source 导入文件的文件地址 文件名称 导入dump数据 结尾不能加 号 mysql的数据备份
  • 【git】全局配置和单个仓库的用户名邮箱配置

    Git全局配置和单个仓库的用户名邮箱配置 学习git的时候 大家刚开始使用之前都配置了一个全局的用户名和邮箱 git config global user name github s Name git config global user
  • 领导力大挑战

    author skate time 2012 10 13 在实施Scrum的项目中 Scrum Master对于团队而言是相当关键的 担当着推动整个团队完成产品所有者既定目标的角色 Scrum Master的主要工作是替团队扫清前进的障碍
  • 树莓派交叉编译如何处理软连接

    软链接有点类似windows的快捷方式 添加软连接 ln s libfilename so 2 5 libfilenameso ln是指令 s是参数 so 2 5是要被链接的文件 so是软连接名字 生成硬链接 去掉 s
  • STM32编译错误

    output test axf Error L6218E Undefined symbol SystemInit referred from startup stm32f10x hd o Not enough information to
  • 现代计算机从0到1:冯·诺依曼计算机

    最近打算开始写博客 在想一开始该写什么好呢 突然灵光一现 关于计算机当然就是现代计算机之父 我们今天就来聊一下现代计算机之父 约翰 冯 诺依曼 John Von Nouma 1903 1957 美藉匈牙利人 1903年12月28日生于匈牙利
  • Linux驱动开发 通过字符设备驱动分步注册方式编写LED驱动

    通过字符设备驱动分步注册方式编写LED驱动 完成设备文件和设备的绑定 head h ifndef HEAD H define HEAD H typedef struct unsigned int MODER unsigned int OTY
  • STM32实战总结:HAL之IAP

    我们学习单片机一般都是从51开始的 51单片机烧录程序通常是使用烧录软件如STC ISP 这种方式 通过串口连接单片机 选择一个合适的波特率就可以烧录了 后来学习STM32 编程时使用KEIL软件自带的下载按钮就能下载程序 方便了不少 但需
  • ssh 连接到docker内,环境变量发生变化的解决方法(改)

    参考 https blog csdn net m0 59029800 article details 125479518 上述方法的问题 环境变量中存在空格时出错 解决方法 更改字段分隔符 使之仅仅遇到换行时分割 OLD IFS IFS n
  • 19、ddt数据驱动测试

    背景 设计测试用例是 有些测试用例只是参数数据输入不一样而已 比如登录时 需要经常切换账号 而操作基本是一样的 如果用例重复去写操作过程会导致很多冗余的代码 1 安装ddt pip install ddt 2 原理 测试数据为多个字典的li
  • UVA 1601 The Morning after Halloween

    https vjudge net problem UVA 1601 题目 你在游乐场的鬼屋里当操作员 专门控制鬼屋里的机器人 某日没事干的出题人把这些机器人搬到了其他地方 你需要在最短的时间内遥控机器人让他们回到原位 所有机器人都可以同时在
  • 超级无敌简单题(鸽子数)

    欢迎访问https blog csdn net lxt Lucia 宇宙第一小仙女 o 萌量爆表求带飞 o dalao们点个关注呗 我只是一条可爱哒分界线 一 问题 Description 通常来说 题面短的题目一般都比较难 所以我要把题面
  • 【线性回归——从简单构建到实现数据预测】

    深度学习与神经网络day03 线性回归 一 简单的线性回归 1 1 数据集的构建 1 2 模型构建 1 3 损失函数 1 4 模型优化 1 5 模型训练 1 6 模型评估 1 7 样本数量和正则化系数的影响 二 多项式回归 1 1 数据集的
  • Qt(day1)

    思维导图 Qt实现第一个web的基础页面 include mywnd h include ui mywnd h include
  • IP协议-NAT机制(理解网络结构的关键要点)

    前言 我们现在使用得最多的IP协议版本是IPv4 IPv4是4个字节 32位 也就是说我们的IP地址最多就只有2 32 42亿 个 在日常生活中 我们需要联网的设备都需要有IP地址才能进行通讯 很明显现在42亿个IP地址已经完全不足以满足我