美文网首页
使用电信号传输TCP/IP:IP包转换成电或光信号

使用电信号传输TCP/IP:IP包转换成电或光信号

作者: robot_test_boy | 来源:发表于2022-07-10 00:05 被阅读0次

IP生成的网络包只是存放在内存中的一串数字信息,没有办法直接发送给对方。因此,需要将数字信息转换为电或光信号,才能在网线上传输,也就是说,这才是真正的数据发送过程。

负责执行这一操作的是网卡,但网卡也无法单独工作,要控制网卡还需要网卡驱动程序。驱动程序不只有网卡才有,键盘、鼠标、显卡、声卡等各种硬件设备都有。当然,不同厂商和型号的网卡在结构上有所不同,因此网卡驱动程序也是厂商开发的专用程序。主要厂商的网卡驱动程序已经内置在操作系统中。

网卡的内部结构
网卡的初始化过程

网卡并不是通上电之后就可以马上开始工作的,而是和其他硬件一样,都需要进行初始化。也就是说,打开计算机启动操作系统的时候,网卡驱动程序会对硬件进行初始化操作,然后硬件才进入可以使用的状态。这些操作包括硬件错误检查、初始设置等步骤,这些步骤对于很多其他硬件也是共通的,但也有一些操作是以太网特有的,那就是在控制以太网收发操作的MAC模块中设置MAC地址。

网卡的ROM中保存着全世界唯一的MAC地址,这是在生产网卡时写入的,将这个值读出之后就可以对MAC模块进行设置,MAC模块就知道自己对应的MAC地址了。

比如从命令或者配置文件中读取MAC地址并分配给MAC模块。这种情况下,网卡会忽略ROM中的MAC地址。有人认为在网卡通电之后,ROM中的MAC地址就自动生效了,其实不然,真正生效的是网卡驱动进行初始化时在MAC模块中设置的那个MAC地址。在操作系统启动并完成这些初始化操作之后,网卡就可以等待来自IP的委托了。

网卡如何将包转换成电信号

首先,MAC模块将包从缓冲区中取出,并在开头加上报头起始帧分界符,在末尾加上用于检测错误的帧校验序列。

制定以太网标准的组织IEEE出于历史原因使用了“帧”而不是“包”,因此在以太网术语中都是说“帧”,其实我们基本没必要讨论两者的区别,大家可以认为包和帧是一回事,只是说法不同罢了。

网卡发出的包的结构

图中显示了协议栈和网卡对包的处理过程。MAC头部很容易被误解为是由网卡来处理的,实际上它是由TCP/IP软件来负责的。

报头是一串像10101010…这样1和0交替出现的比特序列,长度为56比特,它的作用是确定包的读取时机。接收方在收到1010的比特序列这样波形的电信号后,就可以判断读取数据的时机。

如何通过电信号来读取数据?

用电信号来表达数字信息时,需要让0和1两种比特分别对应特定的电压和电流,这样的电信号就可以表达数字信息。

末尾的FCS(帧校验序列)用来检查包传输过程中因噪声导致的波形紊乱、数据错误,它是一串32比特的序列,是通过一个公式对包中从头到尾的所有内容进行计算而得出来的。

本文摘取自周自恒翻译的户根勤编写的《网络是怎样连接的》

相关文章

网友评论

      本文标题:使用电信号传输TCP/IP:IP包转换成电或光信号

      本文链接:https://www.haomeiwen.com/subject/isnebrtx.html