网卡将接收到的信号转换成数字信息

现在,客户端发送的网络包已经到达了服务器。

到达服务器的网络包其本质是电信号或者光信号,接收信号的过程和客户端是一样的。

接收操作的第一步是网卡接收到信号,然后将其还原成数字信息。局域网中传输的网络包信号是由1和0组成的数字信息与用来同步的时钟信号叠加而成的,因此只要从中分离出时钟信号,然后根据时钟信号进行同步,就可以读取并还原出1和0的数字信息了。

信号的格式随传输速率的不同而不同,因此某些操作过程可能存在细微差异,例如10BASE-T的工作方式如图6.5所示。首先从报头部分提取出时钟信号(图6.5①),报头的信号是按一定频率变化的,只要测定这个变化的频率就可以和时钟信号同步了。接下来,按照相同的周期延长时钟信号(图6.5②),并在每个时钟周期位置检测信号的变化方向(图6.5③)。图中用向上和向下的箭头表示变化方向,实际的信号则是正或负的电压,这里需要检测电压是从正变为负,还是从负变为正,这两种变化方向分别对应0和1 (图6.5④)。在图中,向上的箭头为1,向下的箭头为0,实际上是从负到正变化为1,从正到负变化为0。这样,信号就被还原成数字信息了(图6.6)。

在这里插入图片描述
服务器接收电信号的过程和客户端发送的过程相反,是从模拟信息转换为数字信息。
在这里插入图片描述
接下来需要根据包末尾的帧校验序列(FCS)来校验错误,即根据校验公式计算刚刚接收到的数字信息,然后与包末尾的FCS值进行比较。FCS值是在发送时根据转换成电信号之前的数字信息进行计算得到的,因此如果根据信号还原出的数字信息与发送前的信息一致,则计算出的FCS也应该与包末尾的FCS一致。如果两者不一致,则可能是因为噪声等影响导致信号失真,数据产生了错误,这时接收的包是无效的,因此需要丢弃。

当FCS一致,即确认数据没有错误时,接下来需要检查MAC头部中的接收方MAC地址,看看这个包是不是发给自己的。以太网的基本工作方式是将数据广播到整个网络上,只有指定的接收者才接收数据,因此网络中还有很多发给其他设备的数据在传输,如果包的接收者不是自己,那么就需要丢弃这个包。

到这里,接收信号并还原成数字信息的操作就完成了,还原后的数字信息被保存在网卡内部的缓冲区中。上面这些操作都是由网卡的MAC模块来完成的。

网卡的MAC模块将网络包从信号还原为数字信息,校验FCS并存入缓冲区。

在这个过程中,服务器的CPU并不是一直在监控网络包的到达,而是在执行其他的任务,因此CPU并不知道此时网络包已经到达了。但接下来的接收操作需要CPU来参与,因此网卡需要通过中断将网络包到达的事件通知给CPU。

接下来,CPU就会暂停当前的工作,并切换到网卡的任务。然后,网卡驱动会开始运行,从网卡缓冲区中将接收到的包读取出来,根据MAC头部的以太类型字段判断协议的种类,并调用负责处理该协议的软件。这里,以太类型的值应该是表示IP协议,因此会调用TCP/IP协议栈,并将包转交给它。

网卡驱动会根据MAC头部判断协议类型,并将包交给相应的协议栈。

总结

  • 网卡将接收到的信号转换成数字信息,具体点干活的是网卡的mac模块
  • 网卡还会对数据进行校验
  • 网卡之后会将数据交给上层 模块
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值