`
mmdev
  • 浏览: 12935112 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

【传输层】传输控制协议TCP概述 之二

 
阅读更多

一,TCP的流量控制

1)利用滑动窗口实现流量控制:让发送方的速度不要太快,接收方来得及接收

TCP窗口单位为字节,不是报文段。

2)MSS: Maximum Segment Size 最大分段大小最大传输大小是TCP数据包每次能够传输的最大数据分段。
   为了达到最佳的传输效能,TCP协议在建立连接的时候通常要协商双方的MSS值,这个值TCP协议在实现的时候往往用MTU值代替(需要减去IP数据包包头的大小20Bytes和TCP数据段的包头20Bytes)所以一般MSS值1460

   通讯双方会根据双方提供的MSS值得最小值确定为这次连接的最大MSS值。
   注:最大报文段长度MSS这个名词很容易引起误解。MSS是TCP报文段中的数据字段的最大长度。数据字段加上TCP首部才等于整个的TCP报文段。所以MSS并不是TCP报文段的最大长度,而是:MSS=TCP报文段长度-TCP首部长度

3)糊涂窗口综合症

当发送端应用进程产生数据很慢、或接收端应用进程处理接收缓冲区数据很慢,或二者兼而有之;就会使应用进程间传送的报文段很小,特别是有效载荷很小。 极端情况下,有效载荷可能只有1个字节;而传输开销有40字节(20字节的IP头+20字节的TCP头) 这种现象就叫糊涂窗口综合症

比如:TCP 接收端缓存空间已经满,交互式应用程序一次只能从接收空间读取一个字节,然后向发送端发送确认,把窗口设置为1字节。发送端发送41字节传输开销有40字节(20字节的IP头+20字节的TCP头)。

问题解决:让接收端等待一段时间,使得有足够的空闲空间可以容纳一个最长报文段或拥有一半的空闲。

发送方:要积累一定数据段后才发送。


二,TCP 的拥塞控制

拥塞控制是一个全局性过程,防止过多的数据注入到网络中,使网络路由器或链路不至于过载。

流量控制是一个端到端过程,控制发送端,不要发送过快,让接收端来得及处理。

开环控制:设计网络时,事先将有关发生拥塞的因素都考虑清楚。

闭环控制:基于反馈环路的概念

拥塞控制方法:

1)慢开始和拥塞避免

发送方控制窗口的原则:只要网络没有出现拥塞,窗口就增大一些,以便把更多的分组发送出去。一旦出现拥塞,就把窗口减小,减少注入到网络中的分支数。

慢开始和拥塞避免算法必须被TCP发送端用来控制正在向网络输送的数据量。为了实现这些算法,必须向TCP每连接状态加入两个参量。

拥塞窗口(cwnd)是对发送端收到确认(ACK)之前能向网络传送的最大数据量的一个发送端限制,

接收端通知窗口(rwnd)是对未完成数据量的接收端限制。

Min(Cwnd,rwnd)决定了数据传送
   另一个状态参量,慢启动阀值(ssthresh),被用来确定是用慢启动还是用拥塞避免算法来控制数据传送
  

cwnd<ssthresh 慢开始算法

cwnd>ssthresh拥塞避免算法

cwnd和ssthresh 既可以使用慢启动也可以使用拥塞避免
   慢开始:cwnd大小指数增加,即每经过一个传输轮次,拥塞窗口加倍。

   拥塞避免:cwnd以每个往返(RTT)1满尺寸数据段的速度递增,即每经过一个传输轮次,拥塞窗口增加 1 。(cwnd+=SMSS*SMSS/cwnd

执行拥塞避免算法时候,网络出现拥塞(没有按时收到确认),讲慢开始门限(ssthresh)设置为出现拥塞时窗口大小的一半,然后讲cwnd重新设置为1,执行慢开始算法。

 
2)快速重传/快速恢复
快重传:接收方收到一个失序的报文段后就立即发出重复确认(让发送方及早知道有报文段没有到达接收端),而不要等到接收端发送数据时候捎带确认。

收到M1、M2又收到了M4,则M3丢失,如果接下来的几个报文段都不是M3,则发送M2 确认,如果是M5则再次发M2确认,当发送端收到3个重复确认就应该立即重传M3.

快恢复:当收到三个重复确认,执行乘法减小算法,把慢开始门限ssthresh减半。不执行慢开始算法。

此时执行拥塞避免算法,因为网络没有发生拥塞,如果拥塞就不会一连接受到三个报文。


三,随机早期检测RED

1)概述

路由器的分组丢弃策略对TCP拥塞控制影响很大。

如果发生了路由丢弃,说明出现了拥塞。路由丢弃的是IP分组,而一个IP分组有可能包含好几个TCP连接,所以导致许多TCP同时进入慢开始状态。全局同步

2)丢弃策略

最大门限THmax ,如果分组多余THmax则一定丢弃。

处于两门限之间的要以概率p丢弃个别分组,让拥塞控制只在个别TCP连接上进行,因而避免发生全局性拥塞控制。

最小门限THmin,小于THmin的分组不予丢弃

THmax = 2*THmin 是合适的






分享到:
评论

相关推荐

    计算机网络原理-113第5章 传输层--TCP协议概述.mp4

    计算机网络原理-113第5章 传输层--TCP协议概述.mp4

    《TCP/IP详解,卷1:协议》

    第17章 TCP:传输控制协议 170 第18章 TCP连接的建立与终止 174 第19章 TCP的交互数据流 200 第20章 TCP的成块数据流 209 第21章 TCP的超时与重传 226 第22章 TCP的坚持定时器 245 第23章 TCP的保活定时器 251 第24...

    TCP/IP协议详解卷二:实现

    第二十二章 协议控制块 第二十三章 UDP:用户数据报协议 第二十四章 TCP:传输控制协议 第二十五章 TCP的定时器 第二十六章 TCP输出 第二十七章 TCP的函数 第二十八章 TCP的输入 第二十九章 TCP的输入(续) 第三十...

    TCP-IP详解卷1:协议

    第17章 TCP:传输控制协议 170 17.1 引言 170 17.2 TCP的服务 170 17.3 TCP的首部 171 17.4 小结 173 第18章 TCP连接的建立与终止 174 18.1 引言 174 18.2 连接的建立与终止 174 18.2.1 tcpdump的输出 174 18.2.2 ...

    TCP/IP协议详解:卷1协议

    第17章 TCP:传输控制协议 第18章 TCP连接的建立与终止 第19章 TCP的交互数据流 第20章 TCP的成块数据流 第21章 TCP的超时与重传 第22章 TCP的坚持定时 第23章 TCP的保活定时器 第24章 TCP的未来和性能 第25章 SNMP...

    计算机网络技术(毕业论文).docx

    第一章 计算机网络基础 4 1.1 计算机网络概述 4 ...5.2 传输层的协议 21 5.3 TCP协议 22 5.4 UDP协议 22 第六章 应用层 24 6.1 应用层的功能 24 6.2 应用层的协议 25 6.3 HTTP协议 26 6.4 DNS协议 27 参考文献 28

    TCP_IP协议详解卷一

    第17章 TCP:传输控制协议 170 17.1 引言 170 17.2 TCP的服务 170 17.3 TCP的首部 171 17.4 小结 173 第18章 TCP连接的建立与终止 174 18.1 引言 174 18.2 连接的建立与终止 174 18.2.1 tcpdump的输出 174 18.2.2 ...

    TCP-IP协议详解卷一(英文原版)

    与其他的TCP/IP书藉的最大不同在于,本书不仅仅讲述了RFCS的标准协议,而且结合大量实例讲述了TCP/IP协议包的定义原因及在各种不同的操作系统中(如Sunos4.1.3、Soloris2.2、AIX...,使读者可以轻松掌握TCP/IP的知识...

    嵌入式Linux网络体系结构设计与TCP/IP协议栈.part4.rar

    第8~9章介绍传输层数据收发过程,重点介绍基于套接字的TCP/UDP传输实现。第10章讨论了Linux内核套接字层的实现,以及套接字层与应用层、传输层之间的接口。第11章介绍网络应用软件的开发技术,以及内核对网络应用的...

    TCP-IP详解卷一:协议

    第17章 TCP:传输控制协议 170 17.1 引言 170 17.2 TCP的服务 170 17.3 TCP的首部 171 17.4 小结 173 第18章 TCP连接的建立与终止 174 18.1 引言 174 18.2 连接的建立与终止 174 18.2.1 tcpdump的输出 174 18.2.2 ...

    嵌入式Linux网络体系结构设计与TCP/IP协议栈.part5

    第8~9章介绍传输层数据收发过程,重点介绍基于套接字的TCP/UDP传输实现。第10章讨论了Linux内核套接字层的实现,以及套接字层与应用层、传输层之间的接口。第11章介绍网络应用软件的开发技术,以及内核对网络应用的...

    嵌入式Linux网络体系结构设计与TCP/IP协议栈.part3.rar

    第8~9章介绍传输层数据收发过程,重点介绍基于套接字的TCP/UDP传输实现。第10章讨论了Linux内核套接字层的实现,以及套接字层与应用层、传输层之间的接口。第11章介绍网络应用软件的开发技术,以及内核对网络应用的...

    TCP/IP协议详解

    TCP/IP详解 1 概述 1.1 引言 ...在TCP/IP协议组件中,网络层协议包括IP协议(网际协议),ICMP协议(Internet互连网控制报文协议),以及IGMP协议(Internet组管理协议)。 详细内容,请下载浏览。

    TCP-IP详解卷二 TCP-IP详解卷二 TCP-IP详解卷二

    第22章协议控制块 第23章UDP:用户数据报协议 第24章TCP:传输控制协议 第25章TCP的定时器 第19章选路请求和选路 第26章TCP输出 第27章TCP的函数 第28章TCP的输入 第29章TCP的输入(续) 第30章TCP的用户需求 第31章...

    TCP-IP详解卷3:TCP事务协议,HTTP,NNTP和UNIX域协议

    第1章 T/TCP概述 1 1.1 概述 1 1.2 UDP上的客户-服务器 1 1.3 TCP上的客户-服务器 6 1.4 T/TCP上的客户-服务器 12 1.5 测试网络 15 1.6 时间测量程序 15 1.7 应用 17 1.8 历史 19 1.9 实现 20 1.10 小结 21 第2章 T/...

    TCP-IP详解卷一 协议(高清书签版)

    第17章 TCP:传输控制协议 第18章 TCP连接的建立与终止 第19章 TCP的交互数据流 第20章 TCP的成块数据流 第21章 TCP的超时与重传 第22章 TCP的坚持定时 第23章 TCP的保活定时器 第24章 TCP的未来和性能 第25章 SNMP...

    TCP-IP详细协议

    第17章 TCP:传输控制协议 170 17.1 引言 170 17.2 TCP的服务 170 17.3 TCP的首部 171 17.4 小结 173 第18章 TCP连接的建立与终止 174 18.1 引言 174 18.2 连接的建立与终止 174 18.2.1 tcpdump的输出 174 18.2.2 ...

    TCP/IP详解卷1:协议

    第17章 TCP:传输控制协议 170 17.1 引言 170 17.2 TCP的服务 170 17.3 TCP的首部 171 17.4 小结 173 第18章 TCP连接的建立与终止 174 18.1 引言 174 18.2 连接的建立与终止 174 18.2.1 tcpdump的输出 174 18.2.2 ...

    13、第六单元-传输层1

    第六单元 传输层本节内容概述 ...传输层的多路复用 ...端口号 ...传输控制协议(TCP) ...TCP报文格式 ...三次握手建立连接 ...四次握手释

Global site tag (gtag.js) - Google Analytics