计算机网络第4章-IPv6和寻址
IP地址的分配
为了获取一块IP地址用于一个组织的子网内,于是我们向ISP联系,ISP则会从已分给我们的更大
地址块中提供一些地址。
例如,ISP也许已经分配了地址块200.23.16.0/20。
该ISP可以依次将该地址块分成8个长度相等的连续地址块,随后分给我们一块。
如下图所示:

获取主机地址:动态主机配置协议
某组织一旦获得了一块地址,它就可以为本组之内的主机与路由器接口逐个分配IP地址。
路由器的IP地址通常由系统管理员配置。
但是主机地址我们自己可以手动配置,但是更多的是使用动态主机配置协议(DHCP)来完成。
DHCP允许主机自动获取一个IP地址。
网络管理员可以配置DHCP,以便使主机每次与网络连接时能得到一个相同的IP地址,或者某主机
将被分配一个临时的IP地址。
DHCP也被称为“即插即用协议”或“零配置”协议。
DHCP又是一个客户-服务器协议,客户通常是新到达的主机,它要活的包括自身使用的IP地址在内
的网路配置信息。
下图是一个DHCP接入的子网:

对于一台新到达的主机而言,DHCP协议工作要经过大概四步:
1.DHCP发现
一台新到达的主机的首要任务是发现一个要与其交互的DHCP服务器。这可以通过使用DHCP发现
报文来完成,客户在UDP分组中向端口67发送该发现报文。
怎么发送呢?很简单。
前面我们讲过广播目的地址,因此DHCP客户会在子网中使用255.255.255.255并且使用“本主机”源
IP地址0.0.0.0。
DHCP客户将该IP数据报传递给链路层,链路层然后将该帧广播到所有与该子网连接的节点。

2.DHCP服务器提供
DHCP服务器收到一个DHCP发现报文时,用DHCP提供报文向客户做出响应,该报文向该子网的
所有节点广播,仍然使用IP广播地址255.255.255.255。
3.DHCP请求
新到达的客户从一个或多个服务器中提供中选择一个,并向选中的服务器提供DHCP请求报文,回
显配置的参数。
4.DHCP ACK
服务器用DHCP ACK报文对DHCP请求报文进行响应,证实所要求的参数。
一旦客户收到DHCP ACK后,交互便完成了,并且该能够在租用期内使用DHCP分配的IP地址。
网络地址转换

我们可能会想,在家庭中很多机器使用路由器上的网络,这些机器的IP地址该如何分配呢?如果这
些机器都分配一个IP地址,那么全球的机器数量远远多于40亿,IP地址显然是不够分的,那该怎么
办呢?
很简单,在这里我们使用NAT来解释,并且来引入一个“专用网络”概念。
什么是NAT?
NAT使路由器对于外部世界来说甚至不像一台路由器。
相反NAT路由器对外界的行为就如同一个具有单一IP地址的单一设备。
所有离开家庭路由器流向更大的报文都拥有一个源IP地址138.76.29.7(上图的例子),且所有进入家
庭的报文都拥有同一个目的IP地址138.76.29.7。
从本质上讲,NAT使路由器对外界隐藏了家庭网络的细节。
而路由器怎么将分组转发给哪个内部主机呢?
技巧就是使用NAT路由器上的一张NAT转换表,并且在表项中包含了端口号及其IP地址。
NAT转换表具体操作
假设一个用户坐在家庭网络主机10. 0. 0. 1后,请求IP地址为 128.119. 40. 186的某台Web服务器
(端口 80)上的一个Web页面。
主机10. 0. 0. 1为其 指派了(任意)源端口号3345并将该数据报发送到LAN中。
NAT路由器收到该数据报, 为该数据报生成一个新的源端口号5001,将源IP替代为其广域网一侧接口
的IP地址 138. 76. 29.7,且将源端口 3345更换为新端口5001。
当生成一个新的源端口号时,NAT路由器可选择任意一个当前未在NAT转换表中的源端口号。(注
意到因为端口号字段为16 比特长,NAT协议可支持超过60 000个并行使用路由器广域网一侧单个
IP地址的连接!)
路由器中的NAT也在它的NAT转换表中增加一表项。Web服务器并不知道刚到达的包含 HTTP请求
的数据报已被NAT路由器进行了改装,它会发回一个响应报文,其目的地址是 NAT路由器的IP地
址,其目的端口是5001。
当该报文到达NAT路由器时,路由器使用目的IP地址与目的端口号从NAT转换表中检索出家庭网络
浏览器使用的适当IP地址 (10. 0. 0.1)和目的端口号(3345)。于是,路由器重写该数据报的目
的IP地址与目的端 口号,并向家庭网络转发该数据报。
IPv6
IPv6数据报的格式

