计算机网络工程

作者:hingsmy
作者邮箱:hingsmy@gamail.com
本人代为发布,已征得原作者同意


2020年11月16日第十周

Layer 2 Redundancy 二层冗余



Figure 1 shows a simple two-port switch forwarding frames between devices. However his network design offers no additional links or paths for redundancyf the switch or one of its links falls。图1显示了设备之间的简单两端口交换机转发帧。但是。如果交换机或其链路之一发生故、此网络设计将不提供其他冗余路径.
Figure 2 shows a second switch been added to provide redundancy ne single wh can ail wtho causing endtoend conectivity a 图二显示添加了第二个交换机后可以提供冗余,单个交换机可能会发生故障,而不会导致端到端连接失败.


左边的拓扑图里面我们有两个网段,这种网络设计有什么问题呢?
在这种网络当中没有redundancy,没有冗余,在两个网段之间,只有一个交换机,所以当交换机出现问题的时候,那么 a网段和b网段之间的通信也就中断了。

为了给网络提供冗余,我们应该怎么做呢?在交换机A外, 再给这两个网络中间加一个交换机B,因而在这个网络中我们就有了两个交换机,其中一台交换机死掉的时候,我们还有另外一台交换机可以提供一个数据转发。

那么因为我们做了这样的一个冗余,就引出了一个问题,当我们的网络当中有两条可以转发的路径,就产生了一个环路。

环路会带来什么样的问题呢?这种二层网络的环路它主要会带来两个问题:广播风暴和未知单播。

Layer2Loop- Broadcast Storm二层环路-广播风暴


Now, consider PC1 is sending broadcast packet. 现在,考虑PC1正在发送广播数据包

  1. witch A and B will receive broadcast frame from gi1/01 交换机A和B将接收从g1/01收到的的广播
  2. Switch A and B will forward the frame out from gi1/02 交换机A和B将帧从g1/02转发出去
  3. 5 witch A and B will receive broadcast frame from gi1/02 交接机A和B将接收从g1/02收到的广播帧
  4. Switch A and B will forward the frame out from gi1/01 交换机A和B将帧从g1/01转发出去

Layer2Loop- Unknown Unicast二层环路・未知单播



我懒得抄了


Spanning Tree Protocol(STP)生成树协议(STP)



The main task of STP isto stop network loops from occurring on layer 2 network.STP的主要任务是阻止在2层网络上发生网络环路。

It monitors the network to find all links, making sure that no loops occur bshutting down any redundant links。它侦听网络以查找所有链路,并通过关闭任何的冗余链接来确保没有环路发生

With STP running, frames will be forwarded only on the premium, STP picked links。在运行STP的情况下,仅在经过STP挑选的优质链接上转发帧。


那么为了防止这种二层环路造成的问题,我们就引入了 spanning tree protocol,STP生成树协议。

它是怎么样来防止二层网络的环路的?二层现在不是有一个环路吗?那我就在环路上面选一点,把它端口暂时性的关掉。在环路里,一旦把这个端口关掉了,这个环就被打破了。

一旦环路被打破了,他就不会出现广播风暴,也不会出现 Unknown Unicast 这样收到重复的数据了,因为在任何一个时间点,我的数据转发都只能通过一台交换机进行转发。

在现在思科的所有的交换机里面,spanning tree protocol生成树协议,它默认就是开启的。所以只要你的交换机物理连接形成了环路,那么你的交换机,它的spanning tree因为是默认开启,就会把其中的一个路径给disable掉,这个路径是通过一定的算法选出来的。

Bridge Protocol Data Units(BPDU)桥接协议数据单元(BPDU)


Bridge Protocol Data Units(PDUS)are frames that contain information about the STP, there are TWO types of BPUD
桥接协议数据单元(BPDU)是包含有关STP信息的帧,有两种类型的BPUD


IEEE reserved multicast MAC address"0180.C200.000"IEEE保留的多播MAC地址
“0180.C200.0000”


STP协议的信息会装在一个叫做bpdu的特别的数据包里面进行传输。

