TCP :传输控制协议,是一种面向连接的可靠的传输协议。
什么是可靠的传输协议?如何保障可靠传输?
保证可靠性: 1.确认机制 2.重传输机制
什么是面向连接?如何保障面向连接?
面向连接是在传递数据之前迚行协商,确保数据在后续的发送过程中双方能够収送以及能够发送到数据。
保障面向连接:TCP三次握手机制
TCP优化机制:1.重排序 2.滑劢窗口机制
TCP主要应用环境: web浏览器 、电子邮件、FTP 等协议
TCP的主要特点:
1、TCP是面向连接(虚连接)的传输层协议。
2、每一条TCP连接只能有两个端点,每- 条TCP连接只能是点对点的。
3、TCP提供可靠交付的服务,无差错、不丢失、不重复、按序到达。可靠有序,不丢不重
4、TCP提供全双工通信。一发送缓存 准备发送的数据&已发送但尚未收到确认的数据
接收缓存按序到达但尚未 被接受应用程序读取的数据&不按序到达的数据
5、TCP面向字节流,把应用程序交下来的数据看成仅仅是一连串的无结构的字节流。
(1)第一次握手:
客户端主动向服务端发送请求建立连接的报文,并进入同步已发送状态;SYN = 1 表示连接请求,seq = x 表示起始序列号,x表示一个随机数,通常为1。(SYN=1,seq=x)
(2)第二次握手:
服务端收到客户端的报文之后,返回一段确认接收到请求报文并同意创建新连接的报文,并进入同步收到状态。(SYN=1, ACK=1, seq=y, ack=x+1)
(3)第三次握手:
客户端接收到服务端的确认报文之后,也返回一段确认报文给服务端表示自己已收到确认报文并进入建立连接状态,服务端收到确认报文后也进入建立连接状态,此时双方成功建立TCP连接。(ACK=1, seq=x+1, ack=y+1)
注 :双方的确认号ack和序号seq的值,都是在彼此ack和seq值的基础上进行计算的,这样做保证了TCP报文传输的连贯性。一旦出现某一方发出的TCP报文丢失,便无法继续"握手",以此确保了"三次握手"的顺利完成。
TCP断开连接得过程分为4步,我们称之为四次挥手。
(1)服务器向客户端发送FIN,ACK位置1得TCP报文段。
(2)客户端向服务器返回ACK位置1得TCP报文段。
(3)客户端向服务器发送FIN,ACK位置1得TCP报文段。
(4)服务器向客户端返回ACK位置1得TCP报文段。
在TCP断开连接的过程中,有一个半关闭得概念。TCP一端可以中止发送数据,但是仍然可以接收数据,称之为半关闭:
(1)客户端发送FIN,半关闭了这个链接。服务器发送ACK接受半关闭。
(2)服务器继续发送数据,而客户端只发送ACK确认,不发送任何数据。
(3)当服务器所有数据传输完毕,就发送FIN报文段,客户再发送ACK报文段,这样就关闭了TCP连接。