(1)套接字缓冲区和socket的接收skb队列有何关系?
经常说的socket发送和接收缓冲区的大小,实际上应该是说socket的队列中的skb的个数限制,这个接收缓冲区和发送缓冲区并不是实际的内存,也没有分配,只是一种参数配置,阀值而已
(2)数据的发送是谁做的?
同样是交给了socket的skb队列,然后由tasklet的软中断来完成的
(3)socket层属于协议栈?
sockt层不属于协议栈,它是和VFS很好的融合的一个层次,并且提供一些系统调用,send/recv/poll/epoll/select等
实际上tcp_rcv将skb挂到socket的队列中,需要通知socket层有数据可以读了,这个实际上是sock_def_readable,
poll/epoll/select都是去检查这个标志,并且它们都是面向fd的。
一个fd就是一个连接,也就是描述一个(src_ip,src_port,dest_ip,dst_port)的组合关系
(4)连接的状态机在哪个层次维护?
这个不是在socket层维护的,直接在传输层维护的状态机
阅读(2464) | 评论(0) | 转发(0) |