zoukankan      html  css  js  c++  java
  • 交换机在局域网内的日常工作

    动态主机配置协议(Dynamic Host Configuration Protocol)

    • 每一台新接入的机 器都通过 DHCP 协议,来这个共享的 IP 地址里申请,然后自动配置好就可以了。等人走了,或 者用完了,还回去,这样其他的机器也能用。

    • 解析DHCP工作方式:

      1. 一台新机器加入一个网络的时候,,只知道自己的 MAC 地址。 怎么办?先吼一句,我来啦,有人吗?这时候的沟通基本靠“吼”。这一步,我们称为DHCP Discover。 新来的机器使用 IP 地址 0.0.0.0 发送了一个广播包,目的 IP 地址为 255.255.255.255。在这个广播包里面,新人大声喊:我是新来的(Boot request),我的 MAC 地址是这个,我 还没有 IP,谁能给租给我个 IP 地址!

      包的格式:

    1. DHCP Server 仍然使用广播地址作为目的地址,因为,此时请求分配 IP 的新人还没有自己的 IP。DHCP Server 回复说,我分配了一个可用的 IP 给你,你看如何?除此之外,服务器还发送 了子网掩码、网关和 IP 地址租用期等信息。

    2. 如果有多个 DHCP Server,这台新机器会收到多 个 IP 地址,它会选择其中一个 DHCP Offer,一般是最先到达的那个,并且会向网络发送一个 DHCP Request 广播数据包,包中包含客户端的 MAC 地址、接受的租约中的 IP 地址、提供此租约的 DHCP 服务器地址等,并告诉所有 DHCP Server 它将接受哪一台服务器提供的 IP 地址,告诉 其他 DHCP 服务器,谢谢你们的接纳,并请求撤销它们提供的 IP 地址,以便提供给下一个 IP租用请求者。

    • DHCP和新加入的客户机都通过广播来互相确认,并且告知子网里的其他机器,这个新机器的ip地址。

    • IP地址的收回与续租:

      • 客户机会在租期过去 50% 的时候,直接向为其提供 IP 地址的 DHCP Server 发送 DHCP request 消息包。客户机接收到该服务器回应的 DHCP ACK 消息包,会根据包中所提供的新的 租期以及其他已经更新的 TCP/IP 参数,更新自己的配置。这样,IP 租用更新就完成了。

    从物理层到MAC层

    1. 物理层联通方案:它会将自己收到的每一个字节,都复制到其他端口上去。

    2. 第二层需要解决的问题:

      1. 这个包是发给谁的?谁应该接收?
        • 这里用到一个物理地址,叫作链路层地址。但是因 为第二层主要解决媒体接入控制的问题,所以它常被称为MAC 地址。
      2. 大家都在发,会不会产生混乱?有没有谁先发、谁后发的规则?
        • 多路访问。有很多算法可以解决这个问题。信道划分,轮流协议,随机接入协议。
      3. 如果发送的时候出现了错误,怎么办?
        • 对于以太网,第二层的最后面是CRC,也就是循环冗余检测。通过 XOR 异或的算法,来计算整 个包是否在发送的过程中出现了错误
    • ARP协议:已知IP地址,求MAC地址的协议。
      • 为了避免每次都用 ARP 请求,机器本地也会进行 ARP 缓存。当然机器会不断地上线下线,IP 也可能会变,所以 ARP 的 MAC 地址缓存过一段时间就会过期。
      • 交换机是有 MAC 地址学习能力的,学完了它就知道谁在哪儿了,不用广播了。

    环路问题

    • 机器1访问机器2:

      • 一开始,机器 1 并不知道机器 2 的 MAC 地址,所以它需要发起一个 ARP 的广播。广播到达机器 2,机器 2 会把 MAC 地址返回来。
      • 交换机 A 一开始是不知道机器 2 在哪 个局域网的,所以它会把广播消息放到局域网二,在局域网二广播的时候,交换机 B 右边这个 网口也是能够收到广播消息的。交换机 B 会将这个广播息信息发送到局域网一。局域网一的这 个广播消息,又会到达交换机 A 左边的这个接口。交换机 A 这个时候还是不知道机器 2 在哪个 局域网,于是将广播包又转发到局域网二。
    • 最小生成树:

      • 有环的我们常称为图。将图中的环破了,就生成了树。在计算机网络中,生成树的算法叫作STP,全称Spanning Tree Protocol。

      • Root Bridge,也就是根交换机。这个比较容易理解,可以比喻为“掌门”交换机,是某棵树 的老大,是掌门,最大的大哥。

      • Designated Bridges,有的翻译为指定交换机。这个比较难理解,可以想像成一个“小弟”,对于树来说,就是一棵树的树枝。所谓“指定”的意思是,我拜谁做大哥,其他交换 机通过这个交换机到达根交换机,也就相当于拜他做了大哥。这里注意是树枝,不是叶子, 因为叶子往往是主机。

      • Bridge Protocol Data Units (BPDU) ,网桥协议数据单元。可以比喻为“相互比较实 力”的协议。行走江湖,比的就是武功,拼的就是实力。当两个交换机碰见的时候,也就是相连的时候,就需要互相比一比内力了。BPDU 只有掌门能发,已经隶属于某个掌门的交换机只能传达掌门的指示。

      • Priority Vector,优先级向量。可以比喻为实力 (值越小越牛)。实力是啥?就是一组 ID 数目,[Root Bridge ID, Root Path Cost, Bridge ID, and Port ID]。为什么这样设计呢?这是因为要看怎么来比实力。先看 Root Bridge ID。拿出老大的 ID 看看,发现掌门一样,那就是师兄弟;再比 Root Path Cost,也即我距离我的老大的距离,也就是拿和掌门关系比,看同一个门派内谁和老大关系铁;最后比 Bridge ID,比我自己的 ID,拿自己的本事比。

    • STP工作过程:

      • 一开始,江湖纷争,异常混乱。大家都觉得自己是掌门,谁也不服谁。于是,所有的交换机都认 为自己是掌门,每个网桥都被分配了一个 ID。这个 ID 里有管理员分配的优先级,当然网络管理 员知道哪些交换机贵,哪些交换机好,就会给它们分配高的优先级。这种交换机生下来武功就很 高,起步就是乔峰。

      • 既然都是掌门,互相都连着网线,就互相发送 BPDU 来比功夫呗。这一比就发现,有人是岳不 群,有人是封不平,赢的接着当掌门,输的就只好做小弟了。当掌门的还会继续发BPDU,而输的人就没有机会了。它们只有在收到掌门发的 BPDU 的时候,转发一下,表示服从命令。

      • 数字表示优先级。就像这个图,5 和 6 碰见了,6 的优先级低,所以乖乖做小弟。于是一个小 派形成,5 是掌门,6 是小弟。其他诸如 1-7、2-8、3-4 这样的小门派,也诞生了。于是江湖 出现了很多小的门派,小的门派,接着合并。

      • 情形一:掌门遇到掌门

        当 5 碰到了 1,掌门碰见掌门,1 觉得自己是掌门,5 也刚刚跟别人 PK 完成为掌门。这俩掌门 比较功夫,最终 1 胜出。于是输掉的掌门 5 就会率领所有的小弟归顺。结果就是 1 成为大掌 门。

      • 情形二:同门相遇

        同门相遇可以是掌门与自己的小弟相遇,这说明存在“环”了。这个小弟已经通过其他门路拜在 你门下,结果你还不认识,就 PK 了一把。结果掌门发现这个小弟功夫不错,不应该级别这么 低,就把它招到门下亲自带,那这个小弟就相当于升职了。 我们再来看,假如 1 和 6 相遇。6 原来就拜在 1 的门下,只不过 6 的上司是 5,5 的上司是 1。1 发现,6 距离我才只有 2,比从 5 这里过来的 5(=4+1)近多了,那 6 就直接汇报给我 吧。于是,5 和 6 分别汇报给 1。

        同门相遇还可以是小弟相遇。这个时候就要比较谁和掌门的关系近,当然近的当大哥。刚才 5 和 6 同时汇报给 1 了,后来 5 和 6 再比较功夫的时候发现,5 你直接汇报给 1 距离是 4,如果 5 汇报给 6 再汇报给 1,距离只有 2+1=3,所以 5 干脆拜 6 为上司。

      • 情形三:掌门与其他帮派小弟相遇

        小弟拿本帮掌门和这个掌门比较,赢了,这个掌门拜入门来。输了,会拜入新掌门,并且逐渐拉 拢和自己连接的兄弟,一起弃暗投明。

      例如,2 和 7 相遇,虽然 7 是小弟,2 是掌门。就个人武功而言,2 比 7 强,但是 7 的掌门是 1,比 2 牛,所以没办法,2 要拜入 7 的门派,并且连同自己的小弟都一起拜入。

      • 情形四:不同门小弟相遇

        各自拿掌门比较,输了的拜入赢的门派,并且逐渐将与自己连接的兄弟弃暗投明。

        例如,5 和 4 相遇。虽然 4 的武功好于 5,但是 5 的掌门是 1,比 4 牛,于是 4 拜入 5 的门 派。后来当 3 和 4 相遇的时候,3 发现 4 已经叛变了,4 说我现在老大是 1,比你牛,要不你 也来吧,于是 3 也拜入 1。

      • 最终,生成一棵树,武林一统,天下太平。

    虚拟隔离 VLAN(虚拟局域网)

    • 我们可以设置交换机每个口所属的 VLAN。如果某个口坐的是程序员,他们属于 VLAN 10;如 果某个口坐的是人事,他们属于 VLAN 20;如果某个口坐的是财务,他们属于 VLAN 30。这 样,财务发的包,交换机只会转发到 VLAN 30 的口上。
    • 而且对于交换机来讲,每个 VLAN 的口都是可以重新设置的。一个财务走了,把他所在的作为 的口从 VLAN 30 移除掉,来了一个程序员,坐在财务的位置上,就把这个口设置为 VLAN 10,十分灵活。 解决广播问题和安全问题。
  • 相关阅读:
    request.getParameter() 、 request.getInputStream()和request.getReader() 使用体会
    HTTP之Content-Length
    关于spring3中No Session found for current thread!and Transaction的配置和管理(转)
    Java数据类型和MySql数据类型对应一览
    Spring MVC 解读——View,ViewResolver(转)
    LeetCode 441. Arranging Coins
    LeetCode 415. Add Strings
    LeetCode 400. Nth Digit
    LeetCode 367. Valid Perfect Square
    LeetCode 326. Power of Three
  • 原文地址:https://www.cnblogs.com/jimmyhe/p/11126342.html
Copyright © 2011-2022 走看看