1.Tcp协议是什么
Tcp 即 Transmission Contro Protocol,传输控制协议,是一种面向连接、可靠的、基于字节流的传输层通信协议,在简化OSI模型中,Tcp属于第四层传输层的协议,用户数据报协议 Udp也是这一层内重要的一个协议
2.运作方式
Tcp的运行可划分为3个阶段 :连接创建、数据传送、连接终止。
3.创建通路
-
Tcp用三次握手过程创建一个连接,连接创建过程中,很多参数需要被初始化,例如序号被初始化以保证有序传输
-
一对终端同时初始化他们之间的连接是有可能的,但是通常是由服务端打开一个套接字,然后监听另一方的连接,这叫被动打开
-
然后客户端开始创建主动打开
3.1 三次握手过程
-
客户端通过向服务端发送一个SYN来创建一个主动打开,作为3次握手的一部分,客户端把这段连接的序号设置为随机数x
-
服务端应该为一个合法的SYN 回送一个SYN/ASK,ASK的确认码应该是x+1,SYN/ASK包又会随机产生一个随机数y
-
最后,客户端再发送一个ASK,此时包序号为x+1,ack为y+1
当服务端收到这个ask后,就完成了3次握手,并进入连接创建阶段。
- 三次握手(图)
4.断开连接
连接终止使用了四路握手过程(或称四次握手,four-way handshake),在这个过程中连接的每一侧都独立地被终止。当一个端点要停止它这一侧的连接,就向对侧发送FIN,对侧回复ACK表示确认。因此,拆掉一侧的连接过程需要一对FIN和ACK,分别由两侧端点发出。
- 四次挥手(图)
5.最后
- tcp为什么是可靠的?
因为tcp内部有很多机制来保证数据传输的可靠,1.使用序号对报文进行排序和检测重复;2.无错传输;3.使用确认和计时器检测丢包或延时;4.流控制;5.拥塞控制;6.丢失包的重传
- 使用序号对报文进行排序和检测重复
- 无错传输(使用校验和检测数据)
- 使用确认和计时器检测丢包或延时
- 流控制
- 拥塞控制
- 丢失包的重传