在计算机生成的数据包中,信息以数字的形式存储在内存中,但这些数字无法直接通过网络发送。为了让数据在电缆或光纤上传输,我们需要将这些数字信息转换成电信号或光信号。承担这一转换任务的设备就是网卡。
不过,网卡并不能独立工作,它需要一个驱动程序来控制。回想一下,当我们购买新电脑时,装完操作系统后的第一件事就是安装各种驱动程序,其中就包括网卡驱动。没有网卡驱动,网卡就无法正常工作,自然也就无法上网。同理,没有显卡驱动,电脑屏幕就无法显示任何内容。
不同厂商生产的网卡结构各有差异,因此每个厂商都会开发专门的网卡驱动程序。网卡启动后,并不会立即开始工作,而是需要经过初始化过程。当操作系统启动时,网卡驱动程序会初始化硬件,使网卡进入工作状态。
网卡内部有一个全球唯一的地址,即MAC地址。这个地址在网卡生产时就被写入只读存储器(ROM)中,理论上无法修改。不过,在Windows系统中,我们可以通过模拟方式修改MAC地址。
当网卡驱动程序从IP模块获取数据包后,会将其复制到网卡的缓冲区。接着,MAC模块从缓冲区中提取数据包,添加报头和起始帧分隔符,并在末尾添加帧校验序列,以检测数据传输过程中可能出现的错误。
报头是一个特殊的比特序列,其作用是帮助接收方确定何时开始读取数据。当这个比特序列转换为电信号时,会形成特定的波形。接收器在接收到这样的波形后,就能判断何时开始读取数据。
电信号可以表示数字信息,通过不同的电压和电流对应0和1。在接收端,通过测量信号中的电压和电流变化,可以恢复出原始的0和1数字信息。
数据包添加了头信息后,就可以通过网线发送了。发送信号时,可以选择半双工模式或全双工模式。半双工模式下,数据传输是单向的,即一方发送,另一方接收;而全双工模式下,发送方和接收方可以同时传输数据。
MAC模块将数字信息转换为电信号,并通过PHY或MAU模块发送出去。数字信息转换为电信号的速率决定了网络的传输速率,如10 Mbit/s。PHY(MAU)模块则将信号转换为可以在网线上传输的格式,并发送出去。
以太网规范定义了不同类型和速率的网线及其对应的信号格式,但MAC模块并不关心这些细节。它将通用的信号发送到PHY(MAU)模块,由后者转换为适合在网线上传输的格式。
了解这一过程后,我们可以更好地理解计算机网络的运作原理。如果你对这一领域感兴趣,欢迎关注我,一起探索更多计算机的奥秘!
大家都知道计算机存储了一堆由01组成的二进制码,那么计算机是如何传输这些数字信号的呢?
计算机只有一根网线与外界相连,网线相连的地方叫网卡,其作用是将计算机的数字信号转换成光电信号发送出去。要知道电脑是如何传输数据的,首先要知道网卡是如何工作的。
计算机生成的数据包只是存储在内存中的一串数字信息,没有办法直接发送给对方。因此,我们必须将数字信息转换成电信号或光信号,然后才能在网络电缆或光纤上传输。
负责这种转换的设备叫网卡,但是网卡不能单独工作。要控制网卡,你需要网卡驱动。想必大家买新电脑第一件事就是装系统,然后才是驱动。这里的驱动包括网卡、显卡、键盘鼠标驱动等。如果没有网卡驱动,网卡就无法工作,也就是上不了网。同样,如果没有显卡启动,你的电脑什么也显示不出来。
不同厂商的网卡结构不同,所以网卡的驱动也是各大网卡厂商开发的专门应用。
网卡的内部结构如下:
网卡上电后并不开始工作,而是和其他硬件一样需要初始化。电脑启动操作系统后,网卡驱动会初始化硬件,网卡才能进入工作状态。
网卡内部有一个世界上唯一的地址叫MAC地址,是网卡生产的时候写的。这个地址不能修改,因为是写在ROM里的,ROM是只读存储器,但是可以在Windows系统下模拟修改成其他MAC地址。
网卡中存储的MAC地址将由网卡驱动程序读取并分配给MAC模块。网卡驱动从IP模块获取数据包后,会将其复制到网卡中的缓冲区。然后,MAC模块将从缓冲区中取出数据包,在开头添加报头和起始帧分隔符,并在结尾添加帧校验序列以进行错误检测,如下所示:
报头是一个比特序列,比如10101010…1和0交替出现,长度为56比特。它的作用是决定包的读取时机。
当1010的这些位序列转换成电信号时,就会形成如下图这样的波形。当接收器接收到信号时,遇到这样的波形就可以判断读取数据的时机。
用电信号表示数字信息时,我们需要让0和1位分别对应特定的电压和电流。例如,像下图这样的电信号可以表达数字信息。
通过电信号读取数据的过程就是把这种对应关系反过来。也就是说,通过测量信号中的电压和电流变化,恢复0和1位的值。
添加头等一系列数据后,我们就可以通过网线发送数据包了。发送信号有两种操作,一种是使用hub的半双工模式,一种是使用Switch的全双工模式。
什么是半双工?什么是全双工?半双工是指只有一方可以发送,同时一方可以接收。在全双工模式下,发送方和接收方可以同时发送数据。
然后,MAC模块将来自报头的数字信息转换成电信号,并通过PHY或MAU的信号收发模块发送出去。这里,数字信息转换成电信的速率就是网络的传输速率。比如10 Mbit的数字信息转换成电信号每秒发送出去,速率就是10 Mbit/s。
接下来,PHY(MAU)模块会将信号转换成可以在网线上传输的格式,并通过网线发送出去。
以太网规范规定了不同类型和速率的网线及其对应的信号格式,但MAC模块并不在乎这些差异。而是将可以转换成任何格式的通用信号发送到PHY(MAU)模块,然后由PHY(MAU)模块将其转换成可以在网线上传输的格式。
这就是把网卡包转换成电信号并发送出去的过程的结束。有兴趣进一步了解请关注我。
欢迎关注我,了解更多关于计算机的知识!