3. 广播信道的数据链路
3.1 以太网标准
名称 |
传输介质 |
网段最大长度 |
特点 |
10Base-5 |
粗同轴电缆 |
500m |
早期电缆,己经废弃 |
10Base-2 |
细同轴电缆 |
185m |
不需要集线器 |
10Base-T |
非屏蔽双绞线 |
100m |
最便宜的系统 |
10Base-F |
光纤 |
2000m |
适合于楼间使用 |
备注 |
10Base-5中的10表示传输速度(Mbps),5表示单段网线长度(基准单位是100m),Base表示“基带”的意思。 |
3.2 CSMA/CD协议
(1)广播信道局域网(星型)
①一台计算机发送数据,局域网中所有的计算机都能够检测到这个信号。要想实现点对点通信,网络中的计算机网卡必须有唯一的地址,发送的数据帧也要有目标地址和源地址。
②广播信道中的计算机发送数据的机会是均等,但不能同时有两个计算机发送数据,因为总线上只要有一台计算机在发送数据,总线的传输资源就被占用。
(2)CSMA/CD协议(带冲突检测的载波侦听多路访问协议)
①多点接入:可以很方便地接入更多的计算机。
②载波侦听:在广播信道中的链路上不能同时传送多个计算机的信号,因此每台计算机发送之前要判断链路上是否有信号在传,开始发送后还要判断是否有和其他正在链路上传过来的数据字信号发生冲突。如果有冲突(信号叠加后电压变化超过一个门限值,就认为有冲突),就要等一个随机时间再次发送,这种机制就是带冲突检测的载波侦听多路访问(CSMA/CD,Carrier Sense Multiple Access with Collision Detection)。
③显然,使用CSMA/CD协议时,一个点不可能同时进行发送和接收。因此这样的以太网不可能进行全双工通信而只能是双向交替通信(半双工通信)
3.3 以太网最短帧
(1)为了能检测到正在发送的帧在总线上是否产生冲突,以太网的帧不能太短。
(2)想要检测出发生在链路任何地方的碰撞,就要计算出发送端检测冲突最长需要多长时间。
(3)以太网最短帧 = 数据传输速率 * 2τ (其中数据传输速率指网卡带宽,如100Mbps。τ指信号单程端到端的传播时间)
①如:假设同轴电缆中信号传播速率为200000km/s,则1000m线缆传播时延(τ)为5μs。即:以太网最短帧=10Mbps×2 τ = 100bit
②如果发送端发送的帧低于100比特,就可能检测不到链路上的冲突。如下图所示,A己经发送完了一帧的数据,A计算机会认为发送成功。等碰撞发生后的信号到达A时,A无法判断是自己发送的帧发生了碰撞还是其他计算机发送的帧产生了碰撞。
③以太网设计的最大端到端长度为5km,单程传播时延(τ)约为25.6μs,往返时延为51.2μs。以10Mbps标准以太网的最短帧为10Mbps×2 τ = 512bit(即64字节)
④以太网的最大传输单元MTU(1500字节)的由来:MTU不是越大越好,因为MTU越大意味着单个数据包越大,在线路质量较差的网络环境中数据包中 bit位发生错误的概率也越大,丢包率会越高。同时MTU越大,传送一个数据包时延也越大,会影响其他计算机的通信从而造成用户体验差。因此,这个MTU字节是一个折衷的结果。由于MTU的限制,会影响到其它协议(如PPP协议的信息部分长度为1500字节)。从而数据链路层的MTU为1500字节(指的是数据部分)
3.4 冲突解决方法——退避算法(截断二进制指数退避算法)
(1)确定基本退避时间,这个时间就是争用期(2τ),以太网把争用期定为51.2μs
(2)从离散的整数集合[0,1,…,(2k-1)]中随机取出一个数,记为r。重传应推后的时间就是r倍的争用期,其中参数k=min(重传次数,10)。如第1次重传时,k=1,随机数r从{0,1}集合中选1个。K=2时,随机数r从{0,1,2,3}集合中选择1个,以此类推。(集合元数的个数是以二进制指数级在增长。注意k最大值为10,就是截断的意思)
(3)当重传超过16次仍不成功时(这表明同时打算发送数据的站太多,以致连续发生冲突),则丢弃该帧,并向高层报告。
3.5 以太网帧格式
(1)EthernetII帧格式示意图
①由于以太网最短帧为64字节(见前面计算公式中的说明)。可计算出数据字段的最小长度应大于46字节,如果不够46字节则数据链路层就会在数据字段的后面插入一些字节,保证以太网的MAC帧长度不小于64字节。而上面的网络层(IP层)会根据首部中用于指明网络数据包的“总长度”字段信息,得知被填充了多少字节从而去掉多余的这些填充字节。
②数据字段的最大长度就是以太网的MTU(1500字节)。
③物理层实际传送的比MAC帧多8个字节,这些主要用来将接收端适配器的时钟与到发送端时钟进行同步。
(2)以太网帧没有帧结束定界符的原因
①以太网使用曼彻斯特编码,这种编码的每一个码元(不管是0还是1)的正中间一定有一次电压的转换。
②当发送端把一个以太网帧发送完毕后,就不再发送其他码元了(既不发送1也不发送0)。因此,发送端网络适配器接口上的电压也就不再变化。这样接收端就可以很容易找到以太网帧结束的位置。从这个位置往前数4个字节(FCS字段的长度),就能确定数据字段的结束位置。
(3)以太网传送数据是以帧为单位的。各帧之间必须有一定的间隔。因此,接收端只要找到帧开始定界符,其后面连续的比特流都属于同一个MAC帧。它不需要使用帧结束定界符,也不需要使用字节插入来保证透明传输。
3.6 网卡的作用
(1)网卡是工作在数据链路层和物理层的网络组件,不仅能实现与局域网传输介质之间的物理连接和电信号匹配,还涉及帧的发送和接收、帧的封装与拆封、帧的差错检验、介质的访问控制(以太网使用CSMA/CD协议)、数据编码和解码及数据缓存功能等。
(2)网卡和局域网之间的通信是通过双绞线以串行传输方式进行的。而网卡和计算机之间的通信是通过计算机主板上的I/O总线以并行传输方式进行的。因此,网卡的一个重要功能就是要进行串行/并行转换。这依赖于其上面装有对数据进行缓存的存储芯片。
(3)网卡还要能实现CSMA/CD协议,对帧进行封装和拆封,而这些计算机的CPU根本不关心。而是由网卡上的处理器来处理。当适配器收到有差错的帧时,就把这个帧丢弃而不必通知计算机。当收到正确的帧时才使用中断通知计算机并交付协议栈中的网络层。
(4)网卡物理层功能实现数据的编码,即曼彻斯特编码和译码。