请教关于TCP/IP协议栈实现问题??(有点难度!)
我最近在作IP QOS方面的工作,有几个问题请教:
1,我们使用Socket在Server和client(或是嵌入式系统)来实现TCP(UDP)/IP的封装,在一个host(或是嵌入式系统)中,如果有多个socket,那么在TCP/IP协议栈(不是应用层)实现中,是否由两个线程(发送和接收)处理所有的socket,实现TCP(UDP)/IP的封装处理和解封装(就是说,来自多个socket buffer的应用层的数据都是由一个协议栈线程进行封装和调用硬件驱动发送和接收数据)? 还是每个socket都对应两个线程(发送和接收)?
2, 对于发送数据,如果应用程序发送的数据速率大于协议栈的处理能力(或者硬件接口的发送数据速率),那么这些发送数据的应用程序是否会被阻塞?
3,对于接收数据端,如果应用层处理接受的数据速率很慢,socket从协议栈接收的速率很快,socket的buffer满了,那么这时候从硬件接口收到的数据是否会被丢掉? 就是在TCP的带有sliding window size的acknowledge报文到达接收端.
谢谢!