地址

外网IP和内网IP的区别

拥有回忆 提交于 2019-12-19 04:19:57
这两天遇到一个bug,折腾的够呛,已经上线的项目,出现了个人登录不上的情况,瞬间整个人都不好了,首先找问题,在本地和测试服务器上都没问题,打包发布到正式环境就出现问题了,刚开始我看不了日志,日志要找别人要,自己各种方法折腾,后来要到日志,看了半天,突然发现后台报错连接超时,这是什么鬼?本地、测试都没问题,正式环境报这个问题,幸好同事之前经历过同样的事情,我说连接超时,他有点印象,原来是Linux服务器不能二次通过外网访问自己,要换成内网IP,然后就解决了问题,困扰了一天半,有感之余学习下外网IP和内网IP的区别: 作者:小胖KKang 链接:https://www.zhihu.com/question/43517806/answer/96122327 来源:知乎 著作权归作者所有,转载请联系作者获得授权。 1,内外网的关系: 用现实来比喻,公网地址类似于公共的地址, 深圳市罗湖区罗湖一路二巷504号罗湖大厦---公网地址,这个地址是全市唯一的。 罗湖大厦 B座3A层502房 ----内网地址--------任何大厦都可以有 B座3A层502房 如果给每间房屋分配一个地址,城市的地址会又混乱又不够用。 2,IP地址的分类: A,B,C类网络继续用现实来比喻类似于上述中的房 ,层,区,座的概念。 现在罗湖大厦这个“内网”为例,我有什么办法给1000间房子做标记。 A类地址

第八章单片机接口技术

馋奶兔 提交于 2019-12-19 04:19:46
单片机接口技术 8.1单片机的系统总线 51单片机与外部设备的连接既可以采用 I/O 口方式(非总线结构),也可以采用总线结构。51单片机由于总线受引脚数量的限制,数据总线与地址总线采用复用P0口方案。 三总线结构 输出锁存,输入/输出隔离,P0口无上拉电阻 地址总线(AB)、数据总线(DB)、控制总线(CB) 由图可知;8 位数据总线由P0口组成,16位地址总线由 P0 和 P2 口组成,控制总线则由 P3 口及相关引脚组成。 总线结构特点:节省 I/O 口 便于外设扩展 地址锁存原理及实现 由图,地址 P0 口即做数据总线,有做 低八位地址总线,若不做隔离两者就会发生冲突。因此采用地址锁存器接口芯片将地址信息与数据信息隔离开,如下图,接口芯片型号为74HC373 接线关系: /OE→地(仅作为输出),LE→正脉冲源,D0~D7→P0,Q0~Q7→外设地址端 P0口此时无需上拉电阻(总线方式) /OE 低点平 三态门导通,高电平三态门为高阻状态,/Q端与输出端 Q 断开。 LE为高电平时,D端与Q接通 LE负跳变时,锁存 LE为低电平时,隔离 图示是从单片机中分时地输出地址信息和输入/输出数据信息;/OE接地是为了满足无缓冲直通输出要求;LE 接单片机ALE引脚(地址锁存允许信号输出引脚/编程脉冲输入引脚)是要利用其提供的触发信号。 ALE引脚 MOVX 指令

TCP/IP ARP

霸气de小男生 提交于 2019-12-18 18:56:54
ARP (Address Resolution Protocol)地址解析协议,是根据IP地址获取物理地址的一个TCP/IP协议。 当在同一网络段内或同一子网内,主机发送信息时将包含目标IP地址的ARP请求广播发送到网络上的所有主机,并接收返回消息,以确定目标主机的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。 ARP提供的功能 是32bit的IP地址与48bit的MAC接口地址之间的动态映射。 ARP工作过程      主机A的IP地址为172.16.1.1,MAC地址为78-51-7b-21-0f-05;主机B的IP地址为172.16.1.2,MAC地址为78-51-84-11-10-05。   当主机A要与主机B通信时,ARP地址解析协议将主机B的IP地址172.16.1.2解析成主机B的MAC地址,以下为工作流程:   1、根据主机A上的路由表,确定访问主机B的转发接口地址。A主机在本机ARP缓存中查询主机B IP地址对应的MAC地址。   2、如果主机A在ARP缓存中没有找到映射,它将询问172.16.1.2对应的MAC地址,并将ARP请求帧广播到本地网络上的所有主机。源主机A的IP地址和MAC地址都包含在ARP请求帧中。本地网络上的每台主机都会收到ARP请求并检查是否与自己的IP地址匹配

4.ICMP协议,ping和Traceroute

