# Switch内部构造和机理

Switch（法语commutateur） , 之前在[Ethernet部分](https://zichen.gitbook.io/reseaux-avances/part-1/chapter7#4ethernet-de-li-shi)简单介绍了一些，接下来讲的是交换机内部的结构和机理。

## 1.常见的三种结构

我们现在所讲的交换机均为二层交换机， 以后会讲到三层交换机。

* Shared Bus, 总线共享
* Matrice Crossbar, 矩阵Crossbar
* Mixte (Shared Bus+Matrice Crossbar)

### **1) S**hared Bu&#x73;**, 总线共享**

它适用于小型Switch，是最古老的一种数据交换方式，每个端口各连着一个内存缓冲区，各自的内存缓冲区同时连向一个BUS以达到共享流量，共享总线不可避免内部冲突。现在基本淘汰。

### 2) Matrice Crossbar, 矩阵横杆

随着网络核心交换机的交换容量从几十个Gbps发展到今天的几百个Gbps，一种称之为CrossBar的交换模式逐渐成为网络核心交换机的首选。CrossBar(即CrossPoint)被称为交叉开关矩阵或纵横式交换矩阵。共享交换架构中的线路卡到交换结构的物理连接简化为点到点连接，实现起来更加方便，从而更加容易保证大容量交换机的稳定性;

### 3) 总结 **S**hared Bus 和 Matrice Crossbar

Bus partagé, architecture simple, coût pas cher mais difficulté de suivre l‘augmentation des débits.

Matrice Crossbar, architecture complexe, coût cher; pour les très grands nombre de ports haut débit.

## 2.Switch运作时所面临的问题

### 1) Non-blocking Switch (无拥塞交换机)

它法语叫做commutateur non bloquant。如果所有的端口都不会输出争用(Output Contention) 即N台机器传输数据给同台机器都为100%的带宽时，则称该交换机为non-blocking Switch。如下图:

![](https://4059894600-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LhVVVI44s1KaPsp7eD7%2F-LhVVZIAleheC1vM4Oop%2F-LhVVgeqP642j43zfT1y%2F47.png?generation=1560692314123883\&alt=media)

### 1.1) 例子1

假设一个switch有24个端口，每个端口debit=1Gbits/s. 当A向B发送数据时，数据被存入到bus总线中，当找到目标端口后，在bus总线中的数据被送入到目标端口，**所以switch non-blocking需要2倍端口流量的传输能力，**&#x5373;高流量BUS总线的传输能力&#x4E3A;**:**

(**La capacité du bus haut débit**)

24\*2 = 48 Gbits/s

### 1.2) Non-blocking Switch 和 congestion (拥塞)

即使一台交换机是无拥塞的，我们还是会在局域网发现congestion(拥塞)。

(Si on a un commutateur Non bloquant, on peut se trouver des congestions sur le réseau local).

Ex：

![](https://4059894600-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LhVVVI44s1KaPsp7eD7%2F-LhVVZIAleheC1vM4Oop%2F-LhVVgesvDIQikNzjyAx%2F48.png?generation=1560692314104258\&alt=media)

为了解决congestion(拥塞)，我们可以：

* 流量控制，但是前提是在此网络中没有用TCP 协议(基本不可能)
* 为Port 24量身定制，意思是server到switch的连接要变得特殊一些，如用支持大流量的网线。

Pour résoudre des congestions:

* Contrôle de flux si JAMAIS mis en oeuvre TCP :(
* Dimensionner le lien au port 24 (oui!)

### **1.2.1) 为什么流量控制基本不可能？**

![](https://4059894600-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LhVVVI44s1KaPsp7eD7%2F-LhaxEmvJFhqi5NKtbqh%2F-LhaxGOt0VGjb2bfseVq%2Fimage.png?alt=media\&token=52a60ce6-35a8-422a-bbf3-34e97f0dfbd9)

因为很复杂，假设A, B, C, F, G, H向server发送数据同时D向I发送数据，那么Port24会超负荷(surchargé)。如果SW0告诉SW1说减少SW0的流量，那么D和I之间的通信会减缓，但是一旦SW0和SW1中的缓存满了，它们会删去准备要经过switch的帧。
