计算机网络学习(3)

举报
幼儿园老大* 发表于 2024/09/19 11:23:29 2024/09/19
【摘要】 TCP 协议TCP 提供可靠的、面向连接的服务:在传送数据之前必须先建立连接,数据传送结束后要释放连接。传输过程中会校验数据并返回确认,保证可靠性。一般用于文件传输、发送和接收邮件、远程登录等场景。TCP 连接建立连接建立 TCP 协议采用了三次握手策略:SYN 是 TCP/IP 建立连接时使用的握手信号,接收者到后以 ACK 信号响应(序号加一)。客户端向服务端 发送带有 SYN 标志的数...

TCP 协议

TCP 提供可靠的、面向连接的服务

  1. 在传送数据之前必须先建立连接,数据传送结束后要释放连接。传输过程中会校验数据并返回确认,保证可靠性。

  2. 一般用于文件传输、发送和接收邮件、远程登录等场景。

TCP 连接

建立连接

建立 TCP 协议采用了三次握手策略:SYN 是 TCP/IP 建立连接时使用的握手信号,接收者到后以 ACK 信号响应(序号加一)。

  1. 客户端向服务端 发送带有 SYN 标志的数据包(客户端请求连接)
  2. 服务端向客户端 发送带有 SYN/ACK 标志的数据包(客户端可以正常发送消息)
  3. 客户端向服务端 发送带有带有 ACK 标志的数据包(服务端可以正常发送消息,连接建立)

断开连接

断开 TCP 连接采用了四次挥手策略:FIN 是 TCP/IP 断开连接时使用的终止信号,接收者到后以 ACK 信号响应(序号加一)。

  1. 客户端向服务端 发送带有 FIN 标志的数据包(客户端请求终止)
  2. 服务器向客户端 发送带有 ACK 标志的数据包(客户端不再发送消息,连接半关闭)
  3. 服务器向客户端 发送带有 FIN 标志的数据包(服务端请求终止)
  4. 客户端向服务端 发送带有 ACK 标志的数据包(服务端不再发送消息,连接关闭)

TCP 可靠传输

编号和校验和

  • 编号

发送方将应用报文分割成 TCP 报文段后,会为每一个报文段进行编号。由接收方对数据包进行排序,再把有序数据传送给应用层。

如果收到重复报文段,直接丢弃。

  • 校验和

发送方会计算 TCP 报文段全部数据的检验和,并保存在报文段首部。由接收方对数据包数据进行检验。

如果收到错误报文段,丢弃报文段,并返回错误消息等待重发。

IP 协议校验和只校验首部, TCP 协议校验全部数据。

ARQ 协议

(自动重传请求)发送方发送报文段后,会等待接收方 ACK。如果接收到错误消息或等待超时,将重发这个报文段。用来实现可靠传输。

现在一般使用连续 ARQ 协议:维持一个发送窗口,可以连续发送出去多个报文段而不需要等待对方确认。接收方对按序到达的最后一个报文段发送确认,即表明之前的所有报文段都已经正确收到。提高信道利用率。

如果发送方连续发送了 5 条消息,其中 3 号消息丢失。接收方只会对前两个消息发送确认。发送方必须对后三条消息全部重传。

流量控制和阻塞控制

  • 流量控制:减少数据发送,防止接收方过载导致数据无法处理。

  • 拥塞控制: 减少数据发送,防止网络阻塞导致数据无法到达。

发送方允许连续发送的分组上限受以上两个因素制约,即 发送窗口 = min (接收窗口, 阻塞窗口)

  1. 接收窗口大小由 接收方返回的确认报文中的窗口字段设定。

  2. 拥塞窗口大小根据网络的拥塞程度动态变化,TCP 拥塞窗口变化采取了慢开始、拥塞避免、快重传 和 快恢复 四种策略。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。