TCP的连接建立与连接释放

TCP提供可靠传输,在建立连接时,使用三次握手建立可靠连接。

在socket编程中,客户端执行connect()时。将触发三次握手。

例:主机A运行客户程序,B运行服务器程序,最初两端的TCP进程都属于CLOSED(关闭)状态,A主动打开连接,B被动打开连接

如图:

第一次连接:客户端A向服务器端B发出连接请求报文段,此时同步位SYN设为1(不携带数据,只占一个序列号),同时设一个初始序列号,保存在包头的序列号字段中

第二次连接:服务器端接受到连接请求报文段后,若同意连接,则向客户端发送确认,在确认报文段中将SYN和ACK位都置为1,确认号为x+1,表示在它之前所有数据已经全部收到,同时设一个自己的初始序列号

第三次连接:客户端收到服务器端发来的确认后,再次向服务器端确认,确认报文段的ACK为1,A进入已连接状态,服务器收到客户端的确认后,也进入已建立连接状态

为什么要进行三次连接:防止已经失效的连接请求报文段突然又传到了服务器端

例:若A发出的第一个连接请求报文段在某些网络结点滞留时间较长,导致到连接释放后的某个时间才到达服务器端,此时这个报文段已经失效,但服务器端收到该失效的连接请求报文段后,误认为是客户端又发出一次新的连接请求。于是向客户端发送确认报文段,同意建立连接。但由于客户端并未发出连接请求,但是服务器端却认为新的连接已经建立好了并一直等待客户端发数据,致使服务器端的资源就浪费了

TCP的连接释放:四次挥手机制

第一次:客户向其TCP发出连接释放报文段,停止数据发送,主动关闭链接,客户端将连接释放报文段首部终止控制位FIN设1
第二次:服务器收到这个FIN,它发回一个ACK确认,确认序号为收到的序号加1,一个FIN占用一个序号,此时服务器端进入关闭等待状态,TCP服务器通知应用进程,此时从客户到服务器这个方向的连接就释放了,此时TCP处于半关闭状态(客户端此时已不发送数据,如果服务器要发数据,客户仍接收)
第三次:服务器无数据发送释放与客户端的连接,发送一个FIN给客户端。 
第四次:客户端发送ACK报文确认,并将确认序号设置为收到序号加1。此时的TCP连接还未释放掉,必须经过时间等待计时器设定时间后,客户端才进入关闭状态

时间: 2025-01-07 22:34:27

TCP的连接建立与连接释放的相关文章

[网络编程] TCP、UDP区别以及TCP传输原理、拥塞避免、连接建立、连接释放总结

TCP.UDP都是属于运输层的协议,提供端到端的进程之间的逻辑通信,而IP协议(网络层)是提供主机间的逻辑通信,应用层规定应用进程在通信时所遵循的协议.一.UDP主要特点:传输的是用户数据报协议.1.UDP是无连接的,即发送数据之前不需要建立连接.2.UDP 使用尽最大努力交付,即不保证可靠交付,同时也不使用拥塞控制.3.UDP是面向报文的.UDP没有拥塞控制,很适合多媒体通信的要求.4.UDP支持一对一.一对多.多对一和多对多的交互通信.5.UDP的首部开销小,只有 8个字节.发送方 UDP对

TCP、UDP区别以及TCP传输原理、拥塞避免、连接建立、连接释放总结

TCP.UDP都是属于运输层的协议,提供端到端的进程之间的逻辑通信,而IP协议(网络层)是提供主机间的逻辑通信,应用层规定应用进程在通信时所遵循的协议. 一.UDP主要特点:传输的是用户数据报协议. 1.UDP 是无连接的,即发送数据之前不需要建立连接. 2.UDP 使用尽最大努力交付,即不保证可靠交付,同时也不使用拥塞控制. 3.UDP 是面向报文的.UDP 没有拥塞控制,很适合多媒体通信的要求. 4.UDP 支持一对一.一对多.多对一和多对多的交互通信. 5.UDP 的首部开销小,只有 8

有关TCP方式连接建立时三次握手,为什么不是2次 或4次 5次

