序号x;
? 主机B收到此连接请求报文后,若同意建立连接,则向主机A发连接响应报文段。在
响应报文段中,SYN同步位为1,确认序号为x+1,同时也为自己选择一个序列号y; ? 主机A收到此确认报文后,也向主机B确认,这时,序号为x+1,确认序号为y+1。 ? 当连接建立后,A、B主机就可以利用TCP进行数据传输了。
图2 TCP的连接和释放
(3)TCP连接的释放
在数据传输结束后,任何一方都可以发出释放连接的请求,释放连接采用所谓的“四次”方法。如图2(b)所示,假如主机A首先向主机B提出释放连接的请求,其过程如下:
? 主机A向主机B发送释放连接的报文段,其中,FIN终止位为1,序号x等于前面已 经发送数据的最后一个字节的序号加1;
? 主机B对释放连接请求进行确认,其序号等于x+1。这时从A到B的连接已经释放, 连接处于半关闭状态,以后主机B不再接收主机A的数据。但主机B还可以向主机A 发送数据,主机A在收到主机B的数据时仍然向主机B发送确认信息。
? 当主机B不再向主机A发送数据时,主机B也向主机A发释放连接的请求; ? 同样主机A收到该报文段后也向主机B发送确认。 (4)TCP数据传输
TCP可以通过检验序号和确认号来判断丢失、重复的报文段,从而保证传输的可靠性。 TCP将要传送的报文看成是由一个个字节组成的数据流,对每个字节编一个序号。在连接建立时,双方商定初始序号(即连接请求报文段中的SEQ值)。TCP将每次所传送的第一个字节的序号放在TCP首部的序号字段中,接收方的TCP对收到每个报文段进行确认,在其确认报文中的确认号字段的值表示其希望接收的下一个报文段的第一个数据字节的序号。
由于TCP能提供全双工通信,因此,通信中的每一方不必专门发送确认报文段,而可以在发送数据时,捎带传送确认信息,以此来提高传输效率。 2、 UDP协议
UDP是用户数据报协议(User Datagram Protocol)的缩写,提供无连接的数据报文传输,不能保证数据完整到达目的地。
UDP数据传输不需要预先建立连接,传输过程中没有报文确认信息。因此,UDP报文格式比TCP的报文格式简单的多。UDP数据报也是由首部和数据两部分组成,其首部只有源端口、目的端口、消息长度和校验和四部分,各部分的意义和TCP首部对应字段的意义相同,这里不复赘言。
在TCP/IP体系中,使用UDP协议的应用有DNS和TFTP(Trivial File Transfer Protocol)。
TFTP是一个传输文件的简单协议,它基于UDP协议的,它只能从文件服务器上获得或写入文件,不能列出目录,不进行认证。