TCP协议(Transmission Control Protocol)

TCP协议是传输层常用传输协议。(Transmission Control Protocol)

1.可靠性
2.面向连接
3.基于字节流
4.在网络状态不佳时会降低重传给系统带来的宽带开销
5.通信连接维护是面向连接的两个端,忽视中间网段与节点。

为了满足这些特点,TCP协议做出了如下规定:
1.数据分片:发送端会将数据分片,并在接受端重组。TCP控制分片数据的大小以及数据分片和重组。
2.到达确认:接受端在接受数据分片后会给发送方发送确认。使用累积确认,以减小宽带消耗
3.超时重发:发送端在发送数据分片时会启动超时计时器,如在规定时间内未接受确认,则认为发送丢失,进行重发。
4.滑动窗口:TCP连接的每一端缓冲空间大小固定,接收端只
接收发送端发送缓冲空间能够容纳的数据大小,TCP在滑动窗口基础上增加了流量控制,防止快的主机造成慢的主机的缓冲溢出。
5.失序处理:使用IP数据报传输TCP数据分片时可能会造成失序现象,TCP会重新将数据分片排序,并将正常顺序数据发送给应用层。
6.重复处理:使用IP数据报传输TCP数据分片时,可能造成分片重复,TCP将会将重复数据分片删除。
7.数据检验:TCP将保持首部与数据的检验和,确保数据在端对端传输过程中无变化。如果检验和有差异,将删除该数据分片并不确认该分片,造成超时,使发送端重新发送该数据分片

3次握手
1.在两端想要建立连接时,客户端TCP会发送SYN(seq=x)的报文传送给服务器。
2.服务器端TCP接收到SYN报文后,发送报文SYN(seq=y)ACK(seq=x+1)报文确认。
3.客户端接收到确认报文后发送ACK(y+1)报文确认。

4次挥手
1.应用程序想要断开与服务器的连接,将会调用‘close’,称为主动关闭,该端的TCP将会发送一个FIN报文给服务器端。
2.服务器端接收到FIN报文后将发送ASK报文确认。
3.服务器端接收报文后执行被动关闭,并发送FIN报文给与发送端。
4.发送端收到FIN报文后,发送ACK报文确认。

断开时不一定是客户端主动断开也可能是服务器端断开。
开始发送FIN时可能会携带数据。
被动断开方发送FIN时是可以携带数据的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值