一 . TCP传输控制协议
TCP提供一种面向连接的,可靠的自己流服务。
TCP被封装在一个IP数据报中,如下图:
下图显示TCP首部的数据格式,如果不计任选字段,它通常是20个字节:
二. TCP连接的建立与终止
TCP是一个面向连接的协议。无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接。
先看图
连接的建立(3次握手):
1. 请求端(通常称为客户)发送一个SYN段指明客户打算连接的服务器的端口,以及初始序号(ISN,在这个例子中为1415531521)。这个S Y N段为报文段1。
2. 服务器发回包含服务器的初始序号的SYN报文段(报文段2)作为应答。同时,将确认序号设置为客户的I S N加1以对客户的SYN报文段进行确认。一个S N将占用一个 序号。
3. 客户必须将确认序号设置为服务器的ISN加1以对服务器的S Y N报文段进行确认(报文段3)。
连接的终止(4次握手):
1. 进行关闭的一方(这里代表客户)发送一个FIN段(报文段4)执行主动关闭,用来关闭数据的传送。
2. 当服务器收到这个FIN,它发回一个ack(报文段5)给客户,确认序号为收到的序号加1。
3 服务器向应用服务器传送一个文件结束符,接着这个服务器程序就关闭它的连接,发送一个FIN段(报文段6)给客户。
4 客户收到这个FIN段后,必须发回一个zck报文段7)给服务器,,确认序号为收到的序号加1。
以上是一个完整连接的建立与终止的过程。
下面这个图根容易理解