【网络安全】ip地址、公网、私网

news2025/1/18 8:53:08

一、IP地址

ip地址相当于收发快递时的收货地址和发货地址

IPV4的地址:192.168.0.1

11000000.10101000.00000000.00000001

windows使用>ipconfig;linux使用ifconfig

可以看到IPV4地址/inet旁边的就是IP地址

  1. IP地址的分类

IP地址有32位,分为A B D E四类

A类:0 + 7位网络号 + 24位主机号

B类:10 + 14位网络号 +16位主机号

C类:110 +21位网络号 +8位主机号

D类:1110 +28位组播地址

E类:1111 +28位以后用

网络号:相当于停车场

主机号:相当于停车位

1个停车场可以有多个停车位;A类相当于大型停车场少,但是大型停车场内停车位多;

C类相当于小型停车场多,但是小型停车场内停车位少

【以上的分类机制已经被取代,因为不同类别的网络号和主机号数量悬殊】

【取而代之,不再使用分类ABCD法,使用以下分类机制:CIDR无类别域间路由】

只保留网络号和主机号,用“/”告诉用户多少位是网络号,其余是主机号

172.20.61.69/20  网络号:20位;主机号:12位

能够放2*12次方=4096台机子

二、让IP够用

就算把所有IP分出去:2*32次方=4294967296 42亿也不够用,这是基于每人都处在一层的情况下

【取而代之,将网络分为两层,如下图】

2个人组成小网络(5 6)公用一个IP,但是5 6内部的IP 不一样 ,5 6 构成的网络叫做:局域网(内网)5 6的IP叫做:私有IP(内网IP) 

1 2构成的网络叫做:广域网,1 2的IP叫做:公有IP(公网IP) 

在ABC类IP中,也有私有和公有两部分

A类局域网部分IP:10.0.0.0~10.255.255.255

B类局域网地址IP:172.16.0.0~172.31.255.255

C类局域网地址IP:192.168.0.0~192.168.255.255

上面只考虑了一层局域网,其实局域网内还能再分成多层,局域网内再嵌套局域网。就像下面这样,这样能用的IP数量就更多了。

三、我自己的IP地址怎么看

ipconfig里面的IPV4地址==内网IP

百度搜索:我的IP地址 == 公网IP

四、局域网内的私有IP如何访问局域网外的公有IP?

需要进行IP转换:NAT:全称Network Address Translation,网络地址转换。基本上家用路由器都支持这功能。

发送/接收的数据包相当于 收发快递的快递包 

数据包的内容:

 发送数据包的过程:

IP转换过程:

1、A发送C:在a准备发送数据包时:我的电脑会构造IP数据包,发送端IP地址是192.168.30.5,接收端IP地址是192.168.30.5;电脑把数据包发到NAT路由器,路由器把源IP地址192.168.30.5改成:20.20.20.20,这个过程叫做SNATSource Network Address Translation,源地址转换)

并且会在NAT路由器里,留下192.168.30.5-》20.20.20.20的映射记录,下次就会直接在记录里读取了。最后就去找接收端IP了

2、C响应A:接收端填:20.20.20.20,发送端填:30.30.30.30,在经过NAT时,会找到之前192.168.30.5-》20.20.20.20的映射记录,然后把目的IP地址修改为内网IP192.168.30.5,,这个过程叫做DNATDestination Network Address Translation,目的地址转换)。 

【但是一个公网IP下,有多个私网IP,响应时怎么找映射哪个?】

这个时候用到的是NAPT NAPT(Network Address Port Transfer , 网络地址端口转换 )。

加入其他信息区分内网里的各个网络连接,就是端口

IP数据包属于【网络层】,端口存在于【传输层】的TCP和UDP数据报文里

那么最后数据包的组成是:IP header + TCP header / UDP header + 数据

【为什么PING没有带端口信息,也能够接收响应?】

ICMP协议,NAT路由器做了特殊处理。ping报文头里有个Identifier的信息,它其实指的是放出ping命令的进程id。对NAT路由器来说,这个Identifier的作用就跟端口一样。

当我们去抓包的时候,就会发现有两个Identifier,一个后面带个BE(Big Endian),另一个带个LE(Little Endian)

