NIO蔚来 面试——IP地址你了解多少?
目录
前言
1、IP地址
1.1、什么是IP地址
1.2、IP地址的格式
1.2.1、32位二进制数表示IP地址,够用吗?
1.3、IP地址的组成
1.4、为什么会出现IPv6
1.4.1、为什么IPv6还没有大量普及呢?
1.5、子网掩码
1.6、特殊的IP地址
2、路由选择
2.1、工作流程
前言
面试官:给你出一道算法题,一个字符串,请判断是否符合IPv4的一个格式?
Ps:你以为真的是考你算法题吗?当然不是,是考你对IPv4格式的一个理解!
1、IP地址
Ps:本章,凡是提到IP协议,没有特殊说明,默认是指IPv4。
1.1、什么是IP地址
IP地址是互联网协议地址,IP协议提供的一种统一的地址格式,为互联网上每一个网络和每一台主机分配一个逻辑地址,来屏蔽物理地址的差异。
1.2、IP地址的格式
IP地址是一个32位的二进制数字(可以表示42亿9千万个),通常使用"."号分割成4个“8位二进制数”(4个字节),例如:01100100.00000100.00000101.00000110;
一般使用“点分十进制”的方式来表示,即a.b.c.d的形式(a、b、c、d都是0~255之间的十进制整数),例如127.0.0.1。
1.2.1、32位二进制数表示IP地址,够用吗?
在当今网络如此发达的时代当然是不够用的,但是也有相应的解决办法,如下两种办法:
- 动态分配IP地址:使用动态分配协议(DHCP)动态分配内存地址。
- NAT:将IP分成了 外网IP 和 内网IP ,只要求 外网IP 不能重复,内网IP 在不同的局域网中是允许重复的(可以用一个外网IP代表一大波内网设备)。
内网IP 和 外网IP 是什么样的?(除了以下格式的内网IP,其他的格式都是外网IP)

Ps:当前网络的现状——动态分配 + NAT。
1.3、IP地址的组成
IP地址分为两个部分,如下:
- 网络号:用来标识网段(局域网的身份标识),两个相连的局域网有不同的身份标识。
- 主机号:用来标识主机,同一个局域网中,主机之间的网络号是相同的,主机号一定不同。
1.4、为什么会出现IPv6
IPv4的地址不够用啊~
对比以下数据:
- IPv4:4个字节,32位来表示IP地址。
- IPv6:16个字节,128位表示IP地址。
扩大的数量大概是IPv4的42亿 * 42亿 * 42亿 * 42亿......所以可以说IPv6彻底解决了IPv4地址不够用的问题。
1.4.1、为什么IPv6还没有大量普及呢?
IPv6以及提出很多年了,当前网络现状仍然是NAT + 动态分配,为什么 IPv6 没有大量普及呢?因为 IPv6 和 IPv4 不兼容!
比如现在有一个IPv4的路由器,但是这个路由器已经用来很多年了,想要升级换设备就要花钱!不过相对来说,国内IPv6普及的还是挺好的,70%的宽带已经支持了(但基本都是未开启状态,没开启就意味着还是IPv4的方式来访问)。
1.5、子网掩码
子网掩码 划分出了从哪里到那里是一个 网络号。我们知道IP地址是32位的,特别的,子网掩码格式的IP地址的32位中 左半边是1, 右半边是0(不会01混合),左半边有多少个1就表示IP地址左侧的多少位是网络号。(把子网掩码和IP地址进行按位与运算,得到的结果就是网络号)
1.6、特殊的IP地址
如果一个 IP 地址,主机号为0,此时这个 IP 就表示网络号。192.168.0.0 ,代表当前局域网。
如果一个 IP 地址,主机号为1,此时这个 IP 就表示这个局域网的 “网关”。192.168.0.1,表示局域网的网关(网关的角色一般就是路由器,把守着当前局域网和其他局域网之间的出入口),通常是路由器的 IP。
如果一个 IP 地址,主机号全为 1(八个二进制位全为1),此时这个 IP 表示广播 IP。
127.*开头,都是 “回环IP”,典型的就是127.0.0.1;
2、路由选择
路由选择是“启发式”的过程类似于“问路”(就像地图导航一样,能够在两点之间规划一个路线)。
2.1、工作流程
a)网络数据包到达路由器的时候,路由器自身就有一个“路由表”数据结构(路由表就是这个路由器认识的路);
一个路由器无法认识到网络的全貌,但是可以认识附近的一部分。
b)如果过当前的目的 IP 路由器认识,就会给出一个明确的路线;
如果当前的目的 IP 路由器不认识,路由器就会把数据包转发给一个“更见多识广”的路由器。
c)也有可能问了一大圈最后没有找到目的地,例如 IP 地址不存在(或者不可达)。

