对比close与shutdown
close降低了socket fd的引用计数,一旦计数为0,就会发送fin
close的结果是双向通道都关闭,shutdown则是可以选择关闭发送或者接受
tcp中的发送和接收缓冲区是所有连接共享的?
linux中有关tcp的配置选项
tcp_synack_retries 表示给客户端synack的响应的最大重传次数,对端认为丢失了syn+ack
服务器要重传syn+ack,发完最大次数后,就放弃本次连接
tcpsyn_retries 表示作为客户端时,去连接服务器时,重发多少次syn才放弃本地连接
tcp_keepalive_time 表示当没有收到对端的响应时,隔多久开始发送keepalive包,
防止建立连接,不发送实际协议数据
默认是2小时
tcp_keepalive_probes 表示发送keepalived包的尝试的最大次数,默认值一般是10
tcp_keepalive_intv1 表示每次发送keepalived包的间隔,默认是75s
tcp_bic 表示拥塞窗口的指数级增长开关,广域网优化要用到
tcp_westwood 表示启动发送端的拥塞避免算法,广域网优化要用到
tcp_sack 表示选择性重传,避免重发不必要的包,广域网优化用到
tcp_ecn 表示窗口通知,接收方告诉发送方自己的接收窗口大小机制
tcp_fack 表示快速发送ack,而不是捎带ack
tcp_reordering 设置tcp对无序的包的重排的个数
tcp_timestamps 表示开启包的时间戳记录功能,更好的来分析网络,也可以防止包的
包序号的重复,尤其是高速网络
tcp_tw_recycles
tcp_tw_reuse 表示在time_wait状态下的套接字快速回收和复用
tcp_fin_timeout FIN_WAIT_2状态等待fin的超时时间,默认1min
ip_conntrack_tcp_timeout_close_wait 等待应用层关闭的超时时间,默认2min
ip_conntrack_tcp_timeout_time_wait 等待对方收到最后的ack超时时间,默认1min
ip_conntrack_tcp_timeout_fin_wait FIN_WAIT_1状态等待fin的最大超时时间 2min
tcp_wmem 发送缓冲区的大小min default max
tcp_rmem 接收缓冲区大小 min default max
是否接收和发送缓冲区就对应了接收和发送滑动窗口的大小呢,是多个连接共享,还是独立的?
阅读(1536) | 评论(0) | 转发(0) |