其实他们都是同一个数值,只不过大小端不同,读出来的值不一样。就好像同样的数字345,反着读就成了543。这是为了兼容不同操作系统(比如linux和Windows)下大小端不同的情况。

五、内网穿透

家里启动了一个http服务,地址是192.168.30.5:5000,公司里的手机想访问,却访问不了

外网机器如何访问内网服务?

因为NAT的存在,我们只能从内网主动发出连接,NAT没有记录映射关系的话,也转发不了数据。

为了解决这个问题,可以在公网加一台服务器X,暴露一个访问域名,让内网服务主动连接服务器X,NAT也会有一个内网到服务器X的映射关系,然后所有人去访问服务器X,就可以了。

六、两个局域网设备如何建立连接?

(1)小明的QQ和小红的QQ客户端如何建立连接?

两个QQ客户端之间隔了一个聊天服务器,QQ登录时,主动向公网的聊天服务器建立连接,两边的NAT都有公网聊天服务器和私网的映射关系,

(2)P2P下载,没有第三方服务器,怎么进行通讯

P2P下载=种子迅雷下载

下图为NAT打洞,我们现在常见的都是锥形NAT

 

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

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

相关文章

React事件和原生事件的执行顺序

React在内部对事件做了统一的处理,合成事件是一个比较大的概念 为什么要有合成事件 在传统的事件里,不同的浏览器需要兼容不同的写法,在合成事件中React提供统一的事件对象,抹平了浏览器的兼容性差异React通过顶层监听的形式&am…

ROS学习寄录之环境搭建

1 创建ROS工作空间 1.1 创建工作空间 (1)创建工作空间 mkdir catkin_ws (2)进入catkin_ws文件夹,然后创建一个src文件夹 cd catkin_ws mkdir src (3)进入src文件夹,生成CMakeL…

JavaScript typeof

文章目录JavaScript typeof, null, 和 undefinedtypeof 操作符NullUndefinedUndefined 和 Null 的区别JavaScript typeof, null, 和 undefined JavaScript typeof, null, undefined, valueOf()。 typeof 操作符 你可以使用 typeof 操作符来检测变量的数据类型。 实例 typeof …

2.2 标识符与关键字

文章目录1 标识符2 关键字1 标识符 标识符可以简单的理解成一个名字。 在Java中,我们需要给代码中的很多元素起名,包括类名、方法名、字段名、变量名等等。我们给对应元素起的名称就被称为标识符,一个正确的标识符需要遵循以下规则&#xff…

【蓝桥杯】简单数论4——丢番图方程

1、二元线性丢番图方程 方程ax by c被称为二元线性丢番图方程,其中a、b、c是已知整数,x、y是变量,问是否有整数解。 ax by c实际上是二维x-y平面上的一条直线,这条直线上如果有整数坐标点,方程就有解,如果没有整数坐…

【算法竞赛 5】动态规划 ——— 闫氏DP分析法(从集合角度来分析DP问题——01背包)

目录 Description 输入格式 输出格式 数据范围 输入样例 输出样例: 题解 状态表示 状态计算 AC_Code 优化后代码 Description 有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。 第 i 件物品的体积是 vi,价值是 wi。 求解将哪些物品…

2.4.1 整数型

文章目录1.整型基本数据类型介绍2.byte 数据类型3.short 数据类型4.int 数据类型5.long 数据类型1.整型基本数据类型介绍 整型用于表示没有小数部分的数字,比如1,2,3等,其允许是负数,JAVA共提供了4种整型数据类型&…

电阻抗成像OpenEIT 番外篇 简单算法

算法意义 C→Y→V→eC\rightarrow Y \rightarrow V \rightarrow eC→Y→V→e 符号 符号含义–Ω\OmegaΩ研究图像区域∂Ω\partial\Omega∂Ω研究图像区域的边界ϕ(x,y)\phi(x,y)ϕ(x,y)代求电导率σ(x,y)\sigma(x,y)σ(x,y)节点电压 e 电导率jn(x,y)j_n(x,y)jn​(x,y)注入表…

C++ 多线程12:内存模型(stdmemory_order)

cpp 多线程:内存模型(std::memory_order) 文章目录cpp 多线程:内存模型(std::memory_order)概念内存模型基础原子操作间的关系Synchronized-withHappens-beforestd::memory_orderRelaxed orderingRelease-Consume orderingRelease-Acquire orderingSeque…

