假设客户端计算机连接的局域网接口如下图
注:上图仅为方便理解功能,实际上,家用路由器集成了集线器和交换机的功能,像上图这样使用独立设备的情况很少见。
从客户端到集线器
- 网卡:其PHY(MAU)模块负责将网络包转换成电信号
- RJ-45接口:电信号可以通过此接口进入双绞线,信号在传输过程中会衰减,还会受到噪声干扰而失真,通过两根信号线的缠绕可以抵消外源性噪声,还可以通过改变节距抑制内源性噪声等
集线器
- 中继电路:电信号到达集线器的PHY(MAU)模块后,会进入中继电路。其基本功能就是将输入的信号广播到集线器的所有端口上,也就是说集线器会将电信号发送给所有连接在它上面的线路
- 接收电信号的设备,也就是交换机、路由器、服务器等,会在将信号转换成数字信息后通过FCS校验发现错误,并将出错的包丢弃。丢弃的包不会触发确认响应,协议栈的TCP模块会检测到丢包,并对该包进行重传。
交换机
- 当信号从双绞线传入时,就会进入PHY(MAU)模块的接收部分
- 接下来,PHY(MAU)模块会将网线中的信号转换为通用格式,然后传递给MAC模块
- MAC模块将信号转换为数字信息,然后通过包末尾的FCS校验错误,如果没有问题则存放到缓冲区中 注:交换机的端口不核对接收方MAC地址,而是直接接收所有的包并存放到缓冲区中
- 将包存入缓冲区后,再根据MAC地址表查找MAC地址,然后找到相应的端口
- 然后就可以通过交换电路将包发送到相应的端口了
路由器
注:在具体的操作过程上,路由器和交换机是有区别的。因为路由器是基于IP设计的,而交换机是基于以太网设计的。路由器的各个端口都具有MAC地址和IP地址。
- 路由器包括转发模块和端口模块两部分,转发模块负责判断包的转发目的地,端口模块负责包的收发操作
- 路由器在转发包时,首先会委托端口的硬件将包接收进来(对于以太网端口来说,就是按照以太网规范进行工作,而无线局域网端口则按照无线局域网的规范工作)
- 转发模块会根据接收到的包的IP头部中记录的接收方IP地址,在路由表中进行查询,以此判断转发目标
- 转发模块委托端口模块将包发送给转发目标对应的端口