TCP的写
2004年10月14日15:43:04
TCP的写一般都是立即返回,但数据不一定发送出去。
1)假如TCP的写返回错误,表示什么?
SIGPIPE-对等方reset连接(程序崩溃?是这样吗)
2)什么时候才真正的发送数据?
TCP的MMS在连接建立阶段协商,对于ethenet是1460.在TCP中的拥塞控制有两个窗口一个算法.
拥塞窗口:
a.慢启动阶段SWS:此窗口以指数方式增大,每次增大一个MMS段.是为防止应用程序突发大量数据导致路由器缓冲溢出,而导致重传从而阻塞.
b.预防阶段:当达到慢启动阀值时,该为线性增长.
此窗口在网络有段时间没数据时候可能减小?(是这样吗?)
发送窗口:
由对方使用,在ACK消息中通知本方,目的是防止发送的数据超过对方缓冲区大小.
Nagel算法:
要求在待发送队列中没有大于1个未收到ACK的小段.目的是防止应用发送一些列小段导致网络数据泛滥.结果是stack总以MMS大小发送数据?(是这样吗?),此算法在发送和接收端都有效.
setsockopt的选项
TCP的写一般都是立即返回,但数据不一定发送出去。
1)假如TCP的写返回错误,表示什么?
SIGPIPE-对等方reset连接(程序崩溃?是这样吗)
2)什么时候才真正的发送数据?
TCP的MMS在连接建立阶段协商,对于ethenet是1460.在TCP中的拥塞控制有两个窗口一个算法.
拥塞窗口:
a.慢启动阶段SWS:此窗口以指数方式增大,每次增大一个MMS段.是为防止应用程序突发大量数据导致路由器缓冲溢出,而导致重传从而阻塞.
b.预防阶段:当达到慢启动阀值时,该为线性增长.
此窗口在网络有段时间没数据时候可能减小?(是这样吗?)
发送窗口:
由对方使用,在ACK消息中通知本方,目的是防止发送的数据超过对方缓冲区大小.
Nagel算法:
要求在待发送队列中没有大于1个未收到ACK的小段.目的是防止应用发送一些列小段导致网络数据泛滥.结果是stack总以MMS大小发送数据?(是这样吗?),此算法在发送和接收端都有效.
setsockopt的选项