TCP协议

TCP全名是(Transport Control Protocol),是一个可以提供可靠的、支持全双工、连接导向的协议,因此在客户端和服务端之间传输数据的时候,是必须先建立一个连接的。

TCP的特点:

连接:

是虚拟、抽象的概念

能让两个通信的程序间确保彼此都在线

加快响应请求速度

连接也被称为会话(Session)

使通信更稳定、安全 消耗更多资源

全双工:

单工:任何时刻数据只能单向发送

半双工:允许数据在两个方向上传输,在某一时刻,只允许数据在一个方向上传输

全双工:任何时刻都能双向发送数据

可靠性:

可靠性是指保证数据无损传输

使无序的数据恢复原有顺序

多播时每个接收方都获得无损副本

TCP协议的工作过程: 

建立连接的过程(三次握手):

客户端发送SYN

服务端准备好进行连接

服务端针对客户端的SYN给ACK

服务端发送SYN

客户端准备就绪

客户端发送ACK 

断开连接的过程(四次挥手)

客户端发送断开请求FIN

服务端收到请求,发送ACK

服务端经过一个等待,确定可以关闭连接,发送FIN

客户端收到FIN,处理完自己的事情后发送ACK 

传输数据: 

传输数据-报文拆分:

应用层数据很大时无法一次性传输完

拆分后可实现并行传输 

传输数据-顺序保证:

TCP序号:发送序号(Seq)、接收序号(Ack)

一个端的发送序号是另一个端的接受序号

如果TCP段特别多的时候,该如何进行排序?时间窗口 

 TCP头:

源端口:描述发送方机器上的应用

目标端口:描述接收方服务器上的应用

发送序号(Seq)/接收序号(Ack)

TCP头-标志位:

NS、CWR、ECE:TCP扩展协议

ECN:显示拥塞控制协议,有助于帮助解决延迟和丢包问题,

URG:紧急标志位

SYN(Synchronize Sequence Numbers):同步序号,也就是在建立连接。

FIN: 终止连接

ACK(Achnowledgment):响应。

PSH(push):传送数据

RST(Reset Connection): 重置连接

TCP协议周边配置:

纠错能力:保证数据可靠性

流控能力:协同两边速率,保证可靠性

拥塞控制能力:确定网络的拥堵情况决定传输速度

纠错和Checksum:

TCP拥有一个16bit的Checksum字段

Checksum是一个函数,把原文映射到一个不可逆的16bit的编码中这样就可以知道原文传输过程中有没有发生变化 

流控能力:

主要目标:让发送方和接收方协商一个合理的收发速率,让两边都可以稳定的工作。

利用滑动窗口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值