UnityEditor编辑器扩展开发-自定义Shader入门

估计需要自定义Shader 的人不多下面内容就看看作为小白的我们,无从入手,当然首先看看 Amplify Shader Editor(ASE)是如何实现Shader定义,从(ASE)的Shader代码,得知自定义原理(代码)//CustomEdit…

前端艺术之毛玻璃-倾斜-日历

前端艺术之毛玻璃-倾斜-日历描述项目效果index.htmlindex.css描述 项目描述开发语言HTML、JavaScript、CSS库dyCalendarJS、vanilla-tiltEdge108.0.1462.54 (正式版本) (64 位) 该项目中需要使用到的库有: dyCalendarJS vanilla-tilt.js 是 JavaScript 中的一个平…

C++ | 哈希 | 基于开散列结构的unordered系列容器模拟实现

文章目录unordered_map的封装所有接口的声明与实现operator[]重载unordered_set的封装上篇博客模拟实现了哈希的开散列结构,并且将迭代器与泛型进行了封装,至此我们可以将开散列作为底层结构对STL标准容器——unordered_map和unordered_set进行封装。但是…

使用Vue 简化 用户查询/添加功能

使用Vue简化 用户查询/添加功能1. 查询功能1.1 Vue核心对象:1.2 brand.html:1.3 selectAllServlet(无变化):2. 添加功能2.1 addBrandhtml:2.2 Vue核心对象:2.3 addServlet(无变化&am…

网关zuul源码解析==ZuulServlet

用法&#xff1a; 使用zuul网关&#xff0c;需要引入starter为 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-zuul</artifactId> </dependency> 同时在springboot启动类上加注解…

7、代码模板的使用

文章目录7、代码模板的使用7.1 查看Postfix Completion模板&#xff08;后缀补全&#xff09;7.2 查看Live Templates模板&#xff08;实时模板&#xff09;7.3 常用代码模板1 非空判断2 遍历数组和集合3 输出语句4 对象操作5 静态常量声明7.4 自定义代码模板1 自定义Postfix C…

Android入门第60天-MVVM中的Databinding与ListView结合使用

开篇 还记得我们进入Listview、GridView都是以一个layoutadapter组合在一起来实现的是吧&#xff1f;那么还记得我们的Adapter的写法么&#xff1f; 在我们的Adapter里提供了一个bindView方法 。 在调用时我们需要在Activity里把layout里的控件元素一个个传给这个Adapter。 在我…

【Linux】文件权限

本期我们来谈谈Linux上的权限&#xff1a;一、权限的概念在生活中我们处处都会遇到权限。权限是什么呢&#xff1f;下面是对于权限的定义&#xff1a;&#x1f4cc;权限&#xff1a;一件事是否允许被“谁”做&#x1f4cc;简化一下就是&#xff1a;权限人事物属性&#x1f4cb;…

【ROS-Navigation】—— Astar路径规划算法解析

文章目录前言1. 导航的相关启动和配置文件1.1 demo01_gazebo.launch1.2 nav06_path.launch1.3 nav04_amcl.launch1.4 nav05_path.launch1.5 move_base_params.yaml1.6 global_planner_params.yaml2. Astar路径规划算法解析2.1 astar.h2.2 astar.cpp参考文献前言 最近在学习ROS的…

《职场求生攻略》学习笔记 Day8

系列文章目录 这是本周期内系列打卡文章的所有文章的目录 《Go 并发数据结构和算法实践》学习笔记 Day 1《Go 并发数据结构和算法实践》学习笔记 Day 2《说透芯片》学习笔记 Day 3《深入浅出计算机组成原理》学习笔记 Day 4《编程高手必学的内存知识》学习笔记 Day 5NUMA内存知…

JavaEE-多线程进阶

✏️作者&#xff1a;银河罐头 &#x1f4cb;系列专栏&#xff1a;JavaEE &#x1f332;“种一棵树最好的时间是十年前&#xff0c;其次是现在” 目录常见的锁策略乐观锁 vs 悲观锁轻量级锁 vs 重量级锁自旋锁 vs 挂起等待锁互斥锁 vs 读写锁公平锁 vs 非公平锁可重入锁 vs 不可…