交换机收到一个数据包时会去查看这个数据包的destination mac address,如果是一个特定的mac address,交换机就知道这个数据包是bpdu。

在这个数据包里面就包含了生成树协议所需要用到的一些参数。在整个网络当中,所有的交换机可以用bpdu这种数据包,把我们的生成树协议所需要用到的一些参数进行交换。

那么网络会根据我们的这些参数,最终来确定在环路里面哪一个端口会被关掉。

Routing Basics 路由基础


Routing is the process of selecting a path for traffic in a network or between oracross multiple networks"- Wikipedia 路由是为网络中或多个网络之间或之间的流量选择路径的过程”维基百科


路由表 = 地图

来我们服务器玩呀 这是我们minecraft服务器的地图

Two types of routing protocol:两种路由协议

  1. Static( paper map-fixed)静态(纸质地图-固定)
  2. Dynamic( google map- dynamic update)动态(谷歌地图一动态更新)

The Routing Table路由表



Connected Route Local Route


偷懒一下


Ping or Internet Control Message Protocol(ICMP)



ping它其实是利用了ICMP协议当中的两个类型来实现的,ping它本身并不是一个协议,

它是一个程序,那么ping这个程序调用了ICMP协议里面的两个类型。

第一个类型叫做type 8,echo request。

第二个类型叫做type 0,echo reply。

A 要 ping B,A会向B发送一个icmp type8,这个叫做request。

当b收到 request过后,他就会返回一个icmp type0,这个叫做reply,

ping的过程其实是两个点之间ICMP的一个双向通信的过程,

在有一些防火墙里面,当大家需要允许ping的数据通过的时候,你可能在防火墙里面的策略看不到ping,你只会看到什么 ICMP request 和 ICMP reply,当你把这两个东西加到我们的防火墙策略过后,ping的数据才可以过,所以它利用的是ICMP协议。

IP Routing Process( Same Subnet)IP路由过程(同一子网)



Host A and Host C are in same network:主机A和主机C在同一网络中
If Host A pings Host s address, ICMP creates a packet that contains source IP(host As IP)address and destination P(hosts C's IP)address Host A performs Binary AND Operation to identify if destination address is in the same 如果主机 A ping主机C的地址ICMP将创建一个包含源P(主机A的P)地址和目标P(主机C的P)地址的数据包。主机A执行二进制与运算以识别目标地址是否在同一个地址



同网段的主机通信背后的整个路由的过程是怎么样的?首先我的主机a要ping我的主机c,那么我的主机a会调用ICMP,创建一个ICMP的包,数据包里包含两个信息,source IP跟destination IP。

当ICMP创建完这个数据包以后,就要执行这个数据包。此时主机a要进行一个判断,判断他的目标地址 destination IP 是否和自己处于同一个网段。

计算机在比较地址是否处于同一个网段的时候,会利用 AND 的逻辑运算,首先他把自己的 IP地址转化成了一个二进制的格式,然后他再把目标的IP地址也转化成二进制的,然后把这两个IP地址做 “与” 的逻辑操作,对source IP地址和destination IP地址做一个 AND 操作后会得出一个值,这个值再和 a 的网段进行一个比较。

此时只比较前24位,因为子网掩码是24,所以我们只对前24位进行比较。如果一样就代表我的主机a跟主机c是处于同样一个网段。

如果两个PC处于同样一个网段,PC a它会广播一个ARP去问 PC c 的MAC地址是多少。

两个主机如果是在同样一个网段,他们之间的相互通信的过程是在二层网络里面进行一个 ARP广播,这个ARP广播的目的是为了得到你的目标的MAC地址。

拿到了目标的MAC地址对吧,就可以进行一个二层的封装,那么通讯就可以开始了。

可能有图片来自网络,如有侵权请联系作者删除
因为原文咕咕咕了字,所以有些地方用的是ocr识别,英文部分懒得校对,所以建议看中文

文章作者: VYBFI
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 VYBFi的小站
网络工程 网络工程
喜欢就支持一下吧
打赏
微信 微信
支付宝 支付宝