精华内容
下载资源
问答
  • 大概,是魔怔了吧前端要知道的网络知识一:TCP/IP 协议到底在讲什么前端要知道的网络知识二:TCP协议的三次握手和四次分手OSI和ISO容易混淆。ISO是国际标准化组织(International Standard Organization)。而OSI是ISO...
    2d7a45d0b39313ab3d33a01e8ee15f6a.png

    这几篇文章说:越深入,越觉得自己知道的少,还有很多知识需要去挖掘,也越来越感兴趣。大概,是魔怔了吧

    前端要知道的网络知识一:TCP/IP 协议到底在讲什么

    前端要知道的网络知识二:TCP协议的三次握手和四次分手

    OSIISO容易混淆。ISO是国际标准化组织(International Standard Organization)。而OSI是ISO提出的关于计算机网络的一个开放式系统互连参考模型(Open System Interconnection/Reference Model)

    要想让两台计算机进行通信,必须使它们采用相同的信息交换规则。我们把在计算机网络中用于规定信息的格式,以及如何发送和接收信息的一套规则称为网络协议(Network Protocol)或通信协议(Communication Protocol)

    为了减少网络协议设计的复杂性,网络设计者并不是设计一个单一、巨大的协议来为所有形式的通信规定完整的细节,而是采用把通信问题划分为许多个小问题,然后为每个小问题设计一个单独的协议的方法,绝大多数网络采用分层设计方法。所谓分层设计方法,就是按照信息的流动过程将网络的整体功能分解为一个个的功能层,不同机器上的同等功能层之间采用相同的协议,同一机器上的相邻功能层之间通过接口进行信息传递

    OSI模型是一个开放体系结构,它规定将网络分为7层,并规定每层的功能

    8d2101c278df705467ea31387a9f0390.png

    物理层

    物理层的主要功能是完成相邻结点之间原始比特流的传输,控制数据怎样被放置到通信介质上。物理层协议关心的典型问题是使用什么样的物理信号来表示数据“1”和“0”;一位持续的时间多长;数据传输是否可同时在两个方向上进行;最初的连接如何建立和完成,通信后连接如何终止;物理接口(插头和插座)有多少针以及各针的用处等。物理层的设计主要涉及物理层接口的机械、电气、功能和过程特性,以及物理层接连接的传输介质等问题,物理层的设计还涉及通信工程领域内的一些问题

    1、中继器(Repeater)

    中继器是连接网络线路的一种装置,常用于两个网络结点之间物理信号的双向转发工作。中继器是最简单的网络互联设备,主要完成物理层的功能,负责在两个结点的物理层上按位传递信息,完成信号的复制、调整和放大功能,以此来延长网络的长度。由于存在损耗,在线路上传输的信号功率会逐渐衰减,衰减到一定程度时将造成信号失真,因此会导致接收错误。中继器就是为解决这一问题而设计的,它完成物理线路的连接,对衰减的信号进行放大,保持与原数据相同

    双绞线理论上的最大传输距离是100m,如果超过100m,由于信号的衰减,很难保证信息传输的正确性,可以使用中继器来延长传输的距离。中继器仅适用于以太网,可将两段或两段以上(使用多个中继器)的以太网互连起来

    2、集线器(Hub)

    集线器相当于多端口的中继器,也可以把信号整形、放大后发送到所有结点上。在环型网络中只存在一个物理信号传输通道,都是通过一条传输介质来传输的,这样就存在各结点争抢信道的矛盾,传输效率较低。引入集线器这一网络设备后,每一个工作站是用它自己专用的传输介质连接到集线器的,各结点间不再只有一个传输通道,各结点发回来的信号通过集线器集中,集线器再把信号整形、放大后发送到所有结点。这样至少在上行通道上不再出现碰撞现象。但基于集线器的网络仍然是一个共享介质的局域网,这里的“共享”其实就是集线器内部总线,所以当上行通道与下行通道同时发送数据时仍然会存在信号碰撞现象。当集线器在其内部端口检测到碰撞时,产生碰撞强化信号向集线器所连接的所有端口进行传送,这时所有数据都将不能发送成功

    正因为集线器的这一不足之处,所以它不能单独应用于较大网络中(通常是与交换机等设备一起分担小部分的网络通信负荷),就像在大城市中心不能有单车道一样,因为网络越大,出现网络碰撞现象的机会就越大。也正因如此,集线器的数据传输效率是比较低的,因为它在同一时刻只能有一个方向的数据传输,也就是所谓的“半双工”方式。如果网络中要选用集线器作为单一的连接设备,那么网络的规模最好在10台以内,而且集线器带宽应为10/100Mb/s以上

    集线器除了共享带宽这一不足之处外,还有另一个方面的不足必须要考虑,那就是它的广播工作方式。因为集线器属于OSI七层模型的物理层,基本上不具有“智能”的能力,更别说“学习”功能了。它也不具备交换机所具有的MAC地址表,所以它发送数据时都是没有针对性的,而是采用广播方式发送。也就是说,当它要向某结点发送数据时,不是直接把数据发送到目的结点,而是把数据包发送到与集线器相连的所有结点

    这里引入两个概念:冲突域(CollisionDomain)和广播域(BroadcastDomain)。当两个比特在同一介质上同时传输时就会产生冲突。所谓冲突域就是指发送数据给一个单一目标所影响的范围;所谓广播域是指发送数据给一个不明确目标所影响的范围,集线器将把该广播包转发到除接收端口以外的所有端口,集线器上的所有设备属于同一个广播域

    所有通过集线器(不管有多少个集线器)互连的网络中只有一个广播域、一个冲突域。这种广播式发送数据有两方面不足:一、用户数据包向所有结点发送,很可能带来数据通信的不安全因素,一些别有用心的人很容易就能截获他人的数据包:二、由于所有数据包都是向所有结点同时发送,可能造成网络拥塞现象,降低网络执行效率

    cb704eaaad344cf22a30a83cd555288d.png

    数据链路层

    数据链路层的主要功能是如何在不可靠的物理线路上进行数据的可靠传输。数据链路层完成的是网络中相邻结点之间可靠的数据通信。为了保证数据的可靠传输,发送方把用户数据封装成帧(Frame),并按顺序传送各帧。由于物理线路的不可靠,因此发送方发出的数据帧有可能在线路上出错或丢失,从而导致接收方不能正确接收到数据帧。为了保证能让接收方对接收到的数据进行正确性判断,发送方为每个数据分块计算出CRC(循环冗余检验),并把CRC添加到帧中,这样接收方就可以通过重新计算CRC来判断数据接收的正确性。一旦接收方发现接收到的数据有错,则发送方必须重传这一帧数据。然而,相同帧的多次传送也可能使接收方收到重复的帧。比如,接收方给发送方的“确认帧”被破坏后,发送方也会重传上一帧,此时接收方就可能接收到重复帧。数据链路层必须解决由于帧的损坏、丢失和重复所带来的问题

    数据链路层要解决的另一个问题是防止高速发送方的数据把低速接收方“淹没”。因此,需要某种信息流量控制机制使发送方得知接收方当前还有多少缓存空间。为了控制的方便,流量控制常常和差错处理一同实现

    在最普遍的以太网中,数据链路层通过MAC(Media Access Control,媒体访问控制)地址负责主机之间数据的可靠传输。数据链路层的设备必须能够识别出数据链路层的地址,即MAC地址。一个设备如果能识别MAC地址,该设备至少是数据链路层以上的设备。数据链路层的网络设备主要有网卡、网桥和交换机

    1、网卡(NIC)

    网卡(Network Interface Card,NIC)也叫网络适配器,是连接计算机与网络的硬件设备。网卡的主要工作原理是整理计算机上发往网线上的数据,并将数据分解为适当大小的数据帧之后向网络上发送出去。对于网卡而言,每块网卡都有一个唯一的网络结点地址, 它是网卡生产厂家在生产时烧入ROM(Read Only Memory,只读存储芯片)中的,叫做MAC地址,且保证绝对不会重复

    网卡插在计算机或服务器扩展槽中,通过网络线(如双绞线、同轴电缆或光纤)与网络交换数据、共享资源。计算机对接收到的数据帧进行比较,如果数据帧中的目标MAC地址与本机网卡的MAC地址相同,或者目标MAC地址是广播MAC地址,即 “FFFFFFFFFFFF”,则计算机对数据帧进行处理;否则,计算机丢弃该数据帧

    可以在DOS窗口中使用“ipconfig/all”命令査看计算机网卡的MAC地址,网卡的MAC地址用十六进制表示,占用48个比特,前24个比特表示厂商,后24个比特为设备编号

    97b56b1bd8709d1411cd0de1b645a31f.png

    2、网桥(Bridge)

    网桥工作在数据链路层,用于将两个LAN连接在一起并按MAC地址转发帧。物理层的集线器可以扩展网络的规模,但所有通过集线器相连的主机属于同一个冲突域,任何时刻只能有一台主机发送数据,如果有两台主机同时发送数据就会发生冲突,导致数据发送失败。当同一个冲突域中的主机数据量非常多时,数据发生冲突的可能性大大增加,此时可以使用网桥来分隔冲突域

    网桥可以用来分隔冲突域,把一个冲突域分隔成两个冲突域,通过增加冲突域的数量,减小每个冲突域的大小,减少冲突发生的可能。连接两个网段的网桥能从一个网段向另一个网段传送完整而且正确的帧,不会传送干扰或有问题的帧

    网桥主要用于互联以太网分段,传输需在两个不同分段间传输的信息,但是阻断局部分段内的信息,因此网桥减少了网络上的通信总量

    因为网桥能检査出一些故障,所以比中继器使用更广泛。两个通过中继器相连的网段,如果由于闪电而导致其中一个网段上有电干扰,中继器会把它传送到另一个网段。相反,如果干扰发生在通过网桥连接的网段中,网桥接收到一个不正确的帧,丢弃该帧。类似地,网桥不会把从一个网段传送来的冲突信号传送到另一个网段。因此,网桥会把故障控制在一个网段中而不会影响到另一个网段

    网桥比中继器和集线器对数据包做更多的处理,延时也相对增加,一个双端口的网桥包括两个冲突域和一个广播域

    1ef8a1f4bec9c439abcf17e7a87bd3e5.png

    3、交换机(Switch)

    与网桥的工作过程类似,交换机也根据源MAC学习,根据目的MAC进行转发,按每一个数据帧中的MAC地址决策信息转发地址表

    交换机转发方式分为3种情况:情况一、交换机对己知的单播帧,只往对应的端口转发;情况二、交换机对未知的单播帧,即交换机还没有学到数据帧中的目的MAC地址,交换机泛洪数据包,即发往除接收端口以外的所有端口;情况三、交换机对组播帧和广播帧进行泛洪转发,即发往除接收端口以外的所有端口

    类似网桥,交换机提供了网络互联功能。交换机的每个端口都是一个独立的冲突域, 可以为每个工作站提供更高的带宽。因为交换机可以使用现有的电缆、中继器、集线器和工作站的网卡,不必做高层的硬件升级;交换机对工作站是透明的,这样管理开销低廉,简化了网络结点的增加、移动和网络变化的操作;并且交换机的价格与集线器所差无几,所以在当今的网络中,交换机被普遍使用

    可以简单地把交换机看成是多端口的网桥,但二者有一些区别。网桥一般只有2个端口,而一般交换机最少也有4个端口,还有24端口、48端口,甚至更多口的交换;网桥采用软件进行转发,而交换机采用专门设计的集成电路,基于硬件进行数据转发,交换机以线路速率在所有的端口并行转发信息,提供了比传统网桥高得多的操作性能,操作接近单个局域网性能,远远超过普通网桥互联网络之间的转发性能;而且,交换机的端口造价远低于网桥

    6a4400d9862d0c3be0fb3175b94f1223.png

    网络层

    网络层(Network)的主要功能是完成网络中主机间的报文传输。在广域网中,这包括产生从源端到目的端的路由,根据采用的路由协议,选择最优的路径

    网络层涉及的协议有IP、IPX等,网络层的设备必须能识别出网络层的地址,比如路由器、三层交换机等都可以根据IP地址做路径选择,它们都属于网络层设备

    路由器是一种连接多个网络或网段的网络层设备,它能将不同网络或网段之间的数据信息进行“翻译”,以使它们能够相互“读懂”对方的数据,从而构成一个更大的网络。它不是应用于同一网段的设备,而是应用于不同网段或不同网络之间的设备。路由器之所以能在不同网络之间起到“翻译”的作用,是因为它不再是一个纯硬件设备,而是支持相当丰富路由协议的软、硬结合的设备,支持的协议有RIP、OSPF、EIGRP等,这些路由协议就是用来实现连通不同网段或网络的

    路由器有两大典型功能,即数据通道功能和控制功能。数据通道功能包括转发决定、背板转发,以及输出链路调度等,一般由特定的硬件来完成;控制功能一般用软件来实现,包括与相邻路由器之间的信息交换、系统配置、系统管理等

    路由器具有判断网络地址和选择路径的功能,它能在多网络互联环境中,建立灵活的连接,可用完全不同的数据分组和介质访问方法连接各种子网。路由器属于网络层的一种互联设备,有隔离广播的作用,它的每个端口都是一个单独的广播域,也是一个单独的冲突域

    在局域网接入广域网的众多方式中,通过路由器接入互联网是最为普遍的方式。使用路由器互联网络的最大优点是:各互联子网仍保持各自独立,每个子网可以采用不同的拓扑结构、传输介质和网络协议,网络结构层次分明。通过路由器与互联网相连,则可完全屏蔽公司内部网络。有些路由器内部还集成了入侵防御和防火墙功能,因此使用路由器可以用来防御攻击,保护内部网络的安全

    传输层

    传输层(Transport Layer)是整个网络的关键部分,实现两个用户进程间端到端(End-to-End)的可靠通信,处理数据包错误、数据包次序,以及其他一些关键传输问题。向下提供通信服务的最高层,弥补通信子网的差异和不足,向上是用户功能的最低层。与数据链路层有相似之处,不同的地方在于前者是端到端的,后者是点到点的,而且比数据链路层协议复杂得多

    传输层的主要功能有:提供建立、维护和拆除传输层连接,向网络层提供合适的服务,提供端到端的错误恢复和流量控制,向会话层提供独立于网络层的传送服务和可靠的透明数据传输

    传输层相关的协议有TCP (Transmission Control Protocol,传输控制协议)、UDP (User Datagram Protocol,用户数据报协议),它们涉及服务使用的端口号,主机根据端口号识别服务(常用的WWW服务端口号是80, Telnet服务端口号是23等),区分会话(源IP、源端口号、目标IP、目标端口号,四者共同唯一标识一个会话)

    会话层

    会话层(Session Layer)允许不同机器上的用户之间建立会话关系,会话层提供的服务之一是管理对话控制。会话层允许信息同时双向传输,或任一时刻只能单向传输。如果属于后者,类似于物理信道上的半双工模式,会话层将记录此时该轮到哪一方。一种与对话控制有关的服务是令牌管理,有些协议保证双方不能同时进行同样的操作,这一点很重要。为了管理这些活动,会话层提供了令牌,令牌可以在会话双方之间移动,只有持有令牌的一方可以执行某种关键性操作

    另一种会话层服务是同步,如果在平均每小时出现一次大故障的网络上,两台机器间要进行一次两小时的文件传输,想想会出现什么样的问题?每一次传输中途失败后,都不得不重新传送这个文件。当网络再次出现大故障时,可能又会半途而废。为了解决这个问题,会话层提供了一种方法,即在数据中插入同步点。每次网络出现故障后,仅仅重传最后一个同步点以后的数据

    表示层

    表示层(Presentation Layer)完成某些特定的功能,对这些功能人们常常希望找到普遍的解决办法,而不必由每个用户自己来实现。值得一提的是,表示层以下各层只关心从源主机到目标主机可靠地传送比特,而表示层关心的是所传送的信息的语法和语义

    表示层服务的一个典型例子是用一种大家一致选定的标准方法对数据进行编码

    网络上计算机可能采用不同的数据表示,所以需要在数据传输时进行数据格式的转换。例如在不同的机器上常用不同的代码来表示字符串(ASCII和EBCDIC)、整型数(二进制反码或补码),以及机器字的不同字节顺序等。为了让采用不同数据表示法的计算机之间能够相互通信并交换数据,在通信过程中使用抽象的数据结构来表示传送的数据,而在机器内部仍然采用各自的标准编码。管理这些抽象数据结构,并在发送方将机器的内部编码转换为适合网上传输的传送语法,以及在接收方做相反的转换等,都是由表示层来完成的

    此外,表示层还涉及数据压缩和解压、数据加密和解密等工作

    应用层

    联网的目的在于支持运行于不同计算机上的进程进行通信,而这些进程则是为用户完成不同任务而设计的。可能的应用是多方面的,不受网络结构的限制。应用层(Application Layer)包含大量人们普遍需要的协议,如HTTP(Hyper text Transfer Protocol,超文本传输协议),该应用默认使用的是TCP的80端口;FTP(File Transfer Protocol, 文件传输协议),多用于因特网上的文件传输,该应用管理端口默认使用的是TCP的21号端口;SMTP(Simple Mail Transfer Protocol,简单邮件传输协议),用于邮件的发送,该应用默认使用的是TCP的25号端口;POP3(Post Office Protocol Version 3,邮局协议版本3),用于邮件的接收,该应用默认使用的是TCP的110号端口;DNS(Domain Name System,域名系统),用于因特网上域名的解析;Telnet(远程登录)是一种字符模式的终端服务,它可以使用户通过网络进入远程主机或网络设备,然后对远程主机或网络设备进行操作,这种连通可以发生在局域网里面,也可以通过互联网进行,该应用默认使用的是TCP的23号端口

    对于需要通信的不同应用来说,应用层的协议都是必需的。比如,当某个用户想要获得远程计算机上的一个文件拷贝时,他要向本机的文件传输软件发出请求,这个软件与远程计算机上的文件传输进程通过文件传输协议进行通信,这个协议主要处理文件名、用户许可状态和其他请求细节的通信。远程计算机上的文件传输进程使用其他特征来传输文件内容

    看到这里了,顺便在补一下四层结构的TCP/IP。

    TCP/IP是目前最成功、使用最频繁的互联网协议。TCP/IP参考模型是四层结构,分别是网络访问层(NetworkAccess),包括OSI模型的物理层和数据链路层,在这一层可以看到数据帧的源和目的MAC地址;网际层(Internet),相当于OSI模型中的网络层,在这一层可以看到数据包的源和目的IP地址;传输层(Transport),和OSI模型中的传输层一致,在这一层可以看到数据分段源和目的的端口,以及所使用的协议;应用层(Application),包括OSI模型的上三层,即会话层、表示层和应用层

    ISO/OSI参考模型是在其协议被开发之前设计出来的。这意味着ISO/OSI模型并不是基于某个特定的协议集而设计的,因而它更具有通用性。但另一方面,也意味着ISO/OSI模型在协议实现方面存在某些不足。而TCP/IP模型正好相反。先有协议,模型只是现有协议的描述,因而协议与模型非常吻合。问题在于TCP/IP模型不适合其他协议栈。因此,它在描述其他非TCP/IP网络时用处不大

    1c9bb74f8d1f3bd90f14d3647cd781e7.png

    忽然怀念大学时候的网络课本,似乎也是这样密密麻麻全是文字,但是基础知识很扎实,当时觉得特别无聊和枯燥,学的也是皮毛。如今书到用时方恨少,还得自己抽时间自虐式学习

    展开全文
  • 前端面试每日3+1题,以面试题来驱动学习,每天进步一点! 让努力成为一种习惯,让奋斗成为一种享受! 相信 坚持 的力量!!!学习不打烊,充电加油只为遇到更好的自己,365天无节假日,每天早上5点纯手工发布面试题...

    944ee5ecc27f292d68c5854aa6190e1c.png
    《论语》,曾子曰:“吾日三省吾身”(我每天多次反省自己)。
    前端面试每日3+1题,以面试题来驱动学习,每天进步一点!
    让努力成为一种习惯,让奋斗成为一种享受! 相信 坚持 的力量!!!
    • 学习不打烊,充电加油只为遇到更好的自己,365天无节假日,每天早上5点纯手工发布面试题(死磕自己,愉悦大家)。
    • 希望大家在这浮夸的前端圈里,保持冷静,坚持每天花20分钟来学习与思考。
    • 在这千变万化,类库层出不穷的前端,建议大家不要等到找工作时,才狂刷题,提倡每日学习!(不忘初心,html、css、javascript才是基石!)
    • 欢迎大家到Issues交流,鼓励PR,感谢Star,大家有啥好的建议可以加我微信一起交流讨论! 希望大家每日去学习与思考,这才达到来这里的目的!!!(不要为了谁而来,要为自己而来!)
    毕竟一个人的能力有限,集体的力量才是无限的!欢迎大家一起来贡献题目,为前端面试每日3+1开源社区贡献力量!点击 我也要出题 贡献你的题目吧,让大家一起来挑战你的题目!

    项目地址:

    haizlin/fe-interviewgithub.com
    71efd4acb51db8d2fba42373e7ca90c7.png

    【推荐】欢迎跟 jsliang 一起折腾前端,系统整理前端知识,目前正在折腾 LeetCode,打算打通算法与数据结构的任督二脉。

    LiangJunrong/document-librarygithub.com
    510c3c7a4129e1af56da12492222c1e0.png

    html

    • html的标签属性bgcolor支持简写吗?如:bgcolor="#F00"
    • 举例说明ul、dl、ol三个标签的区别?
    • html的a标签属性rel="noopener"有什么作用?
    • 怎么使用HTML5实现录音的功能?
    • 主框架如何与iframe通信?如何解决跨域?
    • 有哪些方法可以将图片和文字显示在同一行上呢?
    • png8和png24有什么区别呢?

    css

    • 你最希望css拥有什么样的特性?(目前没有的)
    • 解释下为什么css的reset不建议直接这么写:*{ margin:0; padding:0;}?
    • 为什么说不提倡用1px的小尺寸图片做背景平铺?
    • 举例说明css有哪些简写的属性和属性值?
    • 请说说颜色中#F00的每一位分别表示什么?为什么会有三位和六位的表示呢?
    • 请使用css写一个多级的下拉菜单
    • 用css给一个元素加边框有哪些方法?

    js

    • 请使用纯js实现一个横向或纵向的无缝滚动效果
    • 请写一个获取颜色的正则
    • 请用js实现一个简单的小区楼的电梯运行程序
    • 举例说明atob和btoa的用法
    • 用原生js实现类似getElementsByClassName的方法,不能使用querySelectorAll
    • 写一个方法将html页面生成为图片
    • stopPropagation()和preventDefault()这两个方法有什么区别?

    软技能

    • 你有给自己制定过计划吗?怎么去落实的?
    • 在工作中,你对开发环境有什么要求吗?
    • 你有在linux下编程过吗?有使用过mac系统吗?说下它和win系统的区别?
    • 你有用记事本来写过代码吗?说说你的感受!
    • 强类型和弱类型语言的区别是什么?
    • 你觉得该不该写注释?你写注释的原则是什么?
    • 你有听说过“分词”吗?说说你对它的理解

    全部

    所有

    交流讨论

    欢迎大家前来讨论,如果觉得对你的学习有一定的帮助,欢迎点个Star, 同时欢迎加入 “前端面试每日3+1” 微信群(扫个人微信号邀请入群)相互交流。

    项目地址:

    前端面试每日3+1github.com
    71efd4acb51db8d2fba42373e7ca90c7.png
    展开全文
  • 刘邦找了三个人,一统天下;...01.第一种方法:IPV6enable可以看到自动产生了一个ipv6地址,这个是Link-local地址,仅在本网段有效,有点类似于IPV4的mac地址。这个地址用于OSPF、EIGRP等路由协议的更新源和路...

    19be47d4c6bce3c051813110433d674d.png

    刘邦找了三个人,一统天下;

    唐僧找了三个人,取得真经;

    你去找了三个人,输800块;

    你们找了三个人,排位5连败;

    好了,说一个小故事开心一下!

    今天就让琪麟老师给大家讲一下关于IPV6这个知识点!!!

    01.第一种方法:IPV6enable

    080f81a869bd51f4829433b2a1d22043.png

    2d3c05bfe8fcc785946dd6ad85f8d65f.png

    可以看到自动产生了一个ipv6地址,这个是Link-local地址,仅在本网段有效,有点类似于IPV4的mac地址。这个地址用于OSPF、EIGRP等路由协议的更新源和路由下一跳。

    Link-local地址的得来:

    格式为FE80::/10,即最高10位为“1111 1110 10”,最后64bits作为接口标识。因此该地址掩码被固定为/64,不可修改。后面64bit使用EUI-64机制得到。

    EUI-64机制:

    1.提取该接口的MAC地址,如果该接口没有MAC地址则借用本地ID号最小的以太口的MAC地址,例如:AABB.CC00.5000

    2.将MAC地址中的“.”符换成“:”,并且在MAC地址中间插入16bits固定字符 “FF:FE”,得到 AABB:CCFF:FE00:5000

    3.从最高位往后数第七位取反(二进制),即原来是”0”就改为”1”,原来是”1”就改为”0”,得到A8BB:CCFF:FE00:5000的接口标识符。

    02.第二种方法:手动配置

    a2de0128db0eb5bbfa15ebd026d6b779.png

    ad9e7c5c70c1152db0306352c36b1096.png

    93f44ec4d5592e5afa2cb88418ed6ed7.png

    可以看到接口有一个Link-local地址,一个手动配置的AGUA(Aggregatable Global Unicast Addresses,全球可聚合单播)地址,AGUA地址就类似于IPV4的公网地址。

    03.第三种方法:EUI-64机制得到

    129cc6e83fc0812e411de493a78a1421.png

    71d815bad8968ef3ce36a8b61c95cbeb.png

    e293f29d11946ac8fd8720784cfe9552.png

    可以看到接口又产生一个AGUA地址,认为定义前面64bit,后面64bit直接复制link-local的后64bit。

    04.第四种方法:General-prefix(CCIE考试的时候经常用这种迷惑考生)

    357e32be8b43a101f057517017b9c5c9.png

    c83bc472d1770dcc640259ef26145113.png

    手动定义一个名字叫CCIE,这个名字代表了2019:2020,也就是整个IPV6地址的前面32bit,后面自己手动定义。

    05.第五种方法:通过NDP消息自动获取

    NDP(Neighbor Discovery Protocol,邻居发现协议)

    NDP里面其中有2对消息,对于考CCIE的同学,必须知晓。

    第一对:NS(邻居请求) NA(邻居通告)

    作用有两个:

    一是完成地质冲突检测,类似于IPV4的GARP协议;

    二是完成三层IPV6地址和二层MAC地址的映射,类似于IPV4的ARP协议。

    第二对:RS(路由器请求) RA(路由器通告)

    作用是为了完成IPV6地址的自动获取。

    看RS RA消息的实验:RD的e0/0接口自动获取IPV6地址,然后就可以抓到RD通过e0/0接口发出来的RS消息(类型133),目的是请求IPV6地址。

    94c4e4fbc8bacc6ad360683e03cd0529.png

    bca0fd61651265b508ee214faa0378ad.png

    然后再RB上开启IPV6单播路由功能,把RB变成一台开启IPV6单臂路由功能的路由器:

    648b35f787de17463a7802ebac61fb01.png

    可以抓到RB发出来的RA消息(类似134)

    a8ffcf9ae2145bf660345d41a7e05d33.png

    可以看到RB把自己E0/0接口所有的网络前缀发了出去。然后RD的e0/0获取到了IPV6地址。

    3c3b0db33b74dcaefd5307e5e70cc50a.png

    06.第六种方法:DHCPv6(CCIE考试内容)

    RB作为DHCPV6服务器,让RD自动获取IPV6地址。配置如下:

    36151e22a65027c8d837b6531f78b4d2.png

    51e641a571fb9f13ca7ce9f7b3d69b84.png

    然后让RD自动获取:

    53c5cfc17c6bce8c449980e27b571b1f.png

    d3575f3d0d3a2e393136bcbd09fdf59c.png

    273f3f63fa2d2c1ad39c3205564e09f5.png

    第一已经成功获取到,但是路由表里面没有默认路由,也就是没有网关。

    fbf20a85aa1b0507df383ccf0571a8fc.png

    接下来让RD通过NDP协议自动获取一条默认路由。

    12269f898278546495c63867e6b413cd.png

    4b34b2c3e28121e316b05206e98e5ff9.png

    我完事了,你们呢?

    74cbd3a5fe0c29d9e8b96735d3ab53ec.png

    原文来自公众号“思科CCIE训练营”定期更新网络技术干货文章,学习资料视频教程+文档PPT+工具软件包及安装使用教程免费领,欢迎关注,一起吹皮,一起飞!

    10年经验 康sir - 8天学会实战型CCNA课程/CCNP/CCIEke.qq.com
    a54a77e280079306d8c03f2e52c74ab1.png

    基础

    展开全文
  • IP 地址可以和 MAC 地址进行配对。IP 地址可变换,但 MAC 地址基本上不会更改。 确保可靠性的TCP协议 握手过程中使用了 TCP 的标志(flag) —— SYN(synchronize) 和 ACK(acknowledgement)。 若在握手过程中某个阶段...

    http协议

    http协议:Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网服务器传输超文本到本地浏览器的传送协议;

    http:是基于TCP/IP协议通信来传递数据它不涉及数据包(packet)传输,主要规定了客户端和服务器之间的通信格式,默认使用80端口。

    http协议是传输协议,属于应用层协议,网络四层模型中,传输层负责数据包的发送和网络节点中数据包的流量控制传输等,可以想象成http协议就是快递的包装盒,每一个快递实物都是一个应用程序,http负责应用程序之间数据包装,快递员相当于传输层的tcp协议等,来发送每一个快递。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。通过HTTP或者HTTPS协议请求的资源由统一资源标识符(Uniform Resource Identifiers,URI)来标识。

    5f114a6979ced1079601bf7fe074d498.png

    HTTP关系密切的协议:IP,TCP和DNS

    • 负责传输的IP协议

      • 是 IP 地址和 MAC 地址(Media Access Control Address)

      • IP 地址指明了节点被分配到的地址,MAC 地址是指网卡所属的固定 地址。IP 地址可以和 MAC 地址进行配对。IP 地址可变换,但 MAC 地址基本上不会更改。

    • 确保可靠性的TCP协议

      • 握手过程中使用了 TCP 的标志(flag) —— SYN(synchronize) 和 ACK(acknowledgement)。

      • 若在握手过程中某个阶段莫名中断,TCP 协议会再次以相同的顺序发 送相同的数据包。

        da5f31dc343e4562add9f10d94601af8.png

    三次握手

    b0db97e34c15eae4ef37c06e915c67b8.png

    四次挥手

    • TCP 位于传输层,提供可靠的字节流服务 ( 可靠、面向连接、字节流、传输层的服务 )

    • TCP 协议采用了三次握手 (three-way handshaking)策略

    负责域名解析的DNS服务

    DNS(Domain Name System)服务是和 HTTP 协议一样位于应用层的 协议。

    • 它提供域名到 IP 地址之间的解析服务

    • DNS 协议提供通过域名 查找 IP 地址,或逆向从 IP 地址反查域名的服务。

    HTTP特性

    • HTTP是无状态的

      • HTTP 协议自 身不对请求和响应之间的通信状态进行保存。

      • HTTP 这个级别,协议对于发送过的请求或响应都不做持久化处理

        为了 更快地处理大量事务,确保协议的可伸缩性

        HTTP/1.1 虽然是无状态协议,但为了实现期望的保持状态功能,于 是引入了 Cookie 技术

    • HTTP的请求方式

      持久连接节省通信量

    • ee21c8f1128019e62fd0269bda8619ad.png

      • TRACE 方法是让 Web 服务器端将之前的请求通信环回给客户端的方 法。

      • HEAD 方法和 GET 方法一样,只是不返回报文主体部分。用于确认 URI 的有效性及资源更新的日期时间等。

      • FTP 协议的文件上传一样,要求在请 求报文的主体中包含文件内容,然后保存到请求 URI 指定的位置

      • 鉴于 HTTP/1.1 的 PUT 方法自身不带验证机制,任何人都可以 上传文件 , 存在安全性问题,因此一般的 Web 网站不使用该方法。

      • 配合 Web 应用程序的验证机制,或架构设计采用 REST(REpresentational State Transfer,表征状态转移)标准的同类 Web 网站,就可能会开放使用 PUT 方法。

      • POST 方法用来传输实体的主体

      • GET 方法也可以传输实体的主体,但一般不用 GET 方法进行 传输,而是用 POST 方法。

      • 虽说 POST 的功能与 GET 很相似,但 POST 的主要目的并不是获取响应的主体内容

      • GET 方法用来请求访问已被 URI 识别的资源。指定的资源经服务器 端解析后返回响应内容。

      • OPTIONS 方法用来查询针对请求 URI 指定的资源支持的方法。

      • OPTIONS:询问支持的方法

      • GET :获取资源

      • POST:传输实体主体  

      • PUT:传输文件  

      • HEAD:获得报文首部  

      • DELETE:删除文件  

      • TRACE:追踪路径  

      • CONNECT:要求用隧道协议连接代理  

    • HTTP/1.1和一部分的HTTP/1.0想出了持久连接(HTTP Persistent Connections, 也称为HTTP keep-alive或 HTTP connection reuse)的方法。持久连接的特点是,只要任意一端没有明确提出断开连接,则保持TCP连接状态。

      在 HTTP/1.1 中,所有的连接默认都是持久连接,但在 HTTP/1.0 内并 未标准化。

    • 管线化

      • 持久连接使得多数请求以管线化(pipelining)方式发送成为可能。从 前发送请求后需等待并收到响应,才能发送下一个请求。管线化技术 出现后,不用等待响应亦可直接发送下一个请求。做到同时并行发送多个请求,而不需要一个接一个地等待 响应了。

      • 与挨个连接相比,用持久连接可以让请求更快结束。而管线化技术则比持久连接还 要快。请求数越多,时间差就越明显

    HTTP状态码

    • 示客户端 HTTP 请求的返回结果

    • 标记服务器端 的处理是否正常

    • 通知出现的错误等工作

    类别原因短语
    1XXIformational(信息性状态码)接收的请求正在处理
    2XXSuccess(成功状态码)请求正常处理完毕
    3XXRedirection(重定向状态码)需要进行附加操作以完成请求
    4XXClient Error(客户端错误状态码)服务器无法处理请求
    5XXServer Error(服务器错误状态码)服务器处理请求错误
    14个具有代表性的状态码
    2XX 成功
    • 200 OK

      • 表示从客户端发来的请求在服务器端被正常处理了

    • 204 No Content

      • 该状态码代表服务器接收的请求已成功处理,但在返回的响应报文中 不含实体的主体部分

      • 也不允许返回任何实体的主体

      • 一般在只需要从客户端往服务器发送信息,而对客户端不需要发送新信息内容的情况下使用

    • 206 Partial Content

      • 该状态码表示客户端进行了范围请求,而服务器成功执行了这部分的 GET 请求。

      • 响应报文中包含由 Content-Range 指定范围的实体内容

    3XX 重定向
    • 301 Moved Permanently(永久性重定向)

      • 该状态码表示请求的资源已被分配了新的URI,以后应使用资源现在所指的URI

      • 已经把资源对应的URI保存为书签了,这时应该按Location首部字段提示的URI重新保存

    • 302 Found(临时性重定向)

      • 该状态码表示请求的资源已被分配了新的URI,希望用户(本次)能使用新的URI访问

      • 和301Moved Permanently状态码相似,但302状态码代表的资源不是被永久移动,只是临时性质的。

      • 已移动的资源对应的URI将来还有可能发生改变。

    • 303 See Other

      • 该状态码表示由于请求对应的资源存在着另一个URI,应使用GET方法定向获取请求的资源

      • 303状态码和302Found状态码有着相同的功能,但303状态码明确表示客户端应当采用GET方法获取资源,这点与302状态码有区别

    • 304 Not Modified

      • 该状态码表示客户端发送附带条件的请求时,服务器端允许请求访问资源,但未满足条件的情况。304状态码返回时,不包含任何响应的主体部分。304虽然被划分在3XX类别中,但是和重定向没有关系

    • 307 Temporary Redirect(临时重定向)

      • 302 标准  禁止 POST 变换成 GET , 但实际使用时大家并不遵守

      • 该状态码与 302 Found 有着相同的含义

      • 307 会遵照浏览器标准,不会从 POST 变成 GET。

    4XX 客户端错误

    4XX 的响应结果表明客户端是发生错误的原因所在

    • 400 Bad Request

      • 请求报文中存在语法错误

    • 401 Unauthorized

      • 发送请求需要有通过HTTP认证(BASIC认证,DIGEST认证)的认证信息。另外若之前已经进行过1次请求,则表示用户认证失败。

      • 返回含有401的响应必须包含一个适用于被请求资源的WWW_Authenticate首部用以咨询(challenge)用户信息。当浏览器初次接收到401响应,会弹出认证用的对话窗口

    • 403 Forbidden

      • 请求资源的访问被服务器拒绝了,服务器端没有必要给出拒绝的详细理由,但如果想做说明的话,可以在实体的主题部分对原因进行描述,这样就能让用户看到了。

      • 未获得文件系统的访问权限,访问权限出现某些问题(从未授权的发送源IP地址试图访问)等列举的情况都可以是发生403的原因

    • 404 Not Found

      • 该状态码表明服务器上无法找到请求资源,除此之外,也可以在服务器端拒绝请求且不想说明理由时使用

    5XX 服务器错误
    • 500 Internal Server Error

      • 服务器端在执行请求时发生了错误,也有可能是Web应用存在的bug或某些临时的故障

    • 503 Service Unavailable

      • 状态码和状况不一致

      • 不少返回的状态码响应都是错误的,但是用户可能察觉不到这点。比如Web应用程序内部发生错误,状态码依然返回200OK,这种情况也经常遇到

      • 服务器暂时处于超负载或正在进行停机维护,现在无法处理请求。如果事先得知解除以上状况需要的时间,最好写入RetryAfter首部字段再返回给客户端

    HTTP和Web服务器

    HTTP首部字段

    当 HTTP 报文首部中出现了两个或两个以上具有相同首部字段名时 会怎么样?这种情况在规范内尚未明确,根据浏览器内部处理逻辑 的不同,结果可能并不一致。有些浏览器会优先处理第一次出现的 首部字段,而有些则会优先处理最后出现的首部字段。

    1. 通用首部字段

      请求报文和响应报文两方都会使用的首部

      首部字段名说明
      Cache-Control控制缓存行为
      Connection逐跳首部,连接管理
      Date创建报文的日期时间
      Pragma报文指令
      Trailer报文末端的首部一览
      Transfer-Encoding指定报文主题的传输编码方式
      Upgrade升级为其他协议
      Via代理服务器的相关信息
      Warning错误通知
    2. 请求首部字段

      从客户端向服务器端发送请求报文时使用的首部。补充了请求的附加 内容、客户端信息、响应内容相关优先级等信息。

      首部字段名称说明
      Accept用户代理可处理的媒体类型
      Accept-Charset优先的字符集
      Accept-Encoding优先的内容编码
      Accept-Language优先的语言(自然语言)
      AuthorizationWeb认证信息
      Expect期待服务器的特定行为
      From用户的电子邮箱地址
      Host请求资源所在服务器
      If-Match比较实体标记(ETag)
      If-Modified-Since比较资源的更新时间
      If-None-Match比较实体标记(与 If-Match 相反)
      If-Range资源未更新时发送实体 Byte 的范围请求
      If-Unmodified-Since比较资源的更新时间(与If-Modified-Since相反)
      Max-Forwards最大传输逐跳数
      Proxy-Authorization代理服务器要求客户端的认证信息
      Range实体的字节范围请求
      Referer对请求中 URI 的原始获取方
      TE传输编码的优先级
      User-AgentHTTP 客户端程序的信息
    3. 响应首部字段

      从服务器端向客户端返回响应报文时使用的首部。补充了响应的附加 内容,也会要求客户端附加额外的内容信息。

      首部字段名说明
      Allow资源可支持的HTTP方法
      Content-Encoding实体主体适用的编码方式
      Content-Language实体主体的自然语言
      Content-Length实体主体的大小(单位:字节)
      Content-Location替代对应资源的URI
      Content-MD5实体主体的报文摘要
      Content-Range实体主体的位置范围
      Content-Type实体主体的媒体类型
      Expires实体主体过期的日期时间
      Last-Modified资源的最后修改日期时间
      Accept-Ranges是否接受字节范围请求
      Age推算资源创建经过时间
      ETag资源的匹配信息
      Location令客户端重定向至指定URI
      Proxy-Authenticate代理服务器对客户端的认证信息
      Retry-After对再次发起请求的时机要求
      ServerHTTP服务器的安装信息
      Vary代理服务器缓存的管理信息
      WWW-Authenticate服务器对客户端的认证信息
    4. 实体首部字段

      针对请求报文和响应报文的实体部分使用的首部。补充了资源内容更 新时间等与实体有关的信息。

    HTTP的缺点

    • 通信使用明文(不加密),内容可能会被窃听

    • 不验证通信方的身份,因此有可能遭遇伪装

    • 无法证明报文的完整性,所以有可能已遭篡改

      SSL(Secure Socket Layer,安全套接层)或 TLS(Transport Layer Security,安全层传输协议)

    不确认请求方隐患
    • 无法确定请求发送至目标的 Web 服务器是否是按真实意 图返回响应的那台服务器。有可能是已伪装的 Web 服务器。

    • 无法确定响应返回到的客户端是否是按真实意图接收响 应的那个客户端。有可能是已伪装的客户端

    • 无法确定正在通信的对方是否具备访问权限。因为某些 Web 服务器上保存着重要的信息,只想发给特定用户通 信的权限。 

    • 无法判定请求是来自何方、出自谁手。 

    • 即使是无意义的请求也会照单全收。无法阻止海量请求 下的 DoS 攻击(Denial of Service,拒绝服务攻击)。

    HTTP+ 加密 + 认证 + 完整性保护 =HTTPS
    展开全文
  • $key = "去百度开放平台获取(免费的)"; if($lat>0 && $lon>0){ $lbsUrl = "http://api.map.baidu.com/geocoder/v2/?ak={$key}&coordtype=wgs84ll&location=".$lat.",".$lon."&output=json&pois=1"; $curlRes = file...
  • java获取IP地址和MAC地址方式 前端和后台都可以获取 ip获取方式比较简单,就不做分析了,主要说mac的获取 前端获取的方式与局限性:尝试好几种方式,这种是最易实现、最简单的方式,确实能...//js获取mac地址,需要在i
  • PHP是获取客户端的所有信息都是依赖于HTTP协议头信息或者是由客户端主动传送信息,否则是无法自动获取...对于IE来说可以通过ActiveX来获取,但是对于用户来说是很不友好的,需要用户允许它获取MAC地址信息。或者是J...
  • 一款前端同学也可以参与开发的数据库客户端。Beekeeper Studio是基于electron + vue 开发的,所以它可以支持Mac、Windows、Linux。此项目是用来学习使用electron开发桌面程序的绝佳实例。安 装Mac/Win...
  • 前言`node.js` 的出现,使得用前端语法(javascript)开发后台服务成为可能,越来越多的前端因此因此接触后端,甚至转向全栈发展。后端开发少不了数据库的操作。`MongoDB` 是一个基于分布式文件存储的开源数据库系统。...
  • Vue使用Electron获取电脑MAC地址

    千次阅读 2020-04-20 17:19:11
    需求背景:前端使用Vue开发的PC管理端,Boss提出需要进行电脑机器码认证,咨询了好多Vue的小伙伴
  • 前端JS获取客户端信息有两大种方法,一是通过ActiveX控件,二是通过第三方。 如果项目的用户群不明确,用户可能会用各种方式浏览网页,这个时候不推荐使用ActiveX控件;如果做的是企业级项目,目标用户明确,比如...
  • 一、需求由于最近负责电脑资产清查的工作,有100多台分散的电脑需要获得用户名、MAC地址、硬盘序列号、硬盘品牌一般方法:(1)查看系统用户名(2) 获取MAC地址 windos命令行使用ipconfig /all(3)使用Hdtune软件...
  • 经过分析之后得出结论,是因为GitHub的一些域名的DNS解析被污染造成的DNS解析过程无法通过域名获取正确的IP地址,也就造成在安装的时候失败,失败的原因是没有初始化引起的。 解决步骤如下所示: 1.打开链接 ...
  • 本章分享的所有插件安装方法全部是从Eclipse的Install New Software进入。另外所分享的安装方法也都是在Mac OS下进行的,当然...在Work with中输入插件地址后,eclipse会自动获取相关插件资源1、Eclipse安装Ap...
  • 前端开源库-getmac

    2019-08-30 03:05:17
    前端开源库-getmacget mac,获取当前机器的mac地址
  • 网卡MAC地址、CPUID、硬盘序列号是最常用的三种硬件机器码。CPUID:最不靠谱的机器码先从CPUID说起,自从奔腾3处理器由于序列号唯一容易被追踪而引发泄露隐私的质疑后,英特尔从奔腾4开始就取消了唯...
  • 1.引入脚本import { getLodop } from '/lodopFuncs'...2.获取MAC地址LODOP = getLodop() LODOP.GET_SYSTEM_INFO('NetworkAdapter.1.PhysicalAddress') let that = this LODOP.On_Return = function (TaskId, Value) ...
  • 通过request去分析ip、ua、mac地址都有各种缺点导致不准确。Fingerprintjs2 是通过纯前端原生js实现的浏览器指纹采集器,通过获取浏览器中所有能获取到的信息(部分通过base64转成String),最后生成出md5,用于该用户...
  • 带你手写微前端框架

    2020-12-28 06:04:01
    Mac、乌班图及其他linux发行版。不适用于windows,如果想在windows下执行文章中的命令请使用git命令窗口(需安装git)或linux子系统(win10以下不支持)。 一、初始化工程 <p>1、初始化工程目录 <pre><code>...
  • 主机探测: 获取系统版本(SN、版本、MAC地址) 主机关系探测: 识别宿主主机和虚拟机的关系 1、主机存货探测模块视图层的实现 Nmap探测工具 Nmap,也就是Network Mapper,最早是Linux下的网络扫描和嗅探工具包。是一...
  • 问题描述:由于最近项目需要使用Mac地址与注册码进行加密处理,但是又因为Web程序的局限性不能获取客户端电脑系统信息,当然IE浏览器有一个activex控件他是可以通过Js在前端代码中直接获取的,局限性太小放弃。...
  • 转到以下地址: 在计算机上选择一个放置项目的位置。 前任。 c:\ DevProjects(Windows) 前任。 / Users / user / DevProjects / UWGB / react-hackathon(Mac) 在该目录中(从终端)执行以下命令。 git ...
  • 网络环路处理

    2021-01-16 12:10:41
    故障现象:前端PC客户端无法获取IP地址。 处理: 登录核心交换机mac地址表,出现同一个mac地址属于两个vlan。 确认业务所属vlan后,初步判断为网络环路造成终端mac地址属于另外一个vlan。 根据mac地址端口寻找网络...
  • wifi商业大数据平台

    2018-04-18 12:50:55
    本产品是中国软件杯A组赛题,采用探针获取手机mac地址。采用java语言,利用SSM框架进行开发,前端采用了bootstrap框架,同时用maven作为项目管理工具。
  • 自己写的C/S小工具,基于WPF,通过配置访问...工具还包含调用新中新身份证读卡器、获取电脑分辨率、获取电脑MAC地址前端JS调用就行。调用方法:window.external.方法名(),比如身份证window.external.ReadIdCard()。
  • 时间来到2021年,大前端是个热门获取,H5框架也是层出不穷,越来越多的H5 APP打包软件出现。 这些打包软件打包,生成ios应用,都需要ios证书和描述文件。 苹果官方提供的方法,申请证书是需要mac电脑的,这里我不...
  • MUI+VUE开发基于H5移动APP的定位问题

    千次阅读 2018-05-13 16:25:02
    从今年三月中旬到现在接触Mui+Vue... 功能的大致需求是:基于Mui+Vue实现员工考勤功能,需通过员工位置做为打卡条件(本来也可通过员工手机当前的WiFi来控制打卡的但获取WiFi的MAC地址涉及到Android与ios底层学习成...
  • 后端的作用是为前端提供上传所需要的凭证 准备 注册七牛开发者帐号 登录七牛开发者后台,获取AccessKey 和 Secret Key 创建对象存储的存储空间 地址:https://portal.qiniu.com/user/key sdk安装 npm install qiniu...
  • IDCF黑客马拉松示例项目TailwindTraders网站前端项目部署文档 本文档提供部署说明,请严格按照说明进行部署。 部署合理条件 请确保你已经获取了以下信息和环境,杀死完成此项目的部署 基础环境需求 微软账号:微软...
  • 公司有个微信端项目,需要前端在手机上随时查看网页,于是乎用Node搭建了一个本地服务器环境,把网页地址发到QQ并用手机打开来查看。 首先去nodeJs官网下载最新版nodeJs https://nodejs.org/en/ 安装成功后win+r打开...

空空如也

空空如也

1 2 3
收藏数 46
精华内容 18
关键字:

前端获取mac地址