上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 30 下一页
摘要: 说明:该文章中部分代码未能完全理解透彻,可能对您造成误解,请慎读; 并建议您先阅读本博另外一篇文章:<Linux TCP套接字选项 之 SO_REUSEADDR && SO_REUSEPORT> 另:该文章将会持续更新改进; TCP的接口绑定通过函数inet_csk_get_port函数执行,其中包 阅读全文
posted @ 2019-10-28 09:40 AlexAlex 阅读(718) 评论(0) 推荐(0) 编辑
摘要: C语言中!!的作用是?看例子; 1 #include <stdio.h> 2 3 int main() 4 { 5 int test = 666; 6 7 printf("test=%d !test=%d !!test=%d\n", test, !test, !!test); 8 9 return 阅读全文
posted @ 2019-10-28 09:01 AlexAlex 阅读(1346) 评论(0) 推荐(0) 编辑
摘要: 说明 本文下面内容基本上是截取自stackoverflow,针对这两个选项,在另外一篇文章中做了总结,请移步<Linux TCP套接字选项 之 SO_REUSEADDR && SO_REUSEPORT> 原文部分翻译 基本知识点 TCP/UDP连接是由一个五元组(如下)标识的,不允许存在多个连接具有 阅读全文
posted @ 2019-10-28 08:50 AlexAlex 阅读(660) 评论(0) 推荐(0) 编辑
摘要: 概述 在FIN_WAIT_2收到对端发来的FIN,并回复ACK之后,会进入TIME_WAIT状态,此时添加定时器,定时器超时会将tw控制块从ehash和bhash中删除,并且释放tw控制块; 启动定时器 TIME_WAIT定时器主要通过inet_twsk_schedule函数进行启动; tcp_rc 阅读全文
posted @ 2019-10-27 22:20 AlexAlex 阅读(639) 评论(0) 推荐(0) 编辑
摘要: 当TCP主动关闭一端调用了close()来执行连接的完全关闭时会执行以下流程,本端发送FIN给对端,对端回复ACK,本端进入FIN_WAIT_2状态,此时只有对端发送了FIN,本端才会进入TIME_WAIT状态,为了防止对端不发送关闭连接的FIN包给本端,将会在进入FIN_WAIT_2状态时,设置一 阅读全文
posted @ 2019-10-27 22:19 AlexAlex 阅读(937) 评论(0) 推荐(0) 编辑
摘要: 在用户进程启用了保活定时器的情况下,如果连接超过空闲时间没有数据交互,则保活定时器超时,向对端发送保活探测包,若(1)收到回复则说明对端工作正常,重置定时器等下下次达到空闲时间;(2) 收到其他回复,则确定对端已重启,关闭连接;(3) 超过探测次数仍未得到回复,则认为对端主机已经崩溃,关闭连接; 启 阅读全文
posted @ 2019-10-27 22:18 AlexAlex 阅读(721) 评论(0) 推荐(0) 编辑
摘要: 坚持定时器在接收方通告接收窗口为0,阻止发送端继续发送数据时设定。 由于连接接收端的发送窗口通告不可靠(只有数据才会确认,ACK不会确认),如果一个确认丢失了,双方就有可能因为等待对方而使连接终止:接收放等待接收数据(因为它已经向发送方通过了一个非0窗口),而发送方在等待允许它继续发送数据的窗口更新 阅读全文
posted @ 2019-10-27 22:17 AlexAlex 阅读(988) 评论(0) 推荐(0) 编辑
摘要: TCP在收到数据段但是无需马上确认时设定,如果在超时时间之内有数据要发送到对端,则确认会随着数据一起发送,即捎带ACK,如果达到超时时间则执行定时器回调立即发送ack; 启动定时器: 延迟确认定时器调用inet_csk_reset_xmit_timer(sk, ICSK_TIME_DACK, xx, 阅读全文
posted @ 2019-10-27 22:15 AlexAlex 阅读(886) 评论(0) 推荐(0) 编辑
摘要: 注:这部分还没有完全分析透彻,先在此记录,后面回顾的时候再进行补充; 启动定时器: (1) 之前发送的数据段已经得到确认,新发出一个数据段之后设定; (2) 新建连接发送syn之后设定; (3) PMTU探测失败之后设定; (4) 接收方丢弃SACK部分接收的段时设定; 定时器回调函数: 重传定时器 阅读全文
posted @ 2019-10-27 22:14 AlexAlex 阅读(1481) 评论(0) 推荐(0) 编辑
摘要: 当服务器收到新的syn请求,会回复syn+ack给请求端,若某时间内未收到请求端回复的ack,新建连接定时器超时执行回调,重传syn+ack,当超时超过固定次数时,该连接中止;本文主要分析其初始化流程,具体的建立连接和超时重传流程在后续的文章中进行详细讨论; request_sock结构中的rsk_ 阅读全文
posted @ 2019-10-27 22:12 AlexAlex 阅读(752) 评论(0) 推荐(0) 编辑
上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 30 下一页