TCP

本文详细介绍了TCP协议的工作原理,包括其面向连接的特性、提供的可靠性保证,如校验和、序列号、确认、超时重传等。深入探讨了连接管理的三次握手和四次挥手过程,以及面向字节流的特点和粘包问题的解决方案。此外,还阐述了TCP的流量控制机制,如滑动窗口、快重传和延迟应答,以及TCP报文结构和连接建立与释放的过程。最后,讨论了TCP的拥塞控制策略和应对TCP攻击的方法,如SYN攻击,以及TCP的各种计时器功能。
摘要由CSDN通过智能技术生成

1.TCP是面向连接的传输层协议,提供可靠的,全双工的,面向字节的,端到端的服务 。
2.TCP可靠性保证:
校验和、序列号、确认、超时重传、连接管理、流量控制、拥塞避免
1)连接管理:三次握手、四次挥手
2)面向字节流:TCP将应用程序看成一串无结构的字节流(没有固定的边界),且每个
TCP连接既有发送缓存区也有接收缓存区,在缓存中数据被分段,每个段构成一个数
据包,在传输时加TCP首部,当调用write时,数据会先写入发送缓存区,如果发送的
字节数太大,会被拆分成多个TCP数据包发出,如果发送的字节太小,会先在缓存区
等待,字节流达到一定程度时再发送出去;当调用read时,从接收缓存区读取数据
a.粘包问题:应用层从缓存区接收到的数据是一连串的字节数据,应用程序不知道如何
划分
解决边界问题:
在包的头部约定一个数据包总长度字段或在包与包之间使用明确的分隔符
3)流量控制:窗口
接收端将自己可以接收的缓存区大小加入TCP首部的“窗口大小”字段中,通过ACK通
告给发送端;接收端一旦发现自己的缓存区快满后,就会将窗口大小设置成一个更小
的值通告给发送端,发送端收到窗口通知后,会减小自己的发送窗口大小;如果缓存
区已满,就会将窗口值置0,此时发送方不再发送数据,并定期发送窗口探测数据段,
以便让接口端通告窗口大小,防止形成死锁。
a 窗口:缓存区大小,表示可以接收多少个TCP分组
接收窗口:可以连续接收的数据的缓存区大小
发送窗口:可以连续发送,无需等待确认应答就可以继续发送数据的最大值,当收到
ACK确认时,窗口向后移动,并将已经确认的数据从缓存区中删除
b. 发送窗口=min{接收窗口,拥塞窗口}
4)确认:ACK,告诉发送者,自己接收到了哪些数据,并通告发送者下一次从哪发送
3.TCP性能提高:
滑动窗口、快重传、延迟应答、捎带回答
1)滑动窗口:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值