柔情痞子 提交于 2019-12-18 17:56:11
1.IMCP协议介绍 前面讲到了,IP协议并不是一个可靠的协议,它不保证数据被送达,那么,自然的,保证数据送达的工作应该由其他的模块来完成。其中一个重要的模块就是ICMP(网络控制报文)协议。 当传送IP数据包发生错误--比如主机不可达,路由不可达等等,ICMP协议将会把错误信息封包,然后传送回给主机。给主机一个处理错误的机会,这 也就是为什么说建立在IP层以上的协议是可能做到安全的原因。ICMP数据包由8bit的错误类型和8bit的代码和16bit的校验和组成。而前 16bit就组成了ICMP所要传递的信息。书上的图6-3清楚的给出了错误类型和代码的组合代表的意思。 尽管在大多数情况下,错误的包传送应该给出ICMP报文,但是在特殊情况下,是不产生ICMP错误报文的。如下 ICMP差错报文不会产生ICMP差错报文(出IMCP查询报文)(防止IMCP的无限产生和传送) 目的地址是广播地址或多播地址的IP数据报。 作为链路层广播的数据报。 不是IP分片的第一片。 源地址不是单个主机的数据报。这就是说,源地址不能为零地址、环回地址、广播地 址或多播地址。 以上规则是为了防止产生ICMP报文广播风暴。 ICMP协议大致分为两类,一种是查询报文,一种是差错报文。其中查询报文有以下几种用途: ping查询(不要告诉我你不知道ping程序) 子网掩码查询

分段和分页的区别

南笙酒味 提交于 2019-12-18 11:35:02
连续分配方式会形成许多碎片,从而采用离散分配方式。采用页为分配的基本单位,可以避免产碎片,只在最后一页可能产生内碎片。若采用段为基本单位,则称之为分段存储管理方式,段可通俗理解为大的页面,段内采用连续分配,段与段之间采用离散分配。 基本分页存储管理方式 页面 : 分页存储管理是将一个进程的逻辑地址空间分成若干大小相等的片,称之为页。并给各个页加以编号,从0开始。相应的,内存也分成与页面等大的若干存储块,称为物理块戍页框,同样为它们加以编号。在为进程分配内存时,以块为单位将进程的若干页分别装入到多个可以不相邻的物理块中。由于进程的最后一页通常装不满而形成不可利用的碎片,称之为“页内碎片“。页面大小一般为2的幂。 页面地址结构 : 分页地址由项号,偏移量(页内地址)组成。 页表:系统要为每一个进程都建立一个页表。在进程地址空间内的所有页,依此在页表中有一项表项,记录了相应页在内存中的对应的物理块号。页表是实现从页号到物理块号的地址映射。 地址变换机构 : 该机构是实现从逻辑地址到物理地址的转换,页内地址和物理地址是一一对应的,地址变换机构的任务是将逻辑地址中的页号,转换为内存中的物理块号。借助页表实现。 基本的地址变换机构 : 如果页号大于或等于页表长度,表示本次所访问的地址超过进程的地止空间,若未越界,则将页表地止与页号和页表项长度的乘积相加(即,基地止*偏移量

如何理解分页作业是一维的,分段作业是二维的

谁说胖子不能爱 提交于 2019-12-18 11:33:53
分页管理中: 程序员使用某个内存单元的数据或指令时,需要指定 一维的虚拟地址即可,而这个地址可以通过地址映射映射为物理地址, 比如 : CALL 08A5H 地址映射可以根据页面大小判断出哪部分是页内地址,哪部分是页表中的页号,然后执行。 分段管理中: 是将程序分段(比如有堆栈段,数据段等),符合程序员习惯,人们习惯用二维地址描述自己的程序,比如 MOV BP, [DS]85H 或者 CALL [X][116] 将 数据段 85H的内容COPY到寄存器BP中,或者 跳转到 X段 。。。。 所以说它是二维的,段名和段内地址。与所谓的“页号+页内地址”不是一个事。 综上: 在页表中找一个虚地址,你只要给一个地址,我就能算出来在哪一页,页偏移多少,所以是一维的(只要一个地址即可) 在段表中找一个虚地址,看上去给的也只有一个虚地址就能找到,但是,其实,这个虚地址是段号和段内偏移这两个地址放在一起合成的,是2个地址(这儿和页不同,页的页号和页内偏移可以自己计算,所以是1个地址),所以是2维 ———————————————— 版权声明:本文为CSDN博主「qq_32534441」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qq_32534441/article/details/88980842

arping命令解析

我是研究僧i 提交于 2019-12-18 11:01:10
一、介绍 ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写。在同一以太网中,通过地址解析协议,源主机可以通过目的主机的IP地址获得目的主机的MAC地址。arping程序就是完成上述过程的程序。 arping,用来向局域网内的其它主机发送ARP请求的指令,它可以用来测试局域网内的某个IP是否已被使用。 二、指令格式如下: arping [-AbDfhqUV] [-c count] [-w deadline] [-s source] -I interface destination 三、参数释意: -A:与-U参数类似,但是使用的是ARP REPLY包而非ARP REQUEST包。 -b:发送以太网广播帧,arping在开始时使用广播地址,在收到回复后使用unicast单播地址。 -c:发送指定的count个ARP REQUEST包后停止。如果指定了-w参数,则会等待相同数量的ARP REPLY包,直到超时为止。 -D:重复地址探测模式,用来检测有没有IP地址冲突,如果没有IP冲突则返回0。 -f:收到第一个响应包后退出。 -h:显示帮助页。 -I:用来发送ARP REQUEST包的网络设备的名称。 -q:quite模式,不显示输出。 -U:无理由的(强制的)ARP模式去更新别的主机上的ARP CACHE列表中的本机的信息,不需要响应。 -V

交换机工作原理、MAC地址表、路由器工作原理详解

﹥>﹥吖頭↗ 提交于 2019-12-18 05:40:48
一:MAC地址表详解 说到MAC地址表,就不得不说一下交换机的工作原理了,因为交换机是根据MAC地址表转发数据帧的。在交换机中有一张记录着局域网主机MAC地址与交换机接口的对应关系的表,交换机就是根据这张表负责将数据帧传输到指定的主机上的。 交换机的工作原理 交换机在接收到数据帧以后,首先、会记录数据帧中的源MAC地址和对应的接口到MAC表中,接着、会检查自己的MAC表中是否有数据帧中目标MAC地址的信息,如果有则会根据MAC表中记录的对应接口将数据帧发送出去(也就是单播),如果没有,则会将该数据帧从非接受接口发送出去(也就是广播)。 如下图:详细讲解交换机传输数据帧的过程 1)主机A会将一个源MAC地址为自己,目标MAC地址为主机B的数据帧发送给交换机。 2)交换机收到此数据帧后,首先将数据帧中的源MAC地址和对应的接口(接口为f 0/1) 记录到MAC地址表中。 3)然后交换机会检查自己的MAC地址表中是否有数据帧中的目标MAC地址的信息,如果有,则从MAC地址表中记录的接口发送出去,如果没有,则会将此数据帧从非接收接口的所有接口发送出去(也就是除了f 0/1接口)。 4)这时,局域网的所有主机都会收到此数据帧,但是只有主机B收到此数据帧时会响应这个广播,并回应一个数据帧,此数据帧中包括主机B的MAC地址。 5)当交换机收到主机B回应的数据帧后,也会记录数据帧中的源MAC地址

