极客时间 15讲,如何解决地址已经被使用的方法?

联系:

Time_wait状态:

  作用

     1  保证连接的终止,保证对FIN的确认发送到对端

如果没有time_wait状态,将返回RST错误,被东方将产生错误

     2 为了让旧连接的重复分结在网络中自然消失

危害:

1   资源占用

2 内存资源占用

 

在time_wait时间,即会出现Adress aready in use 重复占用的状态。

解决方法:

1 so_linger :直接关闭

2 time_wait: 减小等待时间

3 重用套接字选项

      如果新旧四元组信息相同(地址:端口,目的地址,目的端口)相同,则会出现冲突问题

     1 第一种优化  新连接SYN告知的初始化序列号,一定比TIME_WAIT老连接的末序列号大,这样通过序列号就可以区别出新老连接

     2 第二种优化  开启了tcp_timestamps,使得新连接的时间措比老连接的时间措大,通过时间措可区别新老连接

通过直接设置套套接字配置,TCP连接完全服用TIME_WAIT状态的俩涅

int on=1;

setsockopt(listendf,SOL_SOCKET,SO_REUSEADDR,&on,sizeof(on));

 3 可重用端口 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值