TCP基础与三次握手详解.pptx

TCP三次握手

什么是TCPTCP是一种面向连接的可靠的基于字节流的传输层通信协议,它位于IP层之上,在整个网络协议簇中,它处于应用层诸多协议之下,由于网络不同主机应用层之间需要可靠的像管道一样的连接,但是IP层不提供这样的流机制,故需要由TCP完成传输管道的功能

TCP的工作过程1,连接的建立TCP是面向连接的协议用Tcp编写的程序必须先建立连接,这个过程成为三次握手

三次握手第一次握手,建立连接时,客户端发送SYN包(SEQ=X)到服务器并进入SYN_SEND状态等待服务器确认第二次握手,服务器收到SYN包必须确认客户端的SYN(ACK=X+1)同时自己也发送了一个SYN包(SEQ=Y)即SYN+ACK包,这时候服务器进入了SYN_RECV状态第三次握手客户端收到SYN+ACK包之后,向服务器发送ACK包(ACK=y+1)此包发送完毕于是进入了Established状态

图例

传输数据TCP负责把数据按一定的长度和格式组成多个数据包进行发送,接收到数据后按照分解顺序依次进行组合恢复数据TCP传输数据时,数据是按照字节流的方式进行传输的,发送数据时需要将发送的数据转换为字节流,程序员可以通过不断的将数据写入TCP缓存中然后TCP自动从缓存中取出一定量的数据发送给IP层IP层在根据网络接口路由协议发送出去接收方从IP层接收到数据后,暂时保存在缓存中这时候程序员就可以依次从缓存中读取数据了

连接的终止建立一个连接需要三次握手,而终止一个连接需要四次握手,这是由TCP的半关闭(half-close)造成的TCP提供了连接的一端在结束它的发送后还能接收来自另一端数据的能力,这就是TCP的半关闭。

客户端发送FIN,另一端发送对这个FIN的ACK报文段。当收到半关闭的一端在完成它的数据传送后,才发送FIN关闭这个方向的连接,客户端再对这个FIN确认,这个连接才彻底关闭。拆除TCP连接过程用一句话表述就是:你关你的发送通道,我关我的发送通道(因为TCP是全双工)。当一方关闭发送通道后,仍可接收另一方发送过来数据,这样的情况就成为半关闭。然而多数情况下,半关闭使用的很少,而且半关闭需要SOCKETAIP支持在SOCKET上的shutdown(而不是调用close)。

图例。

一个问题

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档