网站建设有几种工具,免费招聘网站平台有哪些,已有网站备案,线上营销课程TCP连接建立 在TCP/IP协议中#xff0c;TCP协议提供可靠的连接服务#xff0c;采用三次握手建立一个连接。 服务器必须准备好接受外来的连接。这通过调用socket、 bind和listen函数来完成#xff0c;称为被动打开(passive open)。 第一次握手#xff1a;客户通过调用connec… TCP连接建立 在TCP/IP协议中TCP协议提供可靠的连接服务采用三次握手建立一个连接。 服务器必须准备好接受外来的连接。这通过调用socket、 bind和listen函数来完成称为被动打开(passive open)。 第一次握手客户通过调用connect进行主动打开(active open)。这引起客户TCP发送一个SYN表示同步分节SYNJ它告诉服务器客户将在连接中发送到数据的初始序列号。并进入SYN_SEND状态等待服务器的确认。 第二次握手服务器必须确认客户的SYN同时自己也得发送一个SYN分节它含有服务器将在同一连接中发送的数据的初始序列号。服务器以单个字节向客户发送SYN和对客户SYN的ACK表示确认此时服务器进入SYN_RECV状态。 第三次握手客户收到服务器的SYNACK。向服务器发送确认分节此分节发送完毕客户服务器进入ESTABLISHED状态完成三次握手。 客户端的初始序列号为J而服务器的初始序列号为K。在ACK里的确认号为发送这个ACK的一端所期待的下一个序列号。因为SYN只占一个字节的序列号空间所以每一个SYN的ACK中的确认号都是相应的初始序列号加1类似地每一个FIN表示结束的ACK中的确认号为FIN的序列号加1。 完成三次握手客户端与服务器开始传送数据在上述过程中还有一些重要概念。 未连接队列在三次握手协议中服务器维护一个未连接队列该队列为每个客户端的SYN包(synj)开设一个条目该条目表明服务器已收到SYN包并向客户发出确认正在等待客户端确认包。这些条目所标识的连接在服务器处于SYN_RECV状态当服务器收到客户端确认包时删除该条目服务器进入ESTABLISHED状态。 TCP连接终止 TCP连接终止需四个分节。 第一次握手某个应用进程首先调用close我们称这一端执行主动关闭。这一端的TCP于是发送一个FIN分节表示数据发送完毕。 第二次握手接收到FIN的另一端执行被动关闭passive close。这个FIN由TCP确认。它的接收也作为文件结束符传递给接收端应用进程放在已排队等候应用进程接收到任何其他数据之后。 第三次握手一段时间后接收到文件结束符的应用进程将调用close关闭它的套接口。这导致它的TCP也发送一个FIN。 第四次握手接收到这个FIN的原发送端TCP对它进行确认。 面向字节的数据传送流如TCP字节流、Unix管道等也使用EOF表示在某个方向上不再有数据待传送。在TCP字节流中EOF的读或写通过收发一个特殊的FIN分节来实现。 如果您喜欢这篇文章可以加华清远见老师为好友单击以下链接即可 http://student.csdn.net/invite.php?u45153c8af704eb3cd8e773