地址

RARP协议

穿精又带淫゛_ 提交于 2020-01-29 23:59:57
RARP协议 RARP–Reversed Address Resolution Protocol 官方定义在RFC903 ARP跟RARP的关系 RARP跟ARP的异同 这是用于以太网的ARP的请求应答分组的格式,图中以太网地址就是物理地址 RARP跟ARP都是请求广播,响应单播 RARP的请求应答分组跟ARP的形式上一样,不同之处如下 ARP的帧类型是0x0806 表示后面数据是ARP分组,RARP的帧类型是0x8035 操作码op ARP请求是1 ARP响应是2 RARP请求是3 RARP响应是4 RARP的请求响应过程 以用于以太网的RARP请求为例,假设A是发送方,B是响应方 请求过程 op设为3 发送端以太网地址是A的物理地址 发送端IP地址无定义 目的以太网地址也是A的物理地址 目的IP地址无定义 链路层广播 响应过程 op设为4 发送端以太网地址是B的物理地址 发送端IP地址是B的IP地址 目的以太网地址是A的物理地址,跟请求过程中的目的以太网地址保持一致 目的IP地址是分配给A的IP地址 链路层单播给A RARP的实现难点 一台RARP服务器一般为多个主机(网络上所有的无盘系统)提供硬件到IP地址的映射,该映射存储在磁盘文件中,系统内核一般不读取磁盘文件,所以需要用户写程序实现,而且不同的系统实现有所不同 一个网络中一般要有多个RARP服务器

指针(二)

倖福魔咒の 提交于 2020-01-29 22:16:12
指针与数组 指向数组的指针 数组是内存中一块连续的区域,存储着相同类型的数据,在声明一个数组时,会开辟两个空间,一个用于保存数组元素,一个用来保存数组的第一个元素的地址,数组名就是用于保存数组第一个元素地址的指针。 指向一位数组的指针 int a1 [ 100 ] ; int n ; n = * a1 ; //n 为数组a1第一个元素的值 n = * ( a1 + 5 ) ; // 数组a1的第6个元素 尽管指针与数组之间有密切的关系,但是指针类型变量是可以不断进行赋值,在程序运行过程中可以发成变化,数组名虽然是指针,但是是一种指针类型的常量,只能指向固定的内存地址,不能将一个指针值赋值给一个数组名,同时在程序运行的过程中是不能发生改变。 指向多维数组的指针 例如:二维数组相当于一个二维表格,二维数组具有首地址,行首地址,元素地址等,数组名代表首地址,称为二维数组的指针,行首地址是二维数组中某一行的首地址,每行相当于一个一维数组,元素地址是二维地址中具体的分量。 int a [ 4 ] [ 5 ] ; // a代表整个二维数组的首地址,*a代表是第0行首地址,a[0]代表第i行的首地址 指向字符串的指针 char * str1 = "string1" ; 指针数组与指向指针的指针 指针数组 数组元素均为指针类型数据的数组。指针数组中的每个元素都相当于一个指针变量。 int * p

指针常量、常量指针、指向常量的指针常量的区别以及数组名的本质

◇◆丶佛笑我妖孽 提交于 2020-01-29 05:46:56
1、指针常量(*const):对应指针变量,即指针本身是常量,指针指向的内容可以被修改。 数据类型 * const 指针变量=变量名(或取地址); int * const p ; 2、常量指针(const*):常量的指针,即指针指向的内容不能被修改,但指针本身是变量,可以被修改。 数据类型 const * 指针变量=变量名(或取地址); int const * p ; const int * p ; //都可以 3、指向常量的指针常量:即指针本身是常量,指向的内容也是常量,都不能修改。 -const 数据类型 * const 指针变量=变量名(或取地址); const int * const p ; 4、数组名 指针和数组名在本质上是不同的, 1,指针是地址变量,而数组名是地址常量 数组名本质上是一个 地址常量 ,不是指针,不管是指针常量还是常量指针都不是,之所以在实际编程中,数组名表现出“是”指针的样子,那是因为经过隐式转换形成的,而不是数组名本身具有的 指针与地址的区别:   1、指针和地址最大的区别就是指针是有类型的,地址是没有类型的。我们当然可以通过绝对地址的方式找到函数和数据,但是地址是没有类型的,不能对地址进行算术操作,在涉及诸如数组等操作时就不能通过地址的自增和自减来访问数组的各个变量。   2、指针是由地址和类型两部分构成的

【操作系统】疑难点总结(一)

