文章插图
一个TCP的建立需要以下步骤
- 客户端发送一个SYN报文段,并且指明想要的接收端端口和自己的ISN1
- 服务器也发送自己的SYN报文段进行响应,并且包含自己的ISN2,同时为了确认客户端的SYN,将ACK置为ISN1+1所以每次发送一个报文段,ISN都会+1,这样可以防止丢失的情况
- 同样为了确认服务端的ISN,客户端会将ACK置为ISN2+1所以可以发现,TCP的这三次握手主要目的在于交换连接双方的初始序列号ISN
- 连接的主动关闭者发送一个FIN段指明接收者,同时发送自己的序列号ISN1
- 被动关闭者将ACK置为ISN1+1 。此时,上层的程序会被告知连接的另一端已经发出了关闭请求 。
- 然后被动关闭者变为主动关闭者,并发送自己的FIN
- 为了完成连接的关闭,最后一个报文还包含一个ACK用于确认上一个FIN,防止FIN丢失
- 窗口合拢:左边沿向右收缩,一般发生在数据被发送和确认时
- 窗口张开:右边向右移动,一般发生在另一端的接收进程读取已经确认的的数据并释放了TCP的接收缓存时
- 窗口收缩:右边沿向左移动如图所示:
文章插图
(字丑还请见谅doge由接收方提供的滑动窗口进程通常可以由接受进程控制,同时也会影响到TCP的性能----------慢启动TCP支持一种叫慢启动的算法,它保证了新分组进入网络的速率和另一端确认的速率相同它为发送方提供了一种窗口:拥塞窗口在工作时,发送方取拥塞窗口和通告窗口中的最小值作为发送上限 。拥塞窗口是发送方的流量限制,通告窗口是接收方的流量限制
TCP的坚持定时器如果一个确认丢失了,那么发送方和接收方之间可能会因为持续等待而发生死锁为了防止死锁的产生,所以有了坚持定时器 。以周期性地向接收方查询
TCP的保活定时器如果TCP连接的双方都没有向对方发送数据,则在两个TCP模块之间不交换任何信息如果一个给定的TCP连接在两个小时都没有任何动作,则服务器向客户发送一个探查报文片段则客户主机必须处于以下4种情况之一
- 客户主机依然正常运行,并且从服务器可达
- 客户主机崩溃,并且关闭或者重新启动
- 客户主机崩溃并已经重新启动
- 客户主机正常运行,但是从服务器不可达第一种情况客户主机并不会发现保活探查的发生,整个过程对TCP层是透明的只有第2,3,4种情况时TCP会发送差错报告
经验总结扩展阅读
- GACL 谣言检测《Rumor Detection on Social Media with Graph Adversarial Contrastive Learning》
- 计算机网络拓扑结构由什么组成的?
- 计算机网络协议的三要素
- 计算机网络的主要目标是什么
- 计算机网络按其覆盖的范围可划分为
- 计算机网络按覆盖范围分类可分为
- 计算机网络的安全是指
- 计算机网络技术学什么 有哪些主要课程
- 计算机网络的三种主要功能是什么 计算机网络的三种主要功能是啥
- 计算机网络应用专业课程 是干什么的