1.网络的数据转发流程 

    网络的本质跨计算机的进程通信,说是进程间的通信,其实数据交互的流程非常复杂。数据从机器A流向到机器B,首先从机器A的应用层到数据链路层,层层封装,然后数据再到网卡,从网卡发出,经过复杂的网络到达机器B,机器B和A正好是相反的操作,如下示意图:

Linux性能优化----网络性能

 这里要说明一下,当数据到达B网卡的时候,会通过DMA的方式(网卡直接从主内存之间读写它们的I/O数据,CPU不参与)把数据写进DMA环形队列,然后网卡通过中断的方式,让网卡驱动程序从DMA环形队列里读走数据,拷贝到sk_buff(内核数据接口)缓冲区,并通过软中断的方式通知内核有新的数据到了。接下来就是网络协议栈的事情了,首先从缓冲区取出数据,层层剥离、校验等操作,最终到达应用层。

2.网络性能指标

  • 带宽:链路的最大传输速率,单位b/s(比特/秒)
  • 吞吐率:单位时间传输成功的数据量,单位b/s(比特/秒)或B/s(字节/秒)
  • 延时:
  • PPS:Pocket Per Second的简写,

 

相关文章: