简介
TCP提供面向有连接的通信传输,面向有连接是指在数据通信开始之前先做好通信两端之间的准备工作。
TCP在数据通信之前,通过TCP首部发送一个SYN包作为建立连接的请求等待确认应答(TCP中发送第一个SYN包的一方叫做客户端,接收这个的一方叫做服务端)。如果对端发来确认应答,则认为可以进行数据通信。如果对端的确认应答未能到达,就不会进行数据通信。此外,在通信结束时会进行断开连接的处理(FIN包)。
一个连接的建立与断开,正常过程至少需要来回发送7个包才能完成(建立一个TCP连接需要发送3个包,这个过
程也称作“三次握手”,断开一个TCP连接需要发送4个包,这个过程也称作“四次挥手”)。
TCP报文段首部
在具体理解三次握手与四次挥手的细节时,需要先了解一下TCP报文段的首部格式:
主要需要了解的是:
序号 seq
占4个字节,范围[0,223-1],共223(42 9496 7296)个序号。TCP是面向字节流的,在一个TCP连接中传送的字节流中的每一个字节都按顺序编号。
确认号