被刻印的时光 ゝ 提交于 2020-01-29 05:07:25
1页号和页框的区别 页(page) 一页指一系列的线性地址和包含于其中的数据 页框(pageframe) 分页单元认为所有的RAM被分成了固定长度的页框 每个页框可以包含一页,也就是说一个页框的长度和一个页的长度是一样的 页框是内存的一部分,是一个实际的存储区域。 页只是一组数据块,可以存放在任何页框中 也就是说页对应的是线性地址的东西 而 页框对应的是物理地址 是实际的存储区域 2进程和线程的区别 1、进程是 资源分配 的最小单位,线程是 程序执行 的最小单位(资源调度的最小单位) 2、进程有自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间,建立数据表来维护代码段、堆栈段和数据段,这种操作非常昂贵。 而线程是共享进程中的数据的,使用相同的地址空间,因此CPU切换一个线程的花费远比进程要小很多,同时创建一个线程的开销也比进程要小很多。 3、线程之间的通信更方便,同一进程下的线程共享全局变量、静态变量等数据,而进程之间的通信需要以通信的方式(IPC)进行。不过如何处理好同步与互斥是编写多线程程序的难点。 4、但是多进程程序更健壮,多线程程序只要有一个线程死掉,整个进程也死掉了,而一个进程死掉并不会对另外一个进程造成影响,因为进程有自己独立的地址空间。 补充+总结: 进程是组织资源的最小单位,而线程是安排CPU执行的最小单位

IP地址分类整理

限于喜欢 提交于 2020-01-29 03:51:59
什么是IP地址? IP地址就是计算机在网络中地址。 IP地址有多少个? IP地址范围是:0.0.0.0~225.225.225.255,这只是人为了方便记录才转为十进制的,ip地址实际是一个32位地址,即: 00000000,00000000,00000000,00000000 = 0 11111111,11111111,11111111,11111111 = 4294967295 所以IP地址的范围是0~4294967295,有 4294967295 + 1 = 4294967296 个IP地址。 IP地址怎么管理? IP地址由国际管理小组划分为A、B、C、D、E类,D、E类为特殊地址; IP地址是怎么划分? 很多人都是直接记A类地址访问,B类地址范围,C类地址范围,实际上不需要死记硬背,那些之所以要硬背的人,是把IP当成0~255组成的字符串了,实际上,在电脑处理中一个32位地址,所以我们也应当从二进制的角度去理解IP地址的划分; A类地址 A类地址网络号范围:1.0.0.0---126.0.0.0; 为什么是到126,而不是到其他数字,127,或者125呢?我们从二进制角度去看这些地址: 00000001,00000000,00000000,00000000 01111110,00000000,00000000,00000000 B类地址 B类地址网络号范围:128.0.0

C:指针基础

夙愿已清 提交于 2020-01-29 01:18:03
内存概述 内存 内存含义: 存储器:计算机的组成中,用来存储程序和数据,辅助CPU进行运算处理的重要部分。 内存:内部存贮器,暂存程序/数据——掉电丢失 SRAM、DRAM、DDR、DDR2、DDR3。 外存:外部存储器,长时间保存程序/数据—掉电不丢ROM、ERRROM、FLASH(NAND、NOR)、硬盘、光盘。 内存是沟通CPU与硬盘的桥梁: 暂存放CPU中的运算数据 暂存与硬盘等外部存储器交换的数据 物理存储器和存储地址空间 有关内存的两个概念:物理存储器和存储地址空间。 物理存储器:实际存在的具体存储器芯片。 主板上装插的内存条 显示卡上的显示RAM芯片 各种适配卡上的RAM芯片和ROM芯片 存储地址空间:对存储器编码的范围。我们在软件上常说的内存是指这一层含义。 编码:对每个物理存储单元(一个字节)分配一个号码 寻址:可以根据分配的号码找到相应的存储单元,完成数据的读写 内存地址 将内存抽象成一个很大的一维字符数组。 编码就是对内存的每一个字节分配一个32位或64位的编号(与32位或者64位处理器相关)。 这个内存编号我们称之为内存地址。 内存中的每一个数据都会分配相应的地址: char:占一个字节分配一个地址 int: 占四个字节分配四个地址 float、struct、函数、数组等 指针基础 指针和指针变量 内存区的每一个字节都有一个编号,这就是“地址”。

C++中 引用&与取地址&的区别【转载】

