Linux的网络协定栈非常独立,高低通过两个接口分离和用户态和装备相连,也能够看做是北向和南向接口...北向通过socket接口,南向通过qdisc接口(你可以认为是上层的netdev queue,对吸收接口,NAPI的poll队列则是另外一个例子),不论是socket还是qdisc,都是基于队列来管理的,也就是说,三个部份是独立的,socket只能看到读写队列,而看不到协定栈本身,socket在读一个数据的时候,它取的是队列里面的数据,至于说这个数据是谁放进去的,它其实不知道,是不是协定栈放进去的,它也没必要验证。Linux的网络协定栈非常独立,高低通过两个接口分离和用户态和装备相连,也能够看做是北向和南向接口.