游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

网络三张表ARP表,MAC表,路由表,实现你的网络自由!!

  背景说明:
  网络的知识,是大家开发过程中,非常重要也是非常底层的知识。所以网络知识是一个非常、非常核心的面试知识点。
  在30岁老架构师的读者交流群(50)中,其相关面试题是一个非常、非常高频的交流话题。社群中,还遇到过大概的变种:形式1:聊聊ARP地址解析协议?
  形式2:在浏览器地址栏输入一个URL后回车,背后发生了什么?
  形式3:。。。。非常多
  这些问题,都和三张表有关。
  可以说,掌握了三张表,就掌握了网络通讯的核心。
  这里给大家把网络三张表,做一下系统化、体系化的梳理,使得大家可以充分展示一下大家雄厚的技术肌肉,让面试官爱到不能自已、口水直流。
  也一并把这个相关题目以及参考答案,收入咱们的《尼恩Java面试宝典》,供后面的小伙伴参考,提升大家的3高架构、设计、开发水平。
  注:本文以PDF持续更新,最新Java架构笔记、面试题的PDF文件,请后台私信【笔记】即可获取哦!首先,说一下网络中的数据包
  首先我们需要知道,网络上传输的东西是什么?
  在使用TCPIP协议传输时,网络上的数据,是以二进制数据包的形式传输的,核心的三个部分,如下:
  这个数据包,其中有这么几个字段很重要:源IP地址源MAC地址目标IP地址目标MAC地址
  这些都是和地址相关的,就像寄送快递,这就是里边的收件人电话,收件人地址,有了这个地址信息,对方才能收到这个包。
  在网络中,每一台计算机,每一个通讯设备,都有自己的地址,包含IP地址和MAC地址。
  注意:MAC地址又称为硬件地址、物理地址(因为这种地址用在MAC帧中)。
  为什么需要那么多地址呢?
  一个ip地址,还要一个mac地址。
  原因是,网络协议是分层的。不同的地址,给不同的层使用。ip地址,网络层使用,mac地址,数据链路层使用。
  什么是网络层,什么是链路层?
  请参见TCPIP协议与七层ISO模型的对应关系,大致如下图所示:
  图:TCPIP协议与七层ISO模型的对应关系网络三张表1:ARP表
  网络中的三张表ARP表,MAC表,路由表
  先看第一个ARP表。提起ARP表必然先想起ARP(addressresolutionprotocol)协议,地址解析协议。
  为什么需要ARP协议?
  在链路层中,同一局域网中的一台主机要和另一台主机进行通信,需要通过MAC地址进行定位,然后才能进行数据包的发送。
  而在网络层中,计算机之间是通过IP地址定位目标主机,对应的数据报文只包含目标主机的IP地址,而没有MAC地址。
  因此,在发送之前,需要做个翻译的工作:根据IP地址获取MAC地址。
  只有翻译成功,才能将数据包发送到正确的目标主机,而这个获取过程是通过ARP协议完成的。网关设备上的ARP表项
  在日常维护工作中,在华为的网关设备上,可以执行displayarp相关命令,查看设备上的ARP表项信息。
  通过在网关设备上查看ARP表项,网络管理员可以查看下挂用户的IP地址、MAC地址和接口等信息
  例如,当网络管理员知道某个用户的IP地址,想查询该用户的MAC地址时,可以通过查看ARP表项信息获取。
  用户可以执行displayarpall。看到IPMAC的表项,我们可以看到已知的IP地址的MAC地址是什么,这样很方便我们排查故障
  上述回显中,每行ARP表项的具体含义如下:IP地址为172。16。10。3,MAC地址为00259efbbe55,TYPE字段为S(代表该ARP表项为静态ARP表项)。这条静态ARP表项出接口为GE106,VLAN编号为100。
  IP地址为172。16。20。3,MAC地址为0200000000e8,TYPE字段为S(代表该ARP表项为静态ARP表项)。这条静态ARP表项出接口为GE1019。
  IP地址为172。16。10。1,MAC地址为00259ef4abcd,TYPE字段为I(代表该ARP表项为接口本身的ARP表项)。这条ARP表项代表IP地址172。16。10。1是接口Vlanif100的IP地址。
  IP地址为172。16。10。2,MAC地址为00259efbbe55,TYPE字段为D(代表该ARP表项为动态ARP表项)。这条动态ARP表项是从接口GE106动态学习到的,VLAN编号为100,剩余存活时间为20分钟。
  IP地址为172。16。20。1,MAC地址为00259ef4abcd,TYPE字段为I(代表该ARP表项为接口本身的ARP表项)。这条ARP表项代表IP地址172。16。20。1是接口GE1019的IP地址。
  IP地址为172。16。20。2,MAC地址为0200000000e8,TYPE字段为D(代表该ARP表项为动态ARP表项)。这条动态ARP表项是从接口GE1019动态学习到的,剩余存活时间为18分钟。
  代码转自,华为企业技术文档。ARP表的使用过程
  由于IP协议使用了ARP协议,因此通常把ARP协议划归到网络层。但ARP协议的用途是为了从网络层使用IP地址,解析出在链路层使用的硬件地址。
  每一台主机都设有一个ARP高速缓存,里面有本局域网上的各种IP地址到MAC硬件地址的映射表(ARP表),表里面的内容由ARP协议进行动态更新。
  ARP表内的数据会老化,达到老化时间会自动删除,在此通信时,由ARP协议重新添加。
  有PC0,PC1两台主机
  PC0向PC1发送一个ping报文,向PC0输入1。1。1。3然后开始发送,PC0先查询本地APR表查询1。1。1。3对应MAC地址,但并没查到,这种情况PC0在本局域网上广播发送一个ARP请求分组。ARP请求分组的主要内容是:
  我的IP地址是1。1。1。2,硬件地址是xxxxxxxxxxxx。我想知道IP地址为1。1。1。3的主机的硬件地址。
  在本局域网上的所有主机上运行的ARP进程都会收到此ARP请求分组。PC1的IP地址与ARP请求分组中要查询的IP地址一致,就收下ARP请求分组,并向PC0发送ARP响应分组,同时在这个ARP响应分组中写入自己的硬件地址。其余主机ip地址都与ARP请求要查询的ip地址不一致,不做任何回应。
  响应内容为:
  我的ip地址是1。1。1。3,我的硬件地址是xxxxxxxxxxxx
  虽然ARP请求分组是广播发送的,但ARP响应分组是普通的单播,即从一个原地址发送到一个目的地址。
  接下来PC0就可以使用刚获取的PC1MAC地址,进行icmp数据发送。
  网络三张表之2:MAC表
  首先,来看交换机是怎么进行数据转发的。交换机是怎么进行数据转发的
  MAC表工作在链路层,主要给交换机用的。
  一个局域网的主机设备,多了以后,需要通过交换机,组织和管理起来。
  主机设备接到交换机的端口上。
  交换机内部维护一张【MAC地址表】,记录着每一个MAC地址的设备,连接在哪一个端口上。如果发来的包首部中包含的目标MAC地址在MAC地址表中没有映射关系,交换机就将此包广播给所有端口,也即发给了所有机器;如果地址表有映射,那就只发给那一个端口
  比如主机A想要给主机C发送消息,就需要用到mac表。
  但是,注意一下,一开始交换机的MAC地址表是空的,交换机并不知道C的端口号,因此A发送的消息将会被广播,同时,A的MAC地址和它对应的端口号会被记录到MAC地址表中。
  具体如下图:
  C收到广播之后,发现是发给自己的,就对A进行回复。
  C对A的消息进行响应的时候,交换机就不需要进行广播消息了,因此它已经知道A计算机在哪个端口了,并且同样的,C的MAC地址和它对应的端口号会被记录到交换机的MAC地址表中。
  C通过交换机给A发送消息,此时MAC地址表中含有A的信息MAC表的数据内容
  MAC表放在了另一个层级,数据链路层。
  如上图所示,mac表这样设计的。交换机内部维护一张MAC地址表,记录着每一个MAC地址的设备,连接在其哪一个端口上。
  MAC地址
  端口
  bbbbbbbbbbbb
  1hrcccccccccccc
  3hraaaaaaaaaaaa
  4hrdddddddddddd
  5hr假如你仍然要发给B一个数据包,构造了如下的数据结构从网口出去。MAC表的使用过程
  交换机是根据MAC地址转发数据帧的。
  当PC0发送ARP数据包,交换机会把数据包发往PC0之外的所有主机,并在相应包中记录下相应Mac地址与接口数据。
  当PC0向PC1发送一帧数据,从1口进到交换机。交换机收到帧后,根据帧中的目的MAC先查本地MAC表,没有查到应从哪个接口转发这个帧。
  接着,交换机把这个帧的源MAC和接口1写入交换表中,并向除1以外的所有接口广播这个帧,PC2将此广播帧丢弃,因为目的地址不对。
  PC1收下这个目的地址是自己MAC的数据,并回应数据包,此时交换机会把PC1的MAC和对应接口2写入表中。然后当PC0与PC1再次发送数据交换机可以根据目的MAC查表找出对应的接口,将数据包直接送达对应的主机。
  考虑到有可能在交换机的接口更换主机,或者主机要跟换主机更换网卡,这时交换机中MAC表也是动态的、有自己的老化时间,会自动删除相关数据。
  当交换机中一台主机突然从2口切换到3口,交换机收到的此主机的数据仍然会发送到原端口2口就会出现超时情况,直到Mac中数据更新,或者手动把交换机断电重启重更新Mac表数据。
  网络三张表之3:路由表
  说起路由表,就不得不提起路由器。
  路由器是一种具有多个输入端口和多个输出端口的专用设备也可称为计算机。其任务是转发分组。
  路由器结构由两部分组成:路由选择部分和分组转发部分。
  说明:此处的路由器与家用路由器略有不同,家用路由器集成了路由器和交换机的功能为了,更方便用户使用路由表的起源
  前面的mac表,是因为局域网内的主机多了,被逼出来对主机进行分组管理的。相当于按照端口,对主机分组管理。
  路由表怎么来的呢?也是被逼的。但是这一次,是被IP地址逼的。
  当IP地址多了之后,需要划分子网,路由器的根本目标,就是解决跨子网IP之间的路由。
  而跨子网IP之间的路由,是通过路由表完成的。
  这里有点复杂,先从网关开始说起。网关的由来
  有了子网之后,每个子网,有一个网关,相当于子网的总代理。
  所有的报文,需要进行这个子网网关的转发。
  有了网关之后,A在自己电脑里配置的一个网关IP地址,以便在发给不同子网的机器时,发给这个网关IP地址,由这个网关转发。
  有了这个代理之后,数据包的转发规则如下:如果源IP与目的IP处于一个子网,直接将包通过交换机发出去。如果源IP与目的IP不处于一个子网,就交给路由器去处理。
  怎么知道,两个IP在同一个子网呢?
  比如,我们希望达到下面的目标:192。168。0。1和192。168。0。2处于同一个子网192。168。0。1和192。168。1。1处于不同子网
  那么,我们可以认为的规定一个规则:以192。168。0。xxx开头的,就算是在一个子网否则就是在不同的子网。
  192。168。0。xxx开头的,就算是在一个子网,否则就是在不同的子网。
  那对于计算机来说,怎么表达这个意思呢?于是人们发明了子网掩码的概念
  在上面的规则中,咱们的子网掩码定为255。255。255。0
  计算的时候,将源IP与目的IP分别同这个子网掩码进行与运算,相等则是在一个子网,不相等就是在不同子网,就这么简单。
  比如A电脑:192。168。0。1255。255。255。0192。168。0。0B电脑:192。168。0。2255。255。255。0192。168。0。0C电脑:192。168。1。1255。255。255。0192。168。1。0D电脑:192。168。1。2255。255。255。0192。168。1。0
  那么A与B在同一个子网,C与D在同一个子网,但是A与C就不在同一个子网,与D也不在同一个子网,以此类推。
  所以如果A给C发消息,A和C的IP地址分别A机器配置的子网掩码,发现相等,网关就把数据发给C发现不相等,网关则A认为C和自己不在同一个子网,于是把包发给路由器,就不管了,之后怎么转发,A不关心。
  接下来,工作交个路由器。路由器怎么进行跨子网的路由
  现在A要给C发数据包,已经可以成功发到路由器这里了,
  问题就是,路由器怎么知道,收到的这个数据包,该从自己的哪个端口出去,才能直接(或间接)地最终到达目的地C呢。
  路由器收到的数据包有目的IP也就是C的IP地址,需要转化成从自己的哪个端口出去,很容易想到,应该有个表,就像MAC地址表一样。
  这个表就叫路由表。
  和MAC地址表的不同的是,路由表并不是一对一这种明确关系,我们下面看一个路由表的结构。
  目的地址
  子网掩码
  下一跳
  端口
  192。168。0。0
  255。255。255。0
  0hr192。168。0。254
  255。255。255。255
  0hr192。168。1。0
  255。255。255。0
  1hr192。168。1。254
  255。255。255。255
  1hr我们学习一种新的表示方法,由于子网掩码其实就表示前多少位表示子网的网段,所以如192。168。0。0(255。255。255。0)也可以简写为192。168。0。024
  目的地址
  下一跳
  端口
  192。168。0。024
  0hr192。168。0。25432
  0hr192。168。1。024
  1hr192。168。1。25432
  1hr这就很好理解了,路由表就表示,192。168。0。xxx这个子网下的,都转发到0号端口,192。168。1。xxx这个子网下的,都转发到1号端口。
  配合着结构图来看(这里把子网掩码和默认网关都补齐了)
  表中的下一跳列还没有值,在这里不重要,重要的是,咱们理解了路由表的核心。路由表的使用过程
  路由器工作在网络层,主要功能就是实现跨网段传输数据。
  如上图:一网段的主机要与其他网段的主机通信,则数据会先发送给指定的网关,也就是路由器,由路由器选择网段继续通信,所以发送的数据包起始中网络层的ip地址不变,源ip地址就是当前主机的ip地址,目的ip地址就是不同网段的主机的ip地址,但是链路层由于数据要先发给路由器,那么目的mac就是路由器的mac地址,然后路由器选择其他网段,则源mac变成路由器另一个网口的mac地址,目的mac就是目标主机的mac地址,所以整个过程网络层的一直不变,但是链路层一直再变
  如上图:由于现在是两台路由器和两个网段的主机,所以需要构成三个局域网,当源主机跨网段与目标主机通信时,由于网段不同,数据会先发送给路由器,然后路由器再选择对应的目的网段,但是此时路由器另一端所在的网段与之目标主机的网段不同,所以无法继续向下发送,此时需要设置下一跳,下一跳的目的就是指定当前自己网段的主机要访问其他网段的主机时从这个路由器应该跳到哪个路由器,只要设置了,就可以直接发送数据到指定的路由器,整个过程就完成
  1、当网络中有多个路由器是,两个主机需要通信路由器需要记录下一跳信息,下一跳的目的就是指定当前自己网段的主机要访问其他网段的主机时从这个路由器应该跳到哪个路由器
  2、路由表记录着下一跳。
  路由表中记录着不同网段的信息。路由表中记录的信息有的需要手动添加(称为静态路由表),通过路由协议自动获取的(称为动态路由表),我们的主机直接连到路由器上(中间无三层网络设备)这种情况是直连路由,属于静态路由。
  路由选择处理机的任务是根据所选定的路由选择协议(路由协议后续在做总结)构造出路由表,同时经常或定期和相邻路由器交换路由信息而不断地跟新和维护路由表。
  面试题:聊聊ARP地址解析协议
  1:首先,每个主机都会在自己的ARP缓冲区中建立一个ARP列表,以表示IP地址和MAC地址之间的对应关系。
  2:当源主机要发送数据时,首先检查ARP列表中是否有对应IP地址的目的主机的MAC地址,如果有,则直接发送数据,如果没有,就向本网段的所有主机发送ARP数据包,该数据包包括的内容有:源主机IP地址,源主机MAC地址,目的主机的IP地址。
  3:当本网络的所有主机收到该ARP数据包时,首先检查数据包中的IP地址是否是自己的IP地址,如果不是,则忽略该数据包,如果是,则首先从数据包中取出源主机的IP和MAC地址写入到ARP列表中,如果已经存在,则覆盖,然后将自己的MAC地址写入ARP响应包中,告诉源主机自己是它想要找的MAC地址。
  4:源主机收到ARP响应包后。将目的主机的IP和MAC地址写入ARP列表,并利用此信息发送数据。如果源主机一直没有收到ARP响应数据包,表示ARP查询失败。
  注意:广播发送ARP请求,单播发送ARP响应。说在最后:
  说明:其他的网络面试题这里不多说,具体请参见《Java面试宝典》网络协议面试专题,有几十道相关的面试题。