相关文章:
NIO蔚来 面试——IP地址你了解多少?
目录 前言 1、IP地址 1.1、什么是IP地址 1.2、IP地址的格式 1.2.1、32位二进制数表示IP地址,够用吗? 1.3、IP地址的组成 1.4、为什么会出现IPv6 1.4.1、为什么IPv6还没有大量普及呢? 1.5、子网掩码 1.6、特殊的IP地址 2、路由选择 …...
Gluten 首次开源技术沙龙成功举办,更多新能力值得期待
2023年2月17日,由 Kyligence 主办的 Gluten 首次开源技术沙龙在上海成功举办,本期沙龙特邀来自 Intel、BIGO、eBay、阿里、华为和 Kyligence 等行业技术专家齐聚一堂,共同探讨了向量化执行引擎框架 Gluten 现阶段社区的重点开发成果和未来的发…...
springboot+redis+lua实现限流
Redis 除了做缓存,还能干很多很多事情:分布式锁、限流、处理请求接口幂等性。。。太多太多了~今天想和小伙伴们聊聊用 Redis 处理接口限流。1. 准备工作首先我们创建一个 Spring Boot 工程,引入 Web 和 Redis 依赖,同时…...
线段树总结
文章目录参考文档题目线段树实现单点修改,区间求值模板题目308. 二维区域和检索 - 可变区间修改,区间求值1. 掉落的方块(区间开点)2. 维护序列3. 一个简单的问题24. 天际线问题动态开点1. 区间和个数(单点修改开点)问题以及注意事…...
龙芯GS232(MIPS 32)架构cache管理笔记
1 mips32架构 MIPS架构是一种基于精简指令集(Reduced Instruction Set Computer,RISC)的计算机处理器架构。MIPS架构由MIPS Technologies公司在1981年开发,并在1984年发布了第一款MIPS处理器。 MIPS架构的特点包括: …...
js去重
<script>let arr [{ id: 0, name: "张三" },{ id: 1, name: "李四" },{ id: 2, name: "王五" },{ id: 3, name: "赵六" },{ id: 1, name: "孙七" },{ id: 2, name: "周八" },{ id: 2, name: "吴九&qu…...
小白都能看懂的C语言入门教程
文章目录C语言入门教程1. 第一个C语言程序HelloWorld2. C语言的数据类型3. 常量变量的使用4. 自定义标识符#define5. 枚举的使用6. 字符串和转义字符7. 判断和循环8. 函数9. 数组的使用10. 操作符的使用11. 结构体12. 指针的简单使用C语言入门教程 1. 第一个C语言程序HelloWor…...
leetcode 21~30 学习经历
leetcode 21~30 学习经历21. 合并两个有序链表22. 括号生成23. 合并K个升序链表24. 两两交换链表中的节点25. K 个一组翻转链表26. 删除有序数组中的重复项27. 移除元素28. 找出字符串中第一个匹配项的下标29. 两数相除30. 串联所有单词的子串小结21. 合并两个有序链表 将两个升…...
让ArcMap变得更加强大,用python执行地理处理以及编写自定义脚本工具箱
文章目录一、用python执行地理处理工具1.1 例:乘以0.00011.2 例:裁剪栅格1.3 哪里查看调用某工具的代码?二、用python批量执行地理处理工具2.1 必需的python语法知识for循环语句缩进的使用注释的使用2.2 一个批处理栅格的代码模板三、创建自定…...
SAP 项目实施阶段全过程
在sap实施项目的周期和步骤上,根据各公司对业务的理解不同,也被划分为各个阶段,但其中由普华永道提出的分七步走,个人觉得对刚进入这一行业的人很有帮助,接下来一起分享和讨论下: sap实施项目生命周期&…...
idea中的Maven导包失败问题解决总结
idea中的Maven导包失败问题解决总结 先确定idea和Maven 的配置文件settings 没有问题 找到我们本地的maven仓库,默认的maven仓库路径是在\C:\Users\用户名.m2下 有两个文件夹,repositotry是放具体jar包的,根据报错包的名,找对应文…...
REDIS中的缓存穿透,缓存击穿,缓存雪崩原因以及解决方案
需求引入一般在项目的开发中,都是使用关系型数据库来进行数据的存储,通常不会存在什么高并发的情况,可是一旦涉及大数据量的需求,比如商品抢购,网页活动导致的主页访问量瞬间增大,单一使用关系型数据库来保存数据的系统…...
数据库及缓存之MySQL(一)
思维导图 常见知识点 1.mysql存储引擎: 2.innodb与myisam区别: 3.表设计字段选择: 4.mysql的varchar(M)最多存储数据: 5.事务基本特性: 6.事务并发引发问题: 7.mysql索引: 8.三星索引…...
项目管理中,项目经理需要具备哪些能力?
项目经理是团队的领导者,是带领项目团队对项目进行策划、执行,完成项目目标,对于项目经理来说,想要有序推进项目,使项目更成功,光有理论知识是不够的,也要具备这些能力: 1、分清主…...
itk中的一些图像处理
文章目录1.BinomialBlurImageFilter计算每个维度上的最近邻居平均值2.高斯平滑3.图像的高阶导数 RecursiveGaussianImageFilter4.均值滤波5.中值滤波6.离散高斯平滑7.曲率驱动流去噪图像 CurvatureFlowImageFilter8.由参数alpha和beta控制的幂律自适应直方图均衡化9.Canny 边缘…...
Endless lseek导致的SQL异常
最近碰到同事咨询的一个问题,在执行一个函数时,发现会一直卡在那里。 strace抓了下发现会话一直在执行lseek,大致情况如下: 16:13:55.451832 lseek(33, 0, SEEK_END) 1368064 <0.000037> 16:13:55.477216 lseek(33, 0, SE…...
JUC-day01
JUC-day01 什么是JUC线程的状态: wait sleep关键字:同步锁 原理(重点)Lock接口: ReentrantLock(可重入锁)—>AQS CAS线程之间的通讯 1 什么是JUC 1.1 JUC简介 在Java中,线程部分是一个重点,本篇文章说的JUC也是关于线程的。JUC就是java.util .con…...
Mind+Python+Mediapipe项目——AI健身之跳绳
原文:MindPythonMediapipe项目——AI健身之跳绳 - DF创客社区 - 分享创造的喜悦 【项目背景】跳绳是一个很好的健身项目,为了获知所跳个数,有的跳绳上会有计数器。但这也只能跳完这后看到,能不能在跳的过程中就能看到,…...
数据库概述
20世纪60年代后期,就出现了数据库技术。取得成就如下:造就了四位图灵奖得主发展成为以数据建模和DBMS核心技术为主,内容丰富的一门学科。带动了一个巨大的软件产业-DBMS产品及其相关工具和解决方案。四个基本概念数据数据是数据库中存储的基本…...
【已解决】解决IDEA的maven刷新依赖时出现Connot reconnect错误
前言 小编我将用CSDN记录软件开发求学之路上亲身所得与所学的心得与知识,有兴趣的小伙伴可以关注一下!也许一个人独行,可以走的很快,但是一群人结伴而行,才能走的更远!让我们在成长的道路上互相学习&#…...
微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...
云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地
借阿里云中企出海大会的东风,以**「云启出海,智联未来|打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办,现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...
【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密
在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...
五年级数学知识边界总结思考-下册
目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解:由来、作用与意义**一、知识点核心内容****二、知识点的由来:从生活实践到数学抽象****三、知识的作用:解决实际问题的工具****四、学习的意义:培养核心素养…...
React19源码系列之 事件插件系统
事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...
网络编程(UDP编程)
思维导图 UDP基础编程(单播) 1.流程图 服务器:短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...
selenium学习实战【Python爬虫】
selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...
Android第十三次面试总结(四大 组件基础)
Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成,用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机: onCreate() 调用时机:Activity 首次创建时调用。…...
用机器学习破解新能源领域的“弃风”难题
音乐发烧友深有体会,玩音乐的本质就是玩电网。火电声音偏暖,水电偏冷,风电偏空旷。至于太阳能发的电,则略显朦胧和单薄。 不知你是否有感觉,近两年家里的音响声音越来越冷,听起来越来越单薄? —…...
Java + Spring Boot + Mybatis 实现批量插入
在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法:使用 MyBatis 的 <foreach> 标签和批处理模式(ExecutorType.BATCH)。 方法一:使用 XML 的 <foreach> 标签ÿ…...
