计算机网络(5)-传输层--TCP传输:可靠数据传输、流量控制、连接管理、拥塞控制

一. TCP传输

TCP连接提供的服务是全双工服务,同一连接能够双向传输数据,同时,也是点对点的连接(仅有一个发送方和一个接收方)。
==1==
在这里插入图片描述

在这里插入图片描述

1 TCP报文段结构

TCP报文段由首部字段和数据字段组成。

  1. 首部字段

    源端口号和目的端口号:用于多路分用和多路复用
    因特网检验和:差错检验
    序号和确认号(32比特):用于实现可靠数据传输服务
    接收窗口字段(16bite):用于流量控制,该字段指示接收方愿意接收的字节数量。
    首部长度字段(4bit):典型长度20bit
    可选与变长的选项字段:用于双方协商最大报文长度、或在高速网络环境下用于窗口调节因子。
    标志字段(6bit):ACK用于确认字段是否有效、RST、SYN、FIN用于连接的建立和拆除

==2==
2. 序号和确认号
序列号指的是segment中第一个字节的编号,而不是segment的编号
==3==
ACKs:希望接收到的下一个字节的序列号
==4==
telnet示例:
==5==
==6==
==7==


2 TCP可靠数据传输

TCP在IP层提供的不可靠服务基础上实现可靠数据传输服务。使用了流水线机制、累积确认机制、使用单一的重传定时器。采用重传来处理丢包,触发重传的时间包括定时器超时和收到重复ACK。

  1. 定时器超时时间设置与往返时间(RTT)的估计
    定时器的超时时间是肯定要大于RTT的.

    RTT的估计方式为:测量从段发出去到收到ACK的时间(称为SampleRTT,
    忽略重传),测量多个SampleRTT,求平均值,形成RTT的估计值EstimatedRTT
    ==8==
    ==9==

    定时器时间设置:TimeoutInterval = EstimatedRTT + 4*DevRTT

  2. 发送方处理事件
    为了实现可靠性数据传输,发送方需要进行一些事件处理。

  1. 从应用层收到数据: 创建Segment、序列号是Segment第一个字节的编号、 开启计时器、设置超时时间TimeOutInterval
  2. 超时:重传引起超时的Segment、重启定时器
  3. 收到ACK:如果确认此前未确认的Segment, 则更新SendBase,如果更新后,窗口中还有未被确认的分组,重新启动定时器(这里采用的是单一重传)。

==10==

  1. 接收方处理
    ==11==
  2. 快速重传机制
    收到3个冗余的ACK,则进行快速重传。
    ==12==

3 TCP流量控制

==14==
TCP为应用程序提供了流量控制服务,以消除发送方使接收方缓存溢出的可能性。流量控制实际上是一个速度匹配服务
==13==


4 TCP连接管理:3次握手和四次挥手

强烈推荐:TCP的三次握手与四次挥手(详解+动图)

  1. 建立连接:三次握手
    ==15==
    ==16==
    ==17==
    ==18==
  2. 关闭连接
    ==19==

二. 拥塞控制原理

拥塞(Congestion)非正式定义:“太多发送主机发送了太多数据或者发送速度太快,以至于网络无法处理”
表现: 分组丢失(路由器缓存溢出)、 分组延迟过大(在路由器缓存中排队)

1. 拥塞的成因和代价

  • 情况1:两个发送方和一台具有无穷大缓存的路由器
    ==20==
  • 情况2:两个发送方和一台具有有限缓存的路由器
    ==21==
    ==22==

2. 拥塞控制方法

  1. 网络辅助的拥塞控制
    路由器向发送方显式地反馈网络拥塞信息 ,简单的拥塞指示(1bit):SNA, DECbit, TCP/IP ECN, ATM) ,指示发送方应该采取何种速率。
  2. 端到端的拥塞控制 (TCP)
    网络层不需要显式的提供支持,端系统通过观察loss,delay等网络行为判断是否发生拥塞。 TCP采取这种方法。

三. TCP拥塞控制

TCP必须通过端到端的控制方法解决拥塞控制,因为IP层不会向端系统提供有关网络拥塞的反馈信息。
==23==

1. 拥塞控制的基本原理

首先是如何限制TCP发送方向连接发送的流量速率,主要采取的方式是控制拥塞窗口cwnd的大小
==24==
其次是如何使发送方感知网络拥塞:丢包时间则意味着拥塞
==25==
最后是如何合理的调整发送速率,主要采用的是TCP拥塞控制算法

2. TCP拥塞控制算法

  1. 加性增-乘性减算法:AIMD
    ==26==
  2. 慢启动:SS
    ==27==
    ==28==
  3. 拥塞避免
    ==29==

==30==

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值