六七十年代,开汽车的司机牛在哪?为什么很多人都羡慕?六七十年代,开汽车的司机真牛,很多人都羡慕。哪时候车很少,只有大些的单位厂旷企业,部队有汽车,私人没有车,农村交通也不方便,农村农民连自行车都没有。我记得哪时候我们乡上就没有汽……4S店销售打电话催,要我到店参加活动,有大优惠。是不是真的?假的,一般是先把你骗过来。我就有过这样的经历。我本来打算今年八九月份买车的样子,我本人在上海,但是老家是湖南的,当时就在网上了解的,然后留了联系方式,加了微信号。当……深圳小产权与大亚湾的红本哪个值得?的确是的,我09年买大亚湾的3000买的,2020年九千卖出,卖了一年才卖掉,深圳2013年买的小产权32万全款,结果去年180万卖了,租金2500一个月,惠州的也只能出租10……李雪健曾三毛钱票价卖出一个亿,如今却被小鲜肉当面怒怼片酬高一个毫无名气的18线小演员,凭什么敢当众质疑李雪健的片酬?这是《开讲啦》最令人气愤的片段,一位不知名的小鲜肉怒怼老戏骨李雪健,当众炮轰他的片酬太高。可即便是面对这位……每天眨眼10000次!怎么让眼睛守住你的年龄秘密?我们每天都在不停地眨眼,平均每分钟要眨眼1020次,除去8小时睡眠,一个人一天大约要眨眼10000次,可以说眼睛是面部最忙碌的部位了,所以很多人也发现,眼睛衰老的特别快。如何预……有一些汽车评测文章究竟可以胡说到什么程度?询问五菱荣光和宾利添越到底该怎么选,非常纠结,那么今天我们就来对比一下这两款车,相信大家看完之后一定会有答案。外观五菱荣光的外观方中有圆,非常符合传统文化中的方圆之……我的进博故事大机遇从保障新手到进博老兵的蜕变第五届进博会的开幕已进入最后一个月的倒计时,我的进博故事也在完成大战略大市场大平台的分享后,开启了大机遇的篇章。进博会的参与者们将讲述他们的故事,展现进博会5年来给世界带来的积……预算15万选车推荐?suv国产的不错轿车合资迈锐宝xl速腾君威都可以吧本人15。6落地的2。0迈锐宝15万的预算,基本上避不开轩逸、速腾这些,SUV的话就是XRV、缤智以及一众国产车,……自驾游开什么车比较舒服?点关注,不迷路喜欢自驾游。其实我并不想推荐suv。实际上现在我国的高速公路以及地方的路。都是铺装路面。我们需要考虑的并不是通过性,而是在长途驾驶过程当中。怎么样才能更加的……18万左右必买的SUV有哪些?合资车:1,本田CRV落地价:1830万2,大众途岳落地价:1525万3,丰田威兰达落地价:1828万4,别克昂科威落地价:1623万5,大众探歌……20万左右合资B级车,内饰谁是你的菜?在汽车界一直有得中级车者得天下的说法,中级车是一个品牌的门面担当,只要这个品牌的中级车销量好,口碑形象佳,这个品牌的其他车型也好卖,品牌力度和形象也会跟着水涨船高。我们可……B级车20万左右买什么牌子的好些?20万左右中型轿车,按照商务、家用、操控三个表尊推荐三款合资车。商务用车推荐大众帕萨特330Tsi精英版(低配),指导价21。79万优惠后在20万以下;车身尺寸49331……
路上偶遇300万的奥迪,尾标证明了自己的身份,迈巴赫都难比上在国内的豪车,最受大家欢迎的就是BBA,而奥迪作为BBA当中的其中一个,在国内的销量也是很不错的。对于奥迪车作为大众旗下的豪华品牌,肯定有着过人的优势。然而奥迪车在同级别的车型……全新奥迪A6L实拍内饰篇贯穿式空调出风口,整体构造非常简洁中控实体按键非常少,大部分都集成在了中控双屏上档把依旧是经典的造型金属质感的一键启动按键,看上去非常高级中控台的下方的……女人过了50岁,衣品比长相重要!穿对半身裙,气质时髦还减龄对于50岁的女性来说,穿衣再也不能像年轻时候那样无所顾忌,拼的也不是自己的颜值和身材,而是穿搭所展现出的气质与时尚感。穿对了符合自身气场的服装,不仅能展示出自己的成熟女性魅力,……住泰国酒店出门前,为何有些人在枕头上放20泰铢?游客有惊喜大家都知道,如今中国的国力强了,经济上发展得很迅速,百姓的生活也好了起来,对于旅游的热情也空前高涨,人们不仅愿意在国内四处旅游。(此处已添加小程序,请到今日头条客户端查看)……从表演赛到公开赛一年间美人鱼运动在中国发生了什么12月29日,2022年中国美人鱼公开赛年度收官之战在三亚落幕。来自云南临沧的杨璐是此站比赛的黑马。骆云飞摄中新网三亚12月30日电(记者王晓斌)美人鱼在中国悄然兴起,美……2019款宝骏730CVT版正式上市,1。5TCVT,整体档在汽车市场中,每年3月和4月,可以算是买车的一大高峰期,在这期间很多厂商都会推出一些新车来促进销售,在3月1日,2019年宝骏730CVT版就正式上市了,这次共推出两款车型,售……雪佛兰赛欧一降再降,百公里油耗5。1L左右,价格4W起,值得细心的朋友应该发现,在最近这段时间当中,咱们国内汽车市场的竞争越来越激烈了,而特别是在家轿领域当中,大多数车型都是在大打价格战,很多在之前还能够卖到10w往上走的车型现如今也都……朗逸的价格入手奥迪A4L?2010款的奥迪A4L(B8),是第一批加长的A4车型,是开创了中国运动型加长轿车的先河,目前2010年的二手A4L普遍在10万元左右。前脸造型是典型的奥迪家族设计,大嘴……全新丰田卡罗拉要来了,真比思域帅,朗逸轩逸市场压力很大丰田卡罗拉自从上市以来走过了53个春夏秋冬,经历了11代车型的打造,如今第12代车型也已经开始展览,并且在最近几年卡罗拉的销量也呈直线上升,并且在全球的排名中更是争得冠军席位,……西藏这三大沙漠美景,虽常被忽略,却美得惊艳!YOUYU旅行图在很多人眼中雪山、湖泊、草原和冰川是西藏最具代表性的美景然而,来到西藏后你会看到一种来自西藏的另类美这种另类美便是雪域……一个男人会无缘无故地对一个女人好吗?世界上有男人会对一个女人无缘无故的好吗?假如女人不给男人的机会,男人是不会主动和女人闲聊的。其实大家心里都清楚,无缘无故的好,极有可能是暗藏陷阱的。假如你跟别人暧昧……您等待的别克君威GS国六版上市,降价3到4万,可以下手了哦!随着别克GL8、英朗、GL6、和昂科威等车型相继推出国六版之后,别克又退出了君威的国六版车型。2019款别克君威国六版车型当然也包括君威GS车型,那么今天我们就一起来看一下国六……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网