首先简述一下 TPC连接建立的过程中,"三次握手" 的过程: 第一次:客户端像服务器端发送连接请求 第二次:服务器收到请求后,向客户端发送回应和连接请求 第三次:客户端收到后,对服务器的请求发送应答 其中总共发送了3条消息,因此该过程也称作"三次握手" 而这其中 3次握手 也是建立连接过程中需要发送的最少的消息数目 这样来看: 1: 一次握手 仅仅由客户端发送一次请求,肯定是无法建立可靠的TCP连接的 2: 两次握手:服务器端 在发出消息后,并不知道自己能否发送,以

传输控制协议(TCP) -- 连接建立及终止过程

本文摘录自<UNIX网络编程 卷1>. 1. TCP特性 相对于不可靠.无连接的用户数据报协议(User Datagram Protocol, UDP),传输控制协议(Transmission Control Protocol, TCP)是可靠的.面向连接的协议.除此之外,TCP还提供了以下特性: 1)TCP含有用于动态估算客户和服务器之间的往返时间(round-trip time, RTT),以便它知道等待一个确认需要多长时间. 2)TCP通过给其中每个字节关联一个序列号对所发送的数据进行排

计算机网络中的协议

物理层 物理层考虑的是怎样才能连接各种计算机传输媒体上传输的数据比特流,而不是具体的传输媒体,用于物理层的协议叫做物理层的规程. 数据链路层 对于点对点的链路,PPP协议书目前应用最广泛的数据链路层协议 PPP协议的组成 1)一个将数据报封装到串行链路的方法,PPP既支持异步链路,有支持面向比特的同步链路.IP数据报在PPP帧中就是其信息部分. 2)一个用来建立,配置和测试数据链路连接的链路控制协议LCP.通信双方可协商一些选项.链路控制,PPP为用户发起呼叫以建立链路,在建立链路是协商以参数选

TCP连接建立及相关socket深度探析

关于TCP协议 TCP/IP协议分层模型 可以看到,TCP协议位于运输层,TCP将用户数据打包构成报文段,它发送数据时启动一个定时器,另一端收到数据进行确认,对失序的数据重新排序,丢弃重复的数据.TCP提供一种面向连接的可靠的字节流服务,面向连接意味着两个使用TCP的应用(B/S)在彼此交换数据之前,必须先建立一个TCP连接,类似于打电话过程,先拨号振铃,等待对方说喂,然后应答.在一个TCP连接中,只有两方彼此通信. TCP可靠性来自于: (1)应用数据被分成TCP最合适的发送数据块 (2)当T

运输层的TCP协议

1.有关TCP TCP是工作在传输层的传输控制协议.特点: 1>提供面向连接的服务 2>TCP连接是点对点的 3>提供可靠交互服务 4>提供全双工通信 5>面向字节流 2.TCP的运输连接管理 TCP是面向连接的协议,运输连接是用来传送TCP报文的.运输连接有三个阶段:连接建立.数据传送和连接释放. (1)TCP的连接建立(三次握手) 建立连接的过程如图: 假设主机A运行的是TCP客户程序,B运行的是TCP服务程序.最初两端的TCP进程都处于CLOSED状态.图中主机下面的方

【linux基础】17、TCP/IP网络基础(上)

一.计算机网络概述 1.什么是网络? 一群具有独立功能的计算机组成的系统通过通信设备及传输媒体互连起来,在通信软件支持下,实现资源共享.信息交换的整个系统 产生计算机网络的基本条件:通信技术与计算机技术的结合 2.计算机网络的产生与发展 1954年 主机-终端的通信网络  第一代计算机网络 以单个主机为中心.面向终端设备的网络结构.系统中除主计算机具有独立的数据处理功能外,系统中所连接的终端设备均无独立处理数据的功能 1969年 主机-主机的通信网络  ARPANET网  第二代计算机网络 以分

网络基础之--TCP协议

传输控制协议 TCP 概述 TCP 是面向连接的运输层协议. 每一条 TCP 连接只能有两个端点(endpoint),每一条 TCP 连接只能是点对点的(一对一). TCP 提供可靠交付的服务. TCP 提供全双工通信. 面向字节流. TCP 报文段的首部格式 源端口和目的端口字段--各占 2 字节.端口是运输层与应用层的服务接口.运输层的复用和分用功能都要通过端口才能实现. 序号字段--占 4 字节.TCP 连接中传送的数据流中的每一个字节都编上一个序号.序号字段的值则指的是本报文段所发送的数