扩大的地址容量
IPv6将IP地址长度从32比特增加到128比特,这就确保全世界将不会用尽IP地址。
IPv6还引入了一种称为任播地址的新型地址,这种地址可以使数据报交付给一组主机中的任意一
个。
简化高效的40字节首部
新的选项编码允许进行更灵活的选项处理。
流标签
IPv6有一个难以琢磨的"流"定义。
该字段用于“给属于特殊流的分组加上标签,这些特殊流是发送方要求进行特殊处理的流,如一种
非默认服务质量或需要实时服务的流。”
版本
该4比特字段用于标识IP版本号,IPv6将该字段值设为6,但是该字段不能被置为4,即使置为4也
无法创建一个合法的IPv4数据报。
流量类型
该8比特字段与我们在IPv4中看到的TOS字段含义相似。
有效载荷长度
该16比特值为一个无符号整数,给出了IPv6数据报中跟在定长的40字节数据报首部后面的字节数
量。
下一个首部
该字段标识数据报中的内容(数据字段)需要交给哪个协议?(TVP/UDP)
跳限制
转发数据报的每台路由器将对该字段的内容减1,若被减少到0,则被丢弃。
数据
这是IPv6数据报的有效载荷部分,当数据报到达目的地时,该有效载荷就从IP数据报中移出。
分片/重新组装
IPv6不允许在中间路由器上进行分片与重新组装。
相关文章:
计算机网络第4章-IPv6和寻址
IP地址的分配 为了获取一块IP地址用于一个组织的子网内,于是我们向ISP联系,ISP则会从已分给我们的更大 地址块中提供一些地址。 例如,ISP也许已经分配了地址块200.23.16.0/20。 该ISP可以依次将该地址块分成8个长度相等的连续地址块&…...
Lazarus安装和入门资料
azarus-2.2.6-fpc-3.2.2-win64 下载地址 Lazarus 基础教程 - Lazarus Tutorials for Beginners Lazarus Tutorial #1 - Learning programming_哔哩哔哩_bilibili https://www.devstructor.com/index.php?pagetutorials Lazarus是一款开源免费的object pascal语言RAD IDE&…...
mediapipe流水线分析 二
目标检测 Graph 一 流水线上游输入处理 1 TfLiteConverterCalculator 将输入的数据转换成tensorflow api 支持的Tensor TfLiteTensor 并初始化相关输入输出节点 ,该类的业务主要通过 interpreter std::unique_ptrtflite::Interpreter interpreter_ nullptr; 实现…...
1.性能优化
概述 今日目标: 性能优化的终极目标是什么压力测试压力测试的指标 性能优化的终极目标是什么 用户体验 产品设计(非技术) 系统性能(快,3秒不能更久了) 后端:RT,TPS,并发数 影响因素01:数据库读写,RPCÿ…...
使用Plsql+oracle client 连接 Oracle数据库
2011年入职老东家X煤集团的时候,在csnd上写了一篇blog,题目叫“什么是ERP”,从此跳入DBA了这个烂坑,目前公司的数据库一部分是Oracle,另一部分是MySQL的,少量MSSQL,还需要捡起来一部分ÿ…...
centos获取服务器公网ip
查看公网IP 用下面几个命令: #curl ifconfig.me #curl icanhazip.com #curl cip.cc...
思谋科技进博首秀:工业多模态大模型IndustryGPT V1.0正式发布
大模型技术正在引领新一轮工业革命,但将其应用于工业制造,仍面临许多挑战,专业知识的缺乏是关键难点。11月5日,香港中文大学终身教授、思谋科技创始人兼董事长贾佳亚受邀参加第六届中国国际进口博览会暨虹桥国际经济论坛开幕式。虹…...
Wsl2 Ubuntu在不安装Docker Desktop情况下使用Docker
目录 1. 前提条件 2.安装Distrod 3. 常见问题 3.1.docker compose 问题无法使用问题 3.1. docker-compose up报错 参考文档 1. 前提条件 win10 WSL2 Ubuntu(截止202308最新版本是20.04.xx) 有不少的博客都是建议直接安装docker desktop,这样无论在windows…...
pytorch之relu激活函数
目录 1、relu 2、relu6 3、leaky_relu 4、ELU 5、SELU 6、PReLU 1、relu ReLU(Rectified Linear Unit)是一种常用的神经网络激活函数,它在PyTorch中被广泛使用。ReLU函数接受一个输入值,如果该值大于零,则返回该…...
UML---用例图
UML–用例图 0.用例图简介 用例图是一种UML(统一建模语言)的图形化表示方法,用于描述系统的功能和行为。它可以帮助系统分析师和开发人员理解系统的需求,用例图由参与者、用例和它们之间的关系组成。 1.用例图的组成部分 系统…...
后端配置跨域怎么配置
在后端配置跨域,需要在服务器的代码中添加相应的设置。以下是几种常见的后端语言的跨域配置方式: Node.js 在使用 Node.js 的 Express 框架时,可以使用 cors 中间件来处理跨域问题。安装 cors 中间件后,在代码中添加如下设置&am…...
【计算机组成】实模式/保护模式下地址分段(基段地址+偏移地址)的原因
一.硬编码/静态重定向 我们先来观察下没有地址分段时代CPU是怎么和内存们打交道,在8086CPU以前的老大哥们,访问内存时通常就是实打实的“指哪打哪”,程序指定要放在哪个地址,那就老老实实地放在哪个地址,比如程序A要放…...
Web逆向-某网络学院学习的”偷懒“思路分析
接到求助,帮朋友完成20课时的网络学习。 我想都没想就接下了,寻思找个接口直接把学习时间提交上去,易如反掌。 最不济最不济,咱还能16x播放,也简单的很 然鹅,当我登陆的时候,发现自己还是太天真…...
一个用python PyQT写的背单词小程序
主要用到了QGridLayout, QTableWidget import sys import os import pandas as pd from PyQt5.QtWidgets import *class DataFrameExample(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):self.setWindowTitle(DataFrame Example)self.setGeom…...
AutoSAR配置与实践(深入篇)10.1 UDS刷写诊断服务解析(34/36/37服务)
AutoSAR配置与实践(深入篇)10.1 Boot刷写诊断服务解析(34/36/37服务) UDS刷写服务一、0x34服务1.1 0x34服务请求格式1.2 0x34服务响应格式1.3 举例说明二、TransferData (0x36) service2.1 0x36服务请求格式2.2 0x36服务响应格式2.3 举例说明三、RequestTransferExit (0x37…...
【机器学习】六、概率图模型
今天我们对概率图模型(Probabilistic Graphical Model,PGM)做一个总结。 模型表示 概率图模型,是指一种用图结构来描述多元随机变量之间条件独立关系的概率模型。 它提出的背景是为了更好研究复杂联合概率分布的数据特征&#x…...
机器视觉软件破解的背后是道高一尺,魔高一丈
讲个故事,小明从某购物平台花2000元买了一个C#机器视觉架构,压缩包带加密,卖家让小明先确认收货后给密码。 小明花了3元从另外一家卖家破解开压缩包密码,然后迅速从第一家卖家退货。小明成功省了1997元。 “道高一尺,…...
【I/O流之旅】File类-零基础入门指南
🎊专栏【Java】 🌺每日一句:看不清楚未来时,就比别人坚持久一点 ⭐欢迎并且感谢大家指出我的问题 目录 1.File概述 2.File构造方法 (1).根据文件路径创建文件对象 (2).根据父路径名字符串和子路径名字符串创建对象 (3).根据父路径对应文件对象和子路…...
ArrayList和LinkedList的区别有哪些?
ArrayList 和 LinkedList 是 Java 中常用的两种集合类,它们之间有一些重要的区别,主要涉及到其内部实现和性能特点: 内部实现: ArrayList 是基于动态数组实现的。它使用一个数组来存储元素,当数组已满并需要添加新元素…...
Pyhotn: Mac安装selenium没有chromedriver-114以上及chromedriver无法挪到/usr/bin目录下的问题
1.0 安装selenium 终端输入: pip install selenium 查看版本: pip show selenium2.0 安装chromedriver 查看chrome版本 网上大多数是,基本到114就停了。 https://registry.npmmirror.com/binary.html?pathchromedriver/ 各种搜索&#…...
挑战杯推荐项目
“人工智能”创意赛 - 智能艺术创作助手:借助大模型技术,开发能根据用户输入的主题、风格等要求,生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用,帮助艺术家和创意爱好者激发创意、提高创作效率。 - 个性化梦境…...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...
【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...
逻辑回归:给不确定性划界的分类大师
想象你是一名医生。面对患者的检查报告(肿瘤大小、血液指标),你需要做出一个**决定性判断**:恶性还是良性?这种“非黑即白”的抉择,正是**逻辑回归(Logistic Regression)** 的战场&a…...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...
自然语言处理——Transformer
自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效,它能挖掘数据中的时序信息以及语义信息,但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN,但是…...
人机融合智能 | “人智交互”跨学科新领域
本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...
基于鸿蒙(HarmonyOS5)的打车小程序
1. 开发环境准备 安装DevEco Studio (鸿蒙官方IDE)配置HarmonyOS SDK申请开发者账号和必要的API密钥 2. 项目结构设计 ├── entry │ ├── src │ │ ├── main │ │ │ ├── ets │ │ │ │ ├── pages │ │ │ │ │ ├── H…...
热烈祝贺埃文科技正式加入可信数据空间发展联盟
2025年4月29日,在福州举办的第八届数字中国建设峰会“可信数据空间分论坛”上,可信数据空间发展联盟正式宣告成立。国家数据局党组书记、局长刘烈宏出席并致辞,强调该联盟是推进全国一体化数据市场建设的关键抓手。 郑州埃文科技有限公司&am…...
Linux 下 DMA 内存映射浅析
序 系统 I/O 设备驱动程序通常调用其特定子系统的接口为 DMA 分配内存,但最终会调到 DMA 子系统的dma_alloc_coherent()/dma_alloc_attrs() 等接口。 关于 dma_alloc_coherent 接口详细的代码讲解、调用流程,可以参考这篇文章,我觉得写的非常…...
