拥塞控制

转载十、TCP拥塞控制

梦想的初衷 提交于 2019-12-06 00:19:35
1.慢开始和拥塞避免 发送方维持一个拥塞窗口 cwnd ( congestion window )的状态变量。拥塞窗口的大小取决于网络的拥塞程度,并且动态地在变化。发送方让自己的发送窗口等于拥塞窗口。 发送方控制拥塞窗口的原则是:只要网络没有出现拥塞,拥塞窗口就再增大一些,以便把更多的分组发送出去。但只要网络出现拥塞,拥塞窗口就减小一些,以减少注入到网络中的分组数。 慢开始算法: 当主机开始发送数据时,如果立即所大量数据字节注入到网络,那么就有可能引起网络拥塞,因为现在并不清楚网络的负荷情况。 因此,较好的方法是 先探测一下,即由小到大逐渐增大发送窗口,也就是说,由小到大逐渐增大拥塞窗口数值。 通常在刚刚开始发送报文段时,先把拥塞窗口 cwnd 设置为一个最大报文段MSS的数值。而在每收到一个对新的报文段的确认后,把拥塞窗口增加至多一个MSS的数值。用这样的方法逐步增大发送方的拥塞窗口 cwnd ,可以使分组注入到网络的速率更加合理。 每经过一个传输轮次,拥塞窗口 cwnd 就加倍。一个传输轮次所经历的时间其实就是往返时间RTT。不过“传输轮次”更加强调:把拥塞窗口cwnd所允许发送的报文段都连续发送出去,并收到了对已发送的最后一个字节的确认。 另,慢开始的“慢”并不是指cwnd的增长速率慢,而是指在TCP开始发送报文段时先设置cwnd=1,使得发送方在开始时只发送一个报文段

【计算机网络】-传输层-Internet传输协议-TCP

六眼飞鱼酱① 提交于 2019-12-05 23:59:00
【计算机网络】-传输层-Internet传输协议-TCP TCP介绍 在不可靠的互联网上提供一个可靠的端到端字节流 面向连接的、可靠的、端到端的、基于字节流的传输协议 TCP位置 TCP服务模型 应用程序访问TCP服务 通过在收发双方创建套接字来实现的 套接字的地址 用(IP地址,端口号)来表示的 知名端口 1024以下的端口号,如FTP:21, TELNET:23,SMTP:23 每条连接用(套接字1,套接字2)来表示,是点到点的全双工通道 TCP不支持 多播(multicast)和广播(broadcast) TCP连接是基于字节流的,而非消息流 (a) 按单独IP数据报发送的四个512字节的数据块 (b) 在一次READ调用中传递给应用程序的2048字节的数据 紧急数据 对于应用程序发来的数据,TCP可以立即发送,也可以缓存一段时间以便一次发送更多的数据 为了强迫数据发送,可以使用PUSH标记 对于紧急数据(urgent data),可以使用URGENT标记 序列号 TCP连接上的每个字节都有它自己独有的32位序列号 TCP协议 交换数据形式 发送端和接收段的TCP实体以数据段的形式交换数据 TCP数据段包含一个20字节的头(选项部分另加)和随后的0个或多个数据字节 段的大小要求 每个数据段包括TCP头在内,要适合IP的65515字节净荷大小 每个网络都有一个最大传输单元

网络工程总结

