计算机处理数据方式是并行的,网络传输数据是比特流,即串行的数据。在计算机端接收数据时,需要将串行的数据转换为并行数据,计算机是如何处理的?
下面从程序的角度进行解说。
首先是硬件上进行转换。网卡上一个硬件缓冲叫FIFO(first in, first out),和数据结构里说的队列是一个意思,即先进先出。网卡接收数据时,按到来的比特流的顺序,一个比特一个比特存进这种FIFO里。通常FIFO不是很大,大概十几个字节,当到达FIFO的门限时,CPU会将FIFO里数据FLUSH到内存里。进一步要进行的处理是字节顺序,网络到主机的顺序,或者主机到网络的顺序(发送数据时)。
向网络发送数据时,进行的是相反的动作。
除了网络会用到串行数据,还其它如串口,SPI都会遇到并行串行转换。