Linux的网络协议栈很独立,上下通过两个接口分别和用户态以及设备相连.也能够看作是北向和南向接口...北向通过socket接口,南向通过qdisc接口(你能够觉得是上层的netdev queue,对于接收接口,NAPI的poll队列则是还有一个样例).无论是socket还是qdisc.都是基于队列来管理的,也就是说.三个部分是独立的.socket仅仅能看到读写队列.而看不到协议栈本身,socket在读一个数据的时候.它取的是队列里面的数据,至于说这个数据是谁放进去的,它并不知道.是不是协议栈放…