指针(一)

时光总嘲笑我的痴心妄想 提交于 2019-12-18 05:22:47
指针-----地址 内存区的每一个字节都有一个编号,这就是地址 将地址形象化的称为指针。 数据是分类型的,对不同类型的数据,在内存中分配的存储单元大小(字节数)和存储方式是不同的。 对变量的访问都是通过地址进行的。 直接按变量名进行的访问,称为“直接访问”方式。 间接访问:即将变量i的地址存放在另一变量中,然后通过该变量来找到变量i的地址,从而访问i变量。 指针就是通过地址来体现的。 一个变量专门用来存放另一变量 的地址(即指针),则他称为指针变量,指针变量的值是地址(即指针)。 定义指针变量: 基类型 *指针变量名 说明:基类型可以是任意数据类型 说明其后的变量名是指针变量名 指针变量名是任意合法的标识符 例如: pointerA 指针变量赋值: 先定义,后赋值 初始化,定义的同时赋值 通过指针访问变量(间接访问) *代表指针所指向的内存单元,后面只能跟地址变量。 int a=3; int *pointerA=&a; *pointerA=5;//间接访问 a=5;//直接访问 printf(“a=%d”,a); 直接访问 printf(“a=%d”,*pointerA) 间接访问 案例 1 void exchange(int x,int y) { int t; t=x; x=y; y=t; } void main() { int a=3,b=5; exchange(a,b);

简述arp协议的工作原理

假装没事ソ 提交于 2019-12-18 01:08:18
在每台安装有TCP/IP协议的电脑里都有一个ARP缓存表,表里的IP地址与MAC地址是一一对应的,如: 我们以主机A(192.168.1.5)向主机B(192.168.1.1)发送数据为例。当发送数据时,主机A会在自己的ARP缓存表中寻找是否有目标IP地址。如果找到了,也就知道了目标MAC地址,直接把目标MAC地址写入帧里面发送就可以了;如果在ARP缓存表中没有找到相对应的IP地址,主机A就会在网络上发送一个广播,目标MAC地址是“FF.FF.FF.FF.FF.FF”,这表示向同一网段内的所有主机发出这样的询问:“192.168.1.1的MAC地址是什么?”网络上其他主机并不响应ARP询问,只有主机B接收到这个帧时,才向主机A做出这样的回应:“192.168.1.1的MAC地址是00-aa-00-62-c6-09”。这样,主机A就知道了主机B的MAC地址,它就可以向主机B发送信息了。同时它还更新了自己的ARP缓存表,下次再向主机B发送信息时,直接从ARP缓存表里查找就可以了。ARP缓存表采用了老化机制,在一段时间内如果表中的某一行没有使用,就会被删除,这样可以大大减少ARP缓存表的长度,加快查询速度。 ARP攻击就是通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞,攻击者只要持续不断的发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP