首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络协议 >

一个tcp连接client crash后的有关问题

2012-02-25 
一个tcp连接client crash后的问题client和svr tcp已经建立连接(传输数据);client 建立连接时bind 本地ip和

一个tcp连接client crash后的问题
client和svr tcp已经建立连接(传输数据);client 建立连接时bind 本地ip和port
而后client 崩溃,svr不知,所以svr的连接仍然是established(svr 没有使用keep_alive检测存活,也没有和client有心跳检测);
而后client重启,再次准备建立连接,以同样的client_ip,client_port connect svr_ip, svr_port, connect会发生什么呢? 对svr来讲,认为这条连接已经是存在的,那么server如何处理client的syn分节呢?

困扰这个问题,请大侠赐教~ 


[解决办法]
从svr的tcp协议栈来看,established中收到syn是非法的,
具体的结果要看tcp协议栈的实现,
有些会认为数据非法,reset掉当前连接;
有的则看syn所对应的seq是否在当前连接的ack的允许范围内(即期望对方的seq所在的范围),
不在则简单地丢弃该包,在就reset。

热点排行