以太网、流量控制和帧长
1)成帧
即将网络层的IP包封装到帧中。
2)链路接入
控制网络中的各个节点如何使用链路。
3)可靠交付
有些链路层(比如无线局域网)提供可靠交付,接收方需要对发送方进行ACK反馈;而有些链路(比如有线局域网)不提供可靠交付,因为有线网络的误码率低,且可靠交付会带来不小的开销。
在无线系统中,天线只有一个,无法做到一边发送数据信号一边接收数据信号(有线网中发送和接收是使用不同的信号线)。因此不能像以太网中那样按照CSMA/CD 机制一边发送数据,一边检测冲突。所以采用新的协议CSMA/CA,在收到数据的时候进行ACK反馈。
4)差错检测和纠正
对接收到的数据包进行校验,判断是否出现比特错。如以太网中的CRC校验。
共享以太网是以集线器作为星型拓扑中心的星状网络。 共享以太网中网卡只能工作在半双工模式 。
CSMA/CD机制
以太网最开始的时候采用集线器Hub作为中央节点,各个电脑作为边缘节点的形状网络结构。各个节点之间进行通信时候共享网络,即一个机器发送数据,和它连接到同一个Hub上的所有机器都能够探测的到,于是当两个机器同时发送数据的时候会出现冲突。
为了解决冲突,使用CSMA/CD(Carrier Sense Multiple Access/Collision Detect)即载波侦听多址接入/碰撞检测的机制。该机制的工作原理为:
1)机器要发送数据之前先监听信道,如果信道上有人在传输,则等待一段随机的时间,再次侦听;
2)如果机器检测到信道上没有其他人在传输,则它进行传输
3)如果A和B都检测到信道上没有其他人在传输,则他们都会发送数据;那么在A传输的时候,检测到有其他人在传输,则它认为发生了碰撞,于是立即停止传输,等待一段随机的时间,再次重传
交换以太网是指交换机到交换机或交换机到机器之间的点对点连接,两点间可以同时发送和接收,即以交换机为星型拓扑中心的星状网络。 交换以太网中网卡可以工作在全双工模式
交换以太网中主机和交换机接口之间是点对点通信,不会与其他主机间共享信道,于是不需要CSMA/CD等链路接入算法。
以太网最小帧长度为64字节,最长为1518字节。由于以太网长度 = 6字节目的MAC + 6字节源MAC + 2 字节类型 + 4字节CRC校验 + IP包长度。这就使得以太网中的IP包长度范围为46 字节 - 1500字节。
考虑在共享以太网环境下: 帧长度需要有个范围
考虑极限情况,主机发送的帧长度很小,而两台冲突主机相距较远,在主机A发送帧传输到B的前一刻,B开始发送帧,于是B检测到冲突;而在B的帧传送到A的时候A的帧已经传完了,所以A无法检测到信号冲突,这样就导致接收到的数据可能出错。
而如果主机发送的帧长度很大,就使得A发送的帧在网络上停留的时间很长,一方面导致其他机器检测信道的时候发现信道几乎总是被占用;另一方面在发生冲突的时候重传的开销很大。所以以太网上的帧长度有个范围。
精确计算
按照标准,10Mbps以太网采用中继器时,连接的最大长度为2500米,最多经过4个中继器,因此规定对10Mbps以太网一帧的最小发送时间为51.2 us(光速传播3x10^8m/s,在介质中传播速度有所损耗。10000m/速度 ~ 51.2us)
于是在10Mbps以太网中,最短的帧长度 = 10Mbps * 51.2us = 512bit = 64字节。
在以太网中,如果发送端发送过快,接收端接收缓冲区可能会溢出,那么如何进行流量控制呢?
在半双工模式中,使用背压法。 由于收发双方遵从CSMA/CD算法,于是如果接收方发现自己的接收缓冲区快要满了,于是它向信道发送一个信号,发送方感知到之后,就会停止发送一段时间;
在全双工模式中,使用pause帧。
当收方端口缓存超过设定门限时,收方节点向远端节点发送延迟发送帧,收到帧后远端节点启动延迟计时。如果远端节点在本次计时期间内又收到延时帧,则重新开始计时。若收方的缓存低于设定值时,本节点发送0延时的帧到远端节点,远端节点收到帧后重新启动发送信息。
网线结构
网线内有8根线,1-8按照颜色分别记为 白橙、橙、白绿、蓝、白蓝、绿、白棕、棕。其中1、2用于发送,3、6用于接收, 4 5 7 8 作为预留电话线。
网线两端按照线序分为直连和交叉。其中直连是指网线两端的接法相同;交叉是指两端接法相反,即一端的1、2连接到另一端的3 、6, 3、6连接到另一端的1 、2(也就是一端为白橙、橙、白绿、蓝、白蓝、绿、白棕、棕;另一端为白绿、绿、白橙、蓝、白蓝、橙、白棕、棕)