关于tcp协议断开连接以及在socket编程时候连接的一些理解
来源:互联网 发布:淘宝买家信誉评价 编辑:程序博客网 时间:2024/06/09 20:58
要释放一个TCP连接,需要通过四次握手过程,这是由TCP的半关闭特性造成的,因为TCP连接时全双工的,因此,需要TCP两端要单独执行关闭。值得注意的是,主动关闭的一端在发送FIN之后,依然还能正常接收对方的数据,只是通知对方它已经没有数据需要发送了,同理,被动关闭的一端在收到FIN之后,仍然可以发送数据,直到它自身同样发出FIN之后,才停止发送数据。
TCP连接的超时问题:
完成一个TCP连接,中间涉及到一个超时的问题,大多数伯克利系统的超时时限为75s,Solaris9的超时时限为240s,因此,一般认为是在75-240之间。
【引申】在具体的实现中,如何由用户自己去完成设置socket连接超时时间?
【解决方法】目前实现socket超时连接主要是通过select来完成的。具体步骤如下:
◆ 建立socket
◆ 将socket设置为非阻塞模式(若是阻塞模式,那么时间设置就毫无意义)
◆ 调用connect去进行连接
◆ 使用select检查socket是否可写,并同时判断其结果(为什么是可写?因为需要检测socket是否收到ACK。)
◆ 将socket转化为阻塞模式
TCP的半关闭 所谓“半关闭”,是指连接的一端在结束它的发送之后还能接收到对方发过来的数据的能力。具体表现在,当完成三次握手的双方,其中有一端发出FIN,此时它将进入半关
闭状态,此时它关闭了自身的发送功能,但是它依然可以接收到对方的数据,如对方发过来的ACK消息
- 关于tcp协议断开连接以及在socket编程时候连接的一些理解
- tcp连接断开的一些面试常识
- TCP 连接建立断开协议
- 浅谈TCP/IP 三次握手建立连接,四次握手断开连接,以及关于非阻塞socket重连问题
- TCP建立连接和断开连接过程的理解
- 关于检测TCP连接断开
- 关于websocket断开连接的一些猜想
- TCP协议连接建立与连接断开过程(含断开时的TCP状态图)
- TCP协议连接建立与连接断开过程(含断开时的TCP状态图)
- TCP协议连接建立与连接断开过程(含断开时的TCP状态图)
- TCP协议连接建立与连接断开过程(含断开时的TCP状态图)
- 如何在socket编程的Tcp连接中实现心跳协议
- tcp协议的”三次握手“连接与“四次握手”断开
- TCP socket如何判断连接断开
- tcp协议连接建立和断开过程
- 8-TCP 协议(断开连接)
- TCP的连接和断开
- TCP的连接与断开
- OK6410裸机环境搭建 不用Jlink的方式
- jave学习第四节
- keepalived源码浅析——SSL engine
- iptables 入门
- 实习报告
- 关于tcp协议断开连接以及在socket编程时候连接的一些理解
- Android Animation学习笔记
- 网络设备
- 软件开发中的11个系统思维定律
- Struts2爆高危漏洞
- C++11特性--auto,decltype,返回类型后置,using=,nullptr
- SQL Transcation的一些总结
- java网页静态化
- ocx引用另一ocx