协议栈 栈close 处理流程
来源:互联网 发布:硬盘mac不能写入文件 编辑:程序博客网 时间:2024/06/03 20:52
keeplive 2个小时发送一次包
超时重传:
http://blog.csdn.net/isthefaithcounts/article/details/9879453
超时重传时间:
tcp_done:
if (!sock_flag(sk, SOCK_DEAD))
sk->sk_state_change(sk);//wakeup
客户TCP持续重传数据分节,试图从服务器上接受一个ACK。(源自Berkeley的实现重传该数据分节12次,共等待约9分钟才放弃重传。
read 返回一个错误码,代码阅读
laykon:
超时重传时,对端没有重启,返回ETIMEOUT , 如果重启,返回ECONNRESET
我们保留了tcpdump输出的时间戳,以便推理TCP的超时重传策略。观察TCP报文段6~11被发送的时间间隔,它们分别为0.2s、0.4s、0.8s、1.6s和3.2s。由此可见,TCP一共执行5次重传,每次重传超时时间都增加一倍(因此,和TCP超时重连的策略相似)。在5次重传均失败的情况下,底层的IP和ARP开始接管,直到telnet客户端放弃连接为止。
Linux有两个重要的内核参数与TCP超时重传相关:/proc/sys/net/ipv4/tcp_retries1和/proc/sys/net/ipv4/tcp_retries2。前者指定在底层IP接管之前TCP最少执行的重传次数,默认值是3。后者指定连接放弃前TCP最多可以执行的重传次数,默认值是15(一般对应13~30min)。在我们的实例中,TCP超时重传发生了5次,连接坚持的时间是15min(可以用date命令来测量)。
虽然超时会导致TCP报文段重传,但TCP报文段的重传可以发生在超时之前,即快速重传,这将在下一节中讨论。
tcp 超时重传, 每次超时重传时间加倍。
http://book.2cto.com/201306/25422.htmlhttp://blog.csdn.net/zhangskd/article/details/35281345
例子程序:
http://www.cnblogs.com/yuxingfirst/archive/2013/07/03/3170333.html
- 协议栈 栈close 处理流程
- zigbee协议栈之按键处理流程
- z-stack协议栈-数据包接收处理流程
- HTTP协议处理流程
- HTTP协议 处理流程
- HTTP协议 处理流程
- HTTP协议处理流程
- HTTP协议的处理流程
- linux网络协议栈流程
- ZgiBee2006协议栈按键流程
- CC2530协议栈工作流程
- tingkman-tcpip协议分析和实现1网络报文帧进入tcpip协议栈初步处理流程
- linux kernel接收包处理流程 -- 从网卡到进入3层协议栈
- linux kernel发送包处理流程 -- 出协议栈到网卡
- TCP CLOSE流程
- Linux网络协议栈之TCP socket/bind/listen/connect/accept/close/shutdown
- LINUX协议栈详解 协议处理
- Linux 网络协议栈协议的处理
- HTML用正则表达式检验表格
- Angularjs service factory provider
- SVM支撑矢量机
- hdu5902 数论
- D3.js中的Scale用法
- 协议栈 栈close 处理流程
- Anaconda3 + PyQt5 + Eric6
- MySQL 列类型-字符串型
- hadoop-hive本地和伪分布式模式的安装
- Android中的MVC和MVP对比
- Java编程基本功训练题(1~10)
- 前端工程师的前后端交互指南
- 4-11-初学排序与查找
- 获取字符串中字母出现的次数