一、全双工和半双工的概念
1、全双工(Full Duplex)
是在微处理器与外围设备之间采用发送线和接受线各自独立的方法,可以使数据在两个方向上同时进行传送操作。指在发送数据的同时也能够接收数据,两者同步进行,这好像我们平时打电话一样,说话的同时也能够听到对方的声音。
2、半双工(Half Duplex)
所谓半双工就是指一个时间段内只有一个动作发生,举个简单例子,一条窄窄的马路,同时只能有一辆车通过,当目前有两量车对开,这种情况下就只能一辆先过,等到头儿后另一辆再开,这个例子就形象的说明了半双工的原理。早期的对讲机、以及早期集线器等设备都是基于半双工的产品。随着技术的不断进步,最近10年制造的网卡、交换机、路由器都支持全双工模式。半双工的网络设备已经逐渐退出历史舞台。
二、全双工和半双工以太网的特点
1、半双工以太网
1)任意时刻只能接收数据或者发送数据。
2)采用CSMA/CD访问机制。
3)有最大传输距离的限制。
2、全双工以太网
1)同一时刻可以接收和发送数据。
2)传输数据帧的效率大大提高,最大吞吐量达到双倍速率。
3)全双工从根本上解决了以太网的冲突问题,以太网从此告别CSMA/CD。
4)消除了半双工的物理距离限制。
三、以太网的自动协商
1、自动协商的目的
最早的以太网都是10M半双工的,所以需要CSMA/CD等一系列机制保证系统的稳定性。随着技术的发展,出现了全双工,接着又出现了100M,以太网的性能大大改善。但是随之而来的问题是:如何保证原有以太网络和新以太网的兼容?
于是,提出了自动协商技术来解决这种矛盾。自动协商的主要功能就是使物理链路两端的设备通过交互信息自动选择同样的工作参数。自动协商的内容主要包括双工模式、运行速率以及流控等参数。一旦协商通过,链路两端的设备就锁定在同样的双工模式和运行速率。
2、以太网自协商机制的标准
1)百兆以太网标准IEEE 802.3u规范,将自协商作为可选功能。
2)千兆以太网标准IEEE 802.3z规范,将自协商作为强制功能,所有设备必须遵循并且必须默认启用自协商。
3、自动协商原理
自动协商是建立在双绞线以太网的一种底层机制上的,它只对双绞线以太网有效。光纤接口的以太网不能进行自动协商。
在双绞线链路上,如果没有数据传输,链路并不是一直空闲,而是不断的互相发送一种频率较低的脉冲信号,任何具有双绞线接口的以太网卡都能识别这种信号。如果再插入一些频率更低的脉冲,这些脉冲称为快速链路脉冲FLP(Fast Link Pulse),两端设备也能识别。于是,可以利用FLP进行少量的数据传输,达到自动协商的目的。
以太网速率双工链路自协商优先级别从高到低,顺序如下:
1)1000M全双工
2)1000M半双工
3)100M全双工
4)100M半双工
5)10M全双工
6)10M半双工
如果协商通过,网卡就把链路置为激活状态,可以开始传输数据了。如果不能通过,则该链路不能使用。
如果有一端不支持自动协商,则支持自动协商的一端选择一种默认的方式工作,一般情况下是10M半双工模式。
例如:把一台使用100M网卡的计算机连接到1000M的交换机上,假如交换机的端口设置为自动协商,最终交换机的端口会协商为100M全双工模式。假如交换机的端口强制设置为1000M,将导致自协商不能通过,此计算机无法连接网络。
自协商完全由物理层芯片设计实现,因此并不使用专用数据包或带来任何高层协议开销。
以太网端口电口工作模式简单介绍:
1.以太网口的两端工作模式(10M半双工、10M全双工、100M半双工、100M全双工、自协商)必须设置一致。
2.如果一端是固定模式(无论是10M、100M),另外一端是自协商模式,即便能够协商成功,自协商的那一端也将只能工作在半双工模式。
3.如果一端工作在全双工模式,另外一端工作在半双工模式(包括自协商出来的半双工,也一样处理),Ping是没有问题的,流量小的时候也没有任何问题,流量达到约15%以上时,就会出现冲突、错包,最终影响了工作性能!
4.对于两端工作模式都是自协商,最后协商成的结果是“两端都支持的工作模式中优先级最高的那一类”。
5. 如果A端自协商,B端设置为100M全双工,A协商为100M半双工后,再强制将B改为10M全双工,A端也会马上向下协商到10M半双工;如果A端自协商,B端设置为10M全双工,A协商为10M半双工后,再强制将B改为100M全双工,会出现协商不成功,连接不上!这个时候,如果插拔一下网线,又会重新协商在100M半双工。
建议
以太网口的两端工作模式必须设置一致。否则,就会出现流量一大速度变慢的问题。大多数设备以太网口的默认的出厂设置是自协商。如果两端都是自协商,协商成功了,但网络不通,此时请检查网线是否支持100M。如果两端都是自协商,协商成功并且运行在全双工,在没有Link Down的前提下,将其中一端“立刻”设置为固定的“10M/100M全双工”,两端仍然能够工作在全双工。但是,万一将来插拔网线或者其他原因出现重新Link,就会重新协商为“一端全双工&一端半双工”的不稳定连接。因此,这种情况一定要避免!
自协商基本原理
自动协商模式是端口根据另一端设备的连接速度和双工模式,自动把它的速度调节到最高的公共水平,即线路两端能具有的最快速度和双工模式。
自协商功能允许一个网络设备能够将自己所支持的工作模式信息传达给网络上的对端,并接受对方可能传递过来的相应信息,从而解决双工和10M/100M速率自协商问题。自协商功能完全由物理层芯片设计实现,因此并不使用专用数据包或带来任何高层协议开销。
自协商功能的基本机制是:每个网络设备在上电、管理命令发出、或是用户干预时发出FLP(快速连接脉冲),协商信息封装在这些FLP序列中。FLT中包含有时钟/数字序列,将这些数据从中提取出来就可以得到对端设备支持的工作模式,以及一些用于协商握手机制的其他信息。当一个设备不能对FLP作出有效反应,而仅返回一个NLP(普通连接脉冲)时,它被作为一个10BASE-T兼容设备。 快速链路脉冲FLP和普通链路脉冲NLP都仅使用于非屏蔽双绞线上,而不能应用在光纤媒体。
自动协商的内容主要包括双工模式、运行速率、流控等内容,一旦协商通过,链路两端的设备就锁定在这样一种运行模式下。1000M以太网也支持自协商,在此从略。
电口和光口自协商主要区别是在OSI 中它们所处的位置不同。对于电口来说,协商发生在链路信号传输之前;对于光口来说, 自协商机制与PCS在同一层, 这意味着光口的协商必须先建立链路同步以后才可以进行协商。PCS (Physical Coding Sub-layer)
千兆光口自协商
千兆光口可以工作在强制和自协商两种模式。802.3规范中千兆光口只支持1000M速率,支持全双工(Full)和半双工(Half)两种双工模式。
自协商和强制最根本的区别就是两者再建立物理链路时发送的码流不同,自协商模式发送的是/C/码,也就是配置(Configuration)码流,而强制模式发送的是/I/码,也就是idle码流。
千兆光口自协商过程:
1.两端都设置为自协商模式
双方互相发送/C/码流,如果连续接收到3个相同的/C/码且接收到的码流和本端工作方式相匹配,则返回给对方一个带有Ack应答的/C/码,对端接收到Ack信息后,认为两者可以互通,设置端口为UP状态
2.一端设置为自协商,一端设置为强制
自协商端发送/C/码流,强制端发送/I/码流,强制端无法给对端提供本端的协商信息,也无法给对端返回Ack应答,故自协商端DOWN。但是强制端本身可以识别/C/码,认为对端是与自己相匹配的端口,所以直接设置本端端口为UP状态
3.两端均设置为强制模式
双方互相发送/I/码流,一端接收到/I/码流后,认为对端是与自己相匹配的端口,直接设置本端端口为UP状态
端口自动翻转
所谓自动翻转,其实就是指网线接口的切换,咱们的网线分为对等线和交叉线,当同种设备连接时,需要用到交叉线(例如电脑和电脑直连),当不同设备相接时,用到对等线(例如电脑和HUB或者交换机),而支持自动翻转,就是指,2种线接上都可以正常通信,交换机的端口会自动将信号调整