TCP可靠传输、拥塞控制、沾包知识点

TCP面向连接,传输可靠
传输数据前需要先建立连接,结束后断开

TCP分层:
应用层:通过应用进程间交互完成网络任务
传输层:负责进程间提供数据传输服务(TCP/UDP)
网络层:网络层选择合适路由、节点确保数据传送(TCP/IP采用IP协议)
链路层:链路层将IP数据报装成帧
物理层:物理层实现计算机比特流传送

UDP面向无连接,传输不可靠
发送方直接发送,接收方直接接受

TCP保证可靠传输:
①校验和:TCP将保存首部和数据的校验和,当接收端接收后将计算,若校验和不一致,丢弃,不确定收到。
②流量控制:TCP连接每一方都有一个固定大小缓冲区,TCP接收端只允许发送端发送接收端缓冲区能接纳的数据。当接收方不可处理发送方数据,可以提示发送方降低发送速率。
③拥塞控制:当网络拥塞,发送方调整数据发送策略。
④ARQ(自动重传)协议:每发完一个分组停止,等待确认后再继续发送。(有超时、确认两个机制)
⑤超时重传:TCP发送分组后启动定时器,等待确认,若确认超时则重新发送。

流量控制:TCP采用滑动窗口控制,接收方的确认报文可以控制发送方窗口大小。

拥塞控制:
①慢开始:当刚开始发送数据时,先从小到大增大发送窗口(二倍提升)
②拥塞避免:当窗口达到慢开始门限值(初始16),改用拥塞避免算法,即一个一个开始加窗口大小。当网络拥塞后,窗口门限设置为当前一半,再重新慢开始、拥塞避免
③快重传:当接收方收到一个失序报文时立刻发送重复确认,而不是等到自己发送时再确认。发送方接收到连续重复确认三次后,直接重传丢失部分。
④快恢复:当连续收到三个重复确认,将窗口门限减半,但不执行慢开始,而是将窗口大小直接设置为门限大小,并执行拥塞控制增大窗口。

粘包:
定义:发送方若干数据包在到达接收方时粘到一起。

原因:
发送端:①要发送的数据小于缓冲区大小,发送时将多次写入缓冲区的数据一次性发送出去。
②Nagle算法:作用:减少网络报文数量
机制:在上一个小组确认,才发送下一个小组;收集多个小组,在一个确认到达时才一起发送。

接收端:没有及时读取缓冲区数据

处理:
发送方:关闭Nagle算法
接收方:让应用层从接收方缓存区读取数据时,给每个数据加上开始、结束标志

注:因为TCP为了保证可靠传输,采用基于流的传输,流并不认为消息是一条一条的,而是无保护消息边界的。
UDP是面向消息传输,接收方一次只接收一条独立消息(有消息保护边界),不存在粘包。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

魔幻音

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值