动态主机配置协议(Dynamic Host Configuration Protocol)
-
每一台新接入的机 器都通过 DHCP 协议,来这个共享的 IP 地址里申请,然后自动配置好就可以了。等人走了,或 者用完了,还回去,这样其他的机器也能用。
-
解析DHCP工作方式:
- 一台新机器加入一个网络的时候,,只知道自己的 MAC 地址。 怎么办?先吼一句,我来啦,有人吗?这时候的沟通基本靠“吼”。这一步,我们称为DHCP Discover。 新来的机器使用 IP 地址 0.0.0.0 发送了一个广播包,目的 IP 地址为 255.255.255.255。在这个广播包里面,新人大声喊:我是新来的(Boot request),我的 MAC 地址是这个,我 还没有 IP,谁能给租给我个 IP 地址!
包的格式:
-
DHCP Server 仍然使用广播地址作为目的地址,因为,此时请求分配 IP 的新人还没有自己的 IP。DHCP Server 回复说,我分配了一个可用的 IP 给你,你看如何?除此之外,服务器还发送 了子网掩码、网关和 IP 地址租用期等信息。
-
如果有多个 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层
-
物理层联通方案:它会将自己收到的每一个字节,都复制到其他端口上去。
-
第二层需要解决的问题:
- 这个包是发给谁的?谁应该接收?
- 这里用到一个物理地址,叫作链路层地址。但是因 为第二层主要解决媒体接入控制的问题,所以它常被称为MAC 地址。
- 大家都在发,会不会产生混乱?有没有谁先发、谁后发的规则?
- 多路访问。有很多算法可以解决这个问题。信道划分,轮流协议,随机接入协议。
- 如果发送的时候出现了错误,怎么办?
- 对于以太网,第二层的最后面是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,十分灵活。 解决广播问题和安全问题。