白昼怎懂夜的黑 提交于 2020-01-29 00:45:12
原文链接: link 引用:传值;取地址:获取首地址 &(引用)==>出现在变量声明语句中位于变量左边时,表示声明的是引用. 例如: int &rf; // 声明一个int型的引用rf. &(取地址运算符)==>在给变量赋初值时出现在等号右边或在执行语句中作为一元运算符出现时表示取对象的地址. 在C++中,既有引用又有取地址,好多人对引用和取地址不是很清楚,因此也无法区分。其实他们的区别可以用一句话概括:和类型在一起的是引用,和变量在一起的是取址。下面我们通过实例具体了解一下: 1)引用在赋值=的左边,而取地址在赋值的右边,比如 int a=3; int &b=a; //引用 int *p=&a; //取地址 2)和类型在一起的是引用,和变量在一起的是取址。 举例同样如上,还有下例: int function(int &i) { } //引用 3)对于vector,上面2条同样适合 vector vec1(10,1); //initialize vec1: 10 elements, every element’s value is 1 vector &vec2 = vec1; // vec2 is reference to vec1 vector *vec3 = &vec2; //vec3 is addresss of vec1 and vec2 来源: CSDN 作者:

OSI参考模型

吃可爱长大的小学妹 提交于 2020-01-27 20:40:34
物理层的作用:定义媒介类型、连接头类型、信号类型。 Hub:工作在物理层 1.所有的设备都处于同一个冲突域 2.所有的设备都处于同一个广播域 3.设备共享相同的宽带 数据链路层的作用:物理源地址和物理目的地址、服务访问点与上层协议关联、定义网络拓扑结构、帧的顺序控制,流控。 交换机/网桥:工作在数据链路层:1.每一个网段都是单独的冲突域 2.所有的网段都属于同一个广播域 交换机工作原理:每一个网段都是一个单独的冲突域、广播包将被转发到所有的网段上。 网络层的作用:提供编制方案,提供路由。 ip地址=网络地址+主机地址 网络层地址由两部分组成:网络地址和主机地址,网络地址是全局唯一的。 路由器:工作在网络层 传输层的作用:分割上层数据、流量控制、面向连接与非面向连接、在应用程序之间建立端到端的连接。 来源: https://www.cnblogs.com/zhuweiyi/p/10902688.html

网络基础之子网划分

丶灬走出姿态 提交于 2020-01-27 11:01:02
网络基础之子网划分 阅读目录 一.ip地址基本知识 1.1 ip地址的结构和分类 1.2 特殊ip地址 1.3 子网掩码 1.4 ip地址申请 二.子网划分 2.1 子网划分概念 2.2 c类子网划分初探 2.3 子网划分步骤 2.4 子网划分案例 2.5 划分子网注意事项 2.6 为何要子网划分及其优点 2.6.1 为什么要子网划分: 2.6.2 子网划分优点 一.ip地址基本知识 1.1 ip地址的结构和分类 根据tcp/ip协议,连接在internet上的每个设备都必须有一个ip地址,他是一个32位二进制数,也可以用点分十进制表示,每八位一组,用一个十进制表示即0~255,每组用"."分隔开,例如172.16.45.10 ip地址表示 将ip地址中的网络位和主机位固定下来后,ip地址被分成了不同的积累:A类,B类,C类,D类,E类 1.2 特殊ip地址 网络地址:用于表示网络本身,具有正常的网络号部分,而主机号部分全部为0的ip地址称之为网络地址,如172.16.45.0就是一个B类网络地址 广播地址:用于向网络中的所有的设备进行广播。具有正常的网络号部分,而主机号部分全为1(即255)的ip地址称之为广播地址,如172.16.45.255就是一个B类的网络地址 有限广播地址:指的是32位全位1(即255.255.255.255)的ip地址,用于本网广播 回送地址

SNAT / DNAT 策略及应用

只谈情不闲聊 提交于 2020-01-26 17:25:07
https://mp.weixin.qq.com/s/54HoVNcxhkiY7eBFbbPy9w # iptables 服务器作为网关时,内网访问公网 SNAT 策略应用 :是为局域网共享上网提供接入策略,处理数据包的切入时机是在路由选择后进行,是将局域网外发数据包的源 IP 地址修改为网关服务器的外网接口 IP 地址。 SNAT 策略用在 nat 表的 postrouting 链。 编写 SNAT 策略时,需使用 iptables 命令结合 --to-source IP 地址 选项来指定修改后的源 IP 地址。 iptables –t nat -A POSTROUTING -s [内网 IP 或网段] -j SNAT --to [公网 IP] # 访问 iptables 公网 IP 端口,转发到内网服务器端口 DNAT 应用:是在 Internet 中发布企业内部的服务器,处理数据包的切入时机是在路由选择之前进行。将访问网关外网接口 IP 地址的数据包的目标地址修改为实际提供服务的内部服务器的 IP 地址。 DNAT 策略用在 nat 表的prerouting 链 使用 iptables 命令设置 DNAT 策略时,需要结合 --to-destination IP 地址 选项来指定内部服务器的 IP 地址。 iptables –t nat -A PREROUTING -d