心已入冬 提交于 2019-12-05 16:32:56
tcp/ip 5层架构: 资源子网: 应用层: 为用户的应用程序提供网络通信服务 表示层: 处理被传送数据的表示问题 会话层: 建立.管理,中止不同机器上应用程序间的会话 连接资源子网与通信子网: 传输层: 为源端主机到目的端主机提供可靠的,满足服务质量要求的数据传输服务 屏蔽不同通信子网的差异,使上层不受通信子网技术变化的影响;弥补资源子网和通信子网间差异;提供进程级通信能力 TCP: 面向连接的 可靠通信方式 在网络状况不佳的时候尽量降低系统由于重传带来的带宽开销 通信连接维护是面向通信的两个端点的,而不考虑中间网段和节点 三次握手,四次挥手 数据分片:在发送端对用户数据进行分片,在接收端进行重组,由TCP确定分片的大小并控制分片和重组 超时重发:发送方在发送分片时启动超时定时器,如果在定时器超时之后没有收到相应的确认,重发分片 滑动窗口:TCP连接每一方的接收缓冲空间大小都固定,接收端只允许另一端发送接收端缓冲区所能接纳的数据,TCP在滑动窗口的基础上提供流量控制,防止较快主机致使较慢主机的缓冲区溢出 失序处理:作为IP数据报来传输的TCP分片到达时可能会失序,TCP将对收到的数据进行重新排序,将收到的数据以正确的顺序交给应用层 到达确认:接收端接收到分片数据时,根据分片数据序号向发送端发送一个确认 数据校验:TCP将保持它首部和数据的检验和,这是一个端到端的检验和

TCP拥塞控制

二次信任 提交于 2019-12-05 15:13:23
1.慢开始和拥塞避免 发送方维持一个拥塞窗口 cwnd ( congestion window )的状态变量。拥塞窗口的大小取决于网络的拥塞程度,并且动态地在变化。发送方让自己的发送窗口等于拥塞窗口。 发送方控制拥塞窗口的原则是:只要网络没有出现拥塞,拥塞窗口就再增大一些,以便把更多的分组发送出去。但只要网络出现拥塞,拥塞窗口就减小一些,以减少注入到网络中的分组数。 慢开始算法: 当主机开始发送数据时,如果立即所大量数据字节注入到网络,那么就有可能引起网络拥塞,因为现在并不清楚网络的负荷情况。 因此,较好的方法是 先探测一下,即由小到大逐渐增大发送窗口,也就是说,由小到大逐渐增大拥塞窗口数值。 通常在刚刚开始发送报文段时,先把拥塞窗口 cwnd 设置为一个最大报文段MSS的数值。而在每收到一个对新的报文段的确认后,把拥塞窗口增加至多一个MSS的数值。用这样的方法逐步增大发送方的拥塞窗口 cwnd ,可以使分组注入到网络的速率更加合理。 每经过一个传输轮次,拥塞窗口 cwnd 就加倍。一个传输轮次所经历的时间其实就是往返时间RTT。不过“传输轮次”更加强调:把拥塞窗口cwnd所允许发送的报文段都连续发送出去,并收到了对已发送的最后一个字节的确认。 另,慢开始的“慢”并不是指cwnd的增长速率慢,而是指在TCP开始发送报文段时先设置cwnd=1,使得发送方在开始时只发送一个报文段

TCP协议

依然范特西╮ 提交于 2019-12-05 11:45:05
TCP协议 Posted on 2019-05-17 18:49 章鱼夫 阅读( 17) 评论( 0) 编辑 收藏 TCP协议全称: 传输控制协议(Transmission Control Protocol ), 顾名思义, 就是要对数据的传输进行一定的控制. TCP头部:    16位源端口号/16位目的端口号::表示数据从哪个进程来, 到哪个进程去. 16位数据序号:表示在这个报文段中的第一个数据字节序号 16位确认序号:仅当ACK标志为1时有效。确认号表示期望收到的下一个字节的序号 4位首部长度::表示该tcp报头有多少个4字节(32个bit) 6位保留::顾名思义, 先保留着, 以防万 6位标志位: URG: 标识紧急指针是否有效 ACK: 标识确认序号是否有效 PSH: 用来提示接收端应用程序立刻将数据从tcp缓冲区读走 RST: 要求重新建立连接. 我们把含有RST标识的报文称为复位报文段 SYN: 请求建立连接. 我们把含有SYN标识的报文称为同步报文段 FIN: 通知对端, 本端即将关闭. 我们把含有FIN标识的报文称为结束报文段 16位窗口大小:代表的是窗口的字节容量,也就是TCP的标准窗口最大为2^16 - 1 = 65535个字节 16位检验和::由发送端填充, 检验形式有CRC校验等. 如果接收端校验不通过, 则认为数据有问题.

TCP协议

二次信任 提交于 2019-12-05 11:44:34
TCP协议全称: 传输控制协议(Transmission Control Protocol ), 顾名思义, 就是要对数据的传输进行一定的控制. TCP头部:    16位源端口号/16位目的端口号::表示数据从哪个进程来, 到哪个进程去. 16位数据序号:表示在这个报文段中的第一个数据字节序号 16位确认序号:仅当ACK标志为1时有效。确认号表示期望收到的下一个字节的序号 4位首部长度::表示该tcp报头有多少个4字节(32个bit) 6位保留::顾名思义, 先保留着, 以防万 6位标志位: URG: 标识紧急指针是否有效 ACK: 标识确认序号是否有效 PSH: 用来提示接收端应用程序立刻将数据从tcp缓冲区读走 RST: 要求重新建立连接. 我们把含有RST标识的报文称为复位报文段 SYN: 请求建立连接. 我们把含有SYN标识的报文称为同步报文段 FIN: 通知对端, 本端即将关闭. 我们把含有FIN标识的报文称为结束报文段 16位窗口大小:代表的是窗口的字节容量,也就是TCP的标准窗口最大为2^16 - 1 = 65535个字节 16位检验和::由发送端填充, 检验形式有CRC校验等. 如果接收端校验不通过, 则认为数据有问题. 此处的校验和不光包含TCP首部, 也包含TCP数据部分. 16位紧急指针::用来标识哪部分数据是紧急数据. TCP的三次握手:   

TCP协议

♀尐吖头ヾ 提交于 2019-12-05 11:16:41
TCP协议全称: 传输控制协议(Transmission Control Protocol ), 顾名思义, 就是要对数据的传输进行一定的控制. TCP头部:    16位源端口号/16位目的端口号::表示数据从哪个进程来, 到哪个进程去. 16位数据序号:表示在这个报文段中的第一个数据字节序号 16位确认序号:仅当ACK标志为1时有效。确认号表示期望收到的下一个字节的序号 4位首部长度::表示该tcp报头有多少个4字节(32个bit) 6位保留::顾名思义, 先保留着, 以防万 6位标志位: URG: 标识紧急指针是否有效 ACK: 标识确认序号是否有效 PSH: 用来提示接收端应用程序立刻将数据从tcp缓冲区读走 RST: 要求重新建立连接. 我们把含有RST标识的报文称为复位报文段 SYN: 请求建立连接. 我们把含有SYN标识的报文称为同步报文段 FIN: 通知对端, 本端即将关闭. 我们把含有FIN标识的报文称为结束报文段 16位窗口大小:代表的是窗口的字节容量,也就是TCP的标准窗口最大为2^16 - 1 = 65535个字节 16位检验和::由发送端填充, 检验形式有CRC校验等. 如果接收端校验不通过, 则认为数据有问题. 此处的校验和不光包含TCP首部, 也包含TCP数据部分. 16位紧急指针::用来标识哪部分数据是紧急数据. TCP的三次握手:   

TCP协议

我的未来我决定 提交于 2019-12-05 06:33:40
TCP协议全称: 传输控制协议(Transmission Control Protocol ), 顾名思义, 就是要对数据的传输进行一定的控制. TCP头部:    16位源端口号/16位目的端口号::表示数据从哪个进程来, 到哪个进程去. 16位数据序号:表示在这个报文段中的第一个数据字节序号 16位确认序号:仅当ACK标志为1时有效。确认号表示期望收到的下一个字节的序号 4位首部长度::表示该tcp报头有多少个4字节(32个bit) 6位保留::顾名思义, 先保留着, 以防万 6位标志位: URG: 标识紧急指针是否有效 ACK: 标识确认序号是否有效 PSH: 用来提示接收端应用程序立刻将数据从tcp缓冲区读走 RST: 要求重新建立连接. 我们把含有RST标识的报文称为复位报文段 SYN: 请求建立连接. 我们把含有SYN标识的报文称为同步报文段 FIN: 通知对端, 本端即将关闭. 我们把含有FIN标识的报文称为结束报文段 16位窗口大小:代表的是窗口的字节容量,也就是TCP的标准窗口最大为2^16 - 1 = 65535个字节 16位检验和::由发送端填充, 检验形式有CRC校验等. 如果接收端校验不通过, 则认为数据有问题. 此处的校验和不光包含TCP首部, 也包含TCP数据部分. 16位紧急指针::用来标识哪部分数据是紧急数据. TCP的三次握手:   

【计算机网络】TCP基础知识详解

橙三吉。 提交于 2019-12-05 05:16:33
1. TCP概念相关 [!NOTE] TCP(Transmission Control Protocol),又叫传输控制协议。 TCP协议是面向连接的,可靠的,基于字节流的传输协议。在基于 TCP 进行通信时,通信双方需要先建立一个 TCP 连接,建立连接需要经过三次握手,断开连接的时候需要经过四次挥手。 1.1 TCP头部 对于 TCP 头部来说,以下几个字段是很重要的: 序列号 (Sequence number),这个序号保证了 TCP 传输的报文都是有序的,对端可以通过序号顺序的拼接报文 确认号 (Acknowledgement Number),这个序号表示数据接收端期望接收的下一个字节的编号是多少,同时也表示上一个序号的数据已经收到 窗口大小 (Window Size),表示还能接收多少字节的数据,用于流量控制 标识符 ACK=1 :该字段为一表示确认号字段有效。此外,TCP 还规定在连接建立后传送的所有报文段都必须把 ACK 置为一。 SYN=1:当SYN=1,ACK=0时,表示当前报文段是一个连接请求报文。当SYN=1,ACK=1时,表示当前报文段是一个同意建立连接的应答报文。 FIN=1:该字段为一表示此报文段是一个释放连接的请求报文。 URG=1 : 该字段为一表示本数据报的数据部分包含紧急信息,是一个高优先级数据报文,此时紧急指针有效

TCP/IP协议

拈花ヽ惹草 提交于 2019-12-05 04:21:10
关于 TCP/IP,必知必会的10个问题 一、TCP/IP模型 TCP/IP协议模型(Transmission Control Protocol/Internet Protocol),包含了一系列构成互联网基础的网络协议,是Internet的核心协议。 基于TCP/IP的参考模型将协议分成四个层次,它们分别是链路层、网络层、传输层和应用层。下图表示TCP/IP模型与OSI模型各层的对照关系。 TCP/IP协议族按照层次由上到下,层层包装。最上面的是应用层,这里面有http,ftp,等等我们熟悉的协议。而第二层则是传输层,著名的TCP和UDP协议就在这个层次。第三层是网络层,IP协议就在这里,它负责对数据加上IP地址和其他的数据以确定传输的目标。第四层是数据链路层,这个层次为待传送的数据加入一个以太网协议头,并进行CRC编码,为最后的数据传输做准备。 上图清楚地表示了TCP/IP协议中每个层的作用,而TCP/IP协议通信的过程其实就对应着数据入栈与出栈的过程。入栈的过程,数据发送方每层不断地封装首部与尾部,添加一些传输的信息,确保能传输到目的地。出栈的过程,数据接收方每层不断地拆除首部与尾部,得到最终传输的数据。 上图以HTTP协议为例,具体说明。 二、数据链路层 物理层负责0、1比特流与物理设备电压高低、光的闪灭之间的互换。 数据链路层负责将0