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记录软件开发求学之路上亲身所得与所学的心得与知识,有兴趣的小伙伴可以关注一下!也许一个人独行,可以走的很快,但是一群人结伴而行,才能走的更远!让我们在成长的道路上互相学习&#…...
7.4.分块查找
一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...
C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...
springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...
React hook之useRef
React useRef 详解 useRef 是 React 提供的一个 Hook,用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途,下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...
Spring Boot 实现流式响应(兼容 2.7.x)
在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...
中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试
作者:Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位:中南大学地球科学与信息物理学院论文标题:BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接:https://arxiv.…...
基于Flask实现的医疗保险欺诈识别监测模型
基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
Webpack性能优化:构建速度与体积优化策略
一、构建速度优化 1、升级Webpack和Node.js 优化效果:Webpack 4比Webpack 3构建时间降低60%-98%。原因: V8引擎优化(for of替代forEach、Map/Set替代Object)。默认使用更快的md4哈希算法。AST直接从Loa…...
掌握 HTTP 请求:理解 cURL GET 语法
cURL 是一个强大的命令行工具,用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中,cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...
