




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ComputerNetwork计算机网络传输层2进程通信与端口传输层基本概念网络服务质量6.1传输层概述6.2用户数据报协议UDP6.3传输控制协议TCP本章主要内容TCP报文TCP连接管理TCP滑动窗口、流量控制TCP拥塞控制TCP计时器管理UDP基本概念UDP数据报6.1传输层概述3进程定义:进程是一个动态的概念,是一个程序对某个数据集的执行过程。进程特性:进程具有并发特性,是分配计算机资源的基本单位。进程组成:进程控制块(PCB)、有关程序段、对其操作的数据。端口:用于区分同一个主机上的不同进程,用端口号标识网络端口。端口号:用于标识一个进程,是一个16比特的整数(0~65535)。TCP/IP协议中端口号一般分为3大类:熟知端口:0~1023,由公共域协议使用,由IANA分配,一般提供给服务器使用。注册端口:1024~49151,需要向IANA注册才能使用。动态和/或私有端口:49152~65535,一般由操作系统分配的临时端口号,提供给程序或客户端使用。进程与端口定义网络服务质量进程通信与端口传输层基本概念6.1传输层概述4端口号协议应用层协议(进程)描述20/21TCPFTP-DATA/Control文件传输协议-数据连接/控制连接23TCPTelnet远程登录25TCPSMTP简单邮件传输协议53TCP/UDPDNSDNS服务器67/68UDPDHCPServer/ClientDHCP服务器/客户69UDPTFTP简单文件传输协议80TCPHTTP超文本传输协议110TCPPOP3邮局协议版本3443TCPHTTPS安全HTTPTCP/UDP熟知端口网络服务质量进程通信与端口传输层基本概念6.1传输层概述5套接字机制(socket
):网络进程通信一般采用socket机制,也称为套接字机制。socket
描述:采用
3元组描述
<协议,IP地址,端口号>socket
原理:TCP/IP网络中,每个应用进程首先创建一个socket,然后对该socket赋值,并将应用进程与socket进行绑定。两个应用进程间通信:用一对socket标识,一对socket是一个5元组
<协议,本地主机IP地址,本地端口,远程主机IP地址,远程端口>每个套接字(socket)在本地关联一个端口号。网络通信通过套接字(socket)中的IP地址和端口号识别某一台主机中的某一进程。套接字机制网络服务质量进程通信与端口传输层基本概念6.1传输层概述6通过端口号识别进程
80…80主机接收到的IP报文TCP/UDP首部IP首部通过IP地址识别主机80传输层应用层网络层5325端口号网络服务质量进程通信与端口传输层基本概念套接字工作原理193.24.26.6193.24.26.86.1传输层概述网络服务质量进程通信与端口传输层基本概念传输层地位传输层位于应用层和网络层之间基于网络层提供的服务数据转发功能,向分布式应用程序提供通信服务。按照因特网的“端到端”设计原则应用程序只运行在终端上。因此,传输层只运行在端节点中,网络通信设备(如路由器)不存在传输层。从应用程序角度看传输层应提供进程之间本地通信的抽象,即运行在不同终端上的应用进程仿佛是直接连在一起的。applicationtransportnetworkdatalinkphysicalapplicationtransportnetworkdatalinkphysicalapplicationtransportnetworkdatalinkphysical7传输层功能:在网络层提供主机通信的基础之上实现进程通信功能。传输层基本服务:将主机间交付扩展到进程间交付,通过复用和分用实现。processsocket传输层从多个套接字收集数据,交给网络层发送(发送端)复用:传输层应用层物理层链路层网络层P2P1传输层应用层物理层链路层网络层P4传输层应用层物理层链路层网络层P3传输层将从网络层收到的数据,交付给正确的套接字(接收端)分用:6.1传输层概述传输层功能8网络服务质量进程通信与端口传输层基本概念6.1传输层概述9传输层与网络层的区别网络层传输层为主机间提供逻辑通信为应用进程间提供端到端的逻辑通信体系结构中低三层的应用,只提供相邻节点间通信,即路由器最高层为网络层,没有传输层提供端到端的通信,即主机协议栈中才有传输层只检查IP数据报首部而不检查数据部分对整个报文进行差错检查通过IP地址识别通信主机通过端口号识别应用进程提供“尽力而为”的服务:尽最大努力在终端间交付分组,但不提供任何承诺:不保证交付,不保证按序交付,不保证数据完整,不保证延迟,不保证带宽等提供“有所为、有所不为”的服务:通过差错恢复、重排序等手段提供可靠、按序的交付服务,但传输层无法提供延迟保证、带宽保证等服务网络服务质量进程通信与端口传输层基本概念6.1传输层概述10对于面向连接的传输层,衡量其服务质量(QoS)的重要指标如下:连接建立延迟/释放延迟、连接建立/释放失败概率、传输延迟、吞吐率、残留误码率、传输失败概率、优先级、恢复功能讨论传输层服务质量参数需要注意的问题服务质量参数由传输层用户在请求建立连接时设定。它表明希望得到和可以接受的最低限度要求。有些情况下,传输层通过检查服务质量参数,若发现其中某些值无法达到。则传输层可拒绝与目的主机连接,通知传输用户连接请求失败,并报告失败原因。有些情况下,若传输层发现不能达到用户希望的质量参数,但可达到稍微低一些的要求,则它会降低要求,然后再请求建立连接。传输层服务质量(QoS)网络服务质量进程通信与端口传输层基本概念11UDP概述UDP数据报用户数据报协议UDP(UserDatagramProtocol):在IP提供的主机通信基础上通过端口机制为端用户提供进程通信功能。是一种无连接的、无拥塞控制、无纠错、重传、丢包、复制或重新排序的数据包检测功能的不可靠的传输层协议。UDP提供的服务进程到进程之间的报文交付报文完整性检查(可选):检测并丢弃出错的报文UDP应用场合主要应用于实时要求高、差错要求低的场合。如IP电话、视频会议、流媒体数据传输等。此外,路由选择协议RIP、域名解析DNS、网络管理协议SNMP、网络文件服务NFS、网络电话VoIP等应用也都采用UDP。6.2
用户数据报协议UDPUDP基本概念6.2
用户数据报协议UDP12UDP不保证传输质量:不随意丢弃数据报,尽最大努力将数据包交付到目的主机、不保证投递的可靠性和顺序、不保证带宽及延迟要求。UDP缺少流量控制功能,当路由器拥塞时将导致大量的数据包丢失。UDP具有将分片的数据包重组的功能。UDP使用端口号(识别应用进程)与服务器进行通信。UDP没有连接建立过程、系统开销很小,非常适用于查询/响应等实时应用。UDP传输数据是面向报文的。UDP的首部开销小,只有8个字节,比TCP的20个字节首部短。UDP特性UDP概述UDP数据报6.2
用户数据报协议UDP13发送方应用进程应用层数据UDP数据UDP首部IP数据部分IP首部帧的数据部分帧首部帧尾0111111001000111010……0011001111110接收方应用进程应用层数据UDP数据UDP首部IP数据部分IP首部帧的数据部分帧首部帧尾0111111001000111010……0011001111110物理层数据链路层网络层传输层应用层UDP数据报传输过程UDP概述UDP数据报8字节20字节6.2
用户数据报协议UDP14UDP数据报组成报文首部:携带协议处理需要的信息,8个字节数据部分:携带的上层数据UDP报文各字段含义源端口号:标识发送端进程,取值
1~65535目的端口号:标识接收端进程,取值
1~65535报文总长度:包含首部和数据,取值
8~65535字节校验和:可选,若不计算校验和,该字段填入0UDP报文格式UDP概述UDP数据报UDP数据报格式32bits源端口号目的端口号应用层数据(message)报文长度校验和UDP首部(8字节)UDP数据6.2
用户数据报协议UDP15计算UDP校验和时,需包含UDP伪首部、UDP首部和UDP数据3个部分UDP伪首部取自IP首部,包括:源IP地址,目的IP地址UDP协议号:取值为17UDP报文段总长度计算校验和时包含伪首部:为避免由于IP地址错误等造成误投递UDP校验和字段可选,若不计算校验和,该字段填入0UDP概述UDP数据报UDP校验和计算源IP地址(32位)目的IP地址(32位)0(8位)协议(8位)报文总长度(16位)源端口号(16位)目的端口号(16位)报文总长度(16位)校验和(16位)UDP报文数据UDP伪首部UDP首部6.2
用户数据报协议UDP16UDP概述UDP数据报UDP校验和计算举例05001715108713150TESTING填充010011001000100100000100001101001101010110000001000001110000010100000000000010001000000000000111100000100001111110000000000001101000000000000111100000000000000000000000000000000010101000100010101010011010101000100100101001110010001110000000010010110111010110110100100010100153.188.105171.214.100and17151087131500(校验和初值)TandESandTIandNGand0(填充)求和校验和
【例6-1】UDP报文及伪首部内容如下:试计算校验和。【解】6.2
用户数据报协议UDP17UDP概述UDP数据报UDP例题【例6-2】一个UDP用户数据的数据字段为8192Byte,假定IP数据报为固定首部,数据链路层采用以太网传送。
问题:(1)应当划分为几个IP数据报片?
(2)说明每一个IP数据报数据字段长度和片偏移字段的值。UDP报文段820IP数据报以太网数据帧1480181500UDP报文数字字段长度8192Bytes148014801480148014808000185370555740925【解】(1)UDP数据报总长度为:8192+8=8200Byte
以太网数据帧的数据字段最大长度为1500Byte,其中含IP固定首部20Byte
因此,IP数据报的数据字段最大长度为1480Bytes
因为8200/1480≈5.54,向上取整,所以,需要划分为6个IP数据报片。(2)各IP数据报片数据字段长度:前5片均为1480Byte,最后1片为800Byte各IP数据报片片偏移字段分别为:0,185,370,555,740,9256.2
用户数据报协议UDP18UDP概述UDP数据报UDP例题【例6-3】一个应用程序用UDP传输,到IP层将数据报划分为4个数据报片发送,结果前2个数据报片丢失,后2个到达目的站。过了一段时间应用程序重传UDP报文,IP层仍然划分为4个数据报片传送,结果这次前2个到达目的站而后2个丢失。
问题:在目的站能否将这两次传输的4个数据报片组装成完整的数据报?假定目的站第一次收到的后2个数据报片仍然保存在目的站的缓存中。【解】不可以。
因为,IP数据报重组时,仅当标识相同的IP数据报片才能组装成一个IP数据报。
但IP数据报重传时,其标识字段会发生改变,因此,前后两次传输的标识不相同。
即
前2个IP数据报片标识符与后2个IP数据报片标识不同,因此,不能组装成一个IP数据报。6.3
传输控制协议TCP19TCP概述TCP报文连接管理差错控制流量控制拥塞控制计时器管理TCP是一个面向连接的、提供可靠的、端到端传输、全双工通信服务的传输协议。TCP基本概念TCP提供的功能(特点)提供面向连接服务:两个应用进程通信前,相互发送一些预备报文段完成连接建立,为本次通信创建数据传输所需的状态(套接字、缓存、变量等)。注意:TCP连接状态保留在端系统(发送方和接收方)中,即TCP只在端系统中运行,不在中间网络元素(路由器)中运行,中间网络元素不会维持TCP连接状态,它们不知TCP连接,因此它们面对的是数据报,不是连接。提供端到端的全双工通信:仅涉及一对通信进程,可同时双向传输数据。支持可靠、有序的字节流传输:在一对通信的进程之间提供一条理想的字节流管道,不保留报文边界。提供差错控制、流量控制与拥塞控制。20TCP概述TCP报文连接管理差错控制流量控制拥塞控制计时器管理6.3
传输控制协议TCP源端口号、目的端口号:与UDP含义相同序号:发送端发送报文数据部分的首字节编号确认号:接收端对已正确接收报文的确认,其值
为希望接收报文的首字节编号首部长度:TCP报文首部的长度,以4B为单位通告窗口:接收端还可以接收的字节数
校验和:校验完整报文(首部+数据+伪首部)6个标志位:URG=1:数据中包含紧急数据(一般未用)ACK=1:表示确认号有效PSH=1:表示立即发送数据(一般未用)RST=1:表示TCP连接出现异常,终止重启SYN,FIN:用于连接建立和连接释放TCP报文格式32bitsTCP首部(20~60B)TCP数据部分选项固定部分(20B)源端口号目的端口号应用层数据(长度可变)序号确认号通告窗口紧急指针校验和U首部长度保留选项(长度可变)APRSFTCP固定首部字段说明21最大段长度(MSS)TCP段中可以携带的最大数据字节数建立连接时,每个主机可声明自己能够接受的MSS,缺省为536字节窗口比例因子(windowscale)建立连接时,双方可以协商一个窗口比例因子实际接收窗口大小=windowsize*2windowscale选择确认(SACK)最初的TCP协议只使用累积确认改进的TCP协议引入选择确认,允许接收端指出缺失的数据字节TCP首部重要选项说明6.3
传输控制协议TCPTCP概述TCP报文连接管理差错控制流量控制拥塞控制计时器管理22发送序号:数据载荷中第一个字节在字节流中的序号确认号:期望接收的下一个字节的序号初始序号ISN的选取:每个TCP实体维护一个32位计数器,该计数器每4微秒增1,建立连接时从中读取计数器当前值(依赖具体实现,见连接管理)初始序号ISNTCPA(发送端)TCPB(接收端)6.3
传输控制协议TCPTCP概述TCP报文连接管理差错控制流量控制拥塞控制计时器管理TCP报文序号与确认号位置数据数据23举例1:主机A正确接收主机B发送的0~535字节报文段,等待主机B发送536及后续字节。
则主机A发送确认报文,确认号=536,表示期望主机B发送536及后续字节。举例2:主机A正确接收主机B发送的0~535字节报文段,以及900~1000字节报文段,但未收到536~899字节报文段,则主机A将继续等待536及其后字节。
则,主机A发送确认报文,确认号=536
因为,TCP提供累计确认,TCP只确认数据流中至第一个丢失字节为止的字节。失序报文段处理:第3个报文段(900~1000字节)失序到达。接收方丢弃失序报文段;接收方保留失序报文段,等待缺失的报文段。12305355368999001000TCP概述TCP报文连接管理差错控制流量控制拥塞控制计时器管理6.3
传输控制协议TCPTCP报文序号与确认号位置举例1053524TCP连接建立采用3次握手机制。握手:客户端和服务器间的报文交换。SYNbit=1,Seq=x选择初始序号x,发送SYN(x)报文SYNbit=1,Seq=yACKbit=1,ACKnum=x+1收到SYN报文选择初始序号y,发送SYN+ACK报文,响应收到的SYN报文ACKbit=1,ACKnum=y+1收到SYN+ACK(x)
报文(服务器激活)发送ACK报文,响应收到的SYN+ACK报文收到
ACK(y)报文
(客户机激活)客户端服务器端客户端发送建立连接请求客户端选择报文的起始序号x向服务器发送SYN报文段不包含数据服务器端响应连接建立请求服务器选择报文的起始序号y向客户端发送SYN+ACK报文段确认客户端的起始序号x不包含数据客户端确认连接建立请求向服务器发送ACK报文段确认服务器的起始序号y可能包含数据TCP概述TCP报文连接管理差错控制流量控制拥塞控制计时器管理6.3
传输控制协议TCPTCP连接建立
TCP连接建立(三次握手)过程25初始序号一般不从0开始:若在不同时间、同一对套接字间建立连接,则新、旧连接上的序号有重叠,旧连接上重传的报文段会被误以为是新连接上的报文段初始序号一般也不随机选取:若在不同时间、同一对套接字间建立连接,且新、旧连接上随机选择的初始序号x、y相差不大,则新、旧连接上传输的序号仍然可能重叠因此,初始序号选取要求:必须避免新、旧连接上的序号产生重叠TCP初始序号常用的选取方法:基于时钟的初始序号选取算法使用主机时钟,每隔ΔT(ΔT取较小值:4微秒,确保发送序号的增长速度,不会超过初始序号的增长速度)时间计数器加1新建一个连接时,以本地计数器值的最低32位(确保序号回绕的时间远大于分组在网络中的最长寿命)作为初始序号该方法确保TCP连接的初始序号随时间单调增长TCP概述TCP报文连接管理差错控制流量控制拥塞控制计时器管理6.3
传输控制协议TCPTCP初始序号的选取
26TCP连接释放一般是对称活动,双方独立关闭连接。即一方已经完成了关闭连接,不再发送数据,另一方却保持着双向连接的另一半连接继续发送数据。TCP连接释放一般采用4次握手机制,TCP连接关闭分半关闭和全关闭2个阶段。半关闭阶段:当客户端没有数据向服务器发送时,客户端向服务器发出释放连接的请求,服务器收到后向客户端发回确认。则客户端关闭向服务器的TCP连接,进入半关闭状态。此时,服务器可继续向客户端发送数据。全关闭阶段:当服务器也没有数据向客户端发送时,服务器向客户端发出释放连接请求,客户端收到后向服务器发回确认。至此服务器关闭向客户端的TCP连接,当服务器收到来自客户端的确认后,进入全关闭状态。TCP概述TCP报文连接管理差错控制流量控制拥塞控制计时器管理6.3
传输控制协议TCPTCP连接释放27FINbit=1,ACKnum=u+1seq=wACKbit=1;ACKnum=w+1seq=u+1ACKbit=1;ACKnum=u+1seq=v半关闭:收到ACK报文(客户端到服务器端连接关闭)等待服务器关闭收到FIN报文发送ACK报文仍可继续发送数据被动关闭:发送FIN+ACK报文不再发送数据收到FIN+ACK报文发送ACK报文等待2倍生存期,进入全关闭状态全关闭:收到ACK报文不再发送数据FINbit=1,seq=u不能再发送数据但仍可接收数据主动关闭:发送FIN报文
客户端服务器端TCP概述TCP报文连接管理差错控制流量控制拥塞控制计时器管理6.3
传输控制协议TCPTCP连接建立采用4次握手机制。TCP连接释放28CLOSED:无连接状态,又称为关闭状态。LISTEN:侦听状态,收到了被动打开请求,等待连接请求SYN。SYN-SENT:已发送连接请求SYN,等待ACK。SYN-RCVD:收到连接请求SYN,并发送SYN+ACK,等待ACK。ESTABLISHED:已建立连接,数据传输状态。FIN-WAIT-1:一方要求关闭连接,已发出断开请求FIN,等待ACK。FIN-WAIT-2:已收到第1个FIN的确认ACK,等待第2个FIN。CLOSE-WAIT:收到第1个FIN,已发送ACK,等待来自应用程序的关闭请求。TIME-WAIT:收到第2个FIN,已发送ACK,等待超时。LAST-ACK:已发送第2个FIN,等待关闭确认ACK。TCP概述TCP报文连接管理差错控制流量控制拥塞控制计时器管理6.3
传输控制协议TCPTCP的状态29CLOSEDTIME_WAITSYN_SENTESTABLISHEDFIN_WAIT_1FIN_WAIT_2接收SYN&ACK,发送ACK发送FIN接收ACK,不发送接收FIN,发送ACK等待30s客户请求建立连接客户请求关闭连接CLOSEDLAST_ACKLISTENSYN_RCVDESTABISHEDCLOSE_WAIT接收SYN,发送SYN&ACK接收ACK,不发送接收FIN,发送ACK发送FIN接收ACK,不发送服务器建立一个监听socketTCP概述TCP报文连接管理差错控制流量控制拥塞控制计时器管理6.3
传输控制协议TCPTCP的状态变换客户端生命周期服务器端生命周期30TCP使用差错控制机制保证可靠传输,包括检测出错、丢失、失序和重复的报文段,以及检测出差错后纠正差错的机制。TCP的差错控制机制:确认和重传。确认机制:采用“累计确认”机制。接收方确认已收到的最长的、连续的字节计数。TCP报文的每个确认序号字段指出下一个希望接收的字节,它也是对已经接收到的所有字节的确认。超时重传机制:发送方TCP为了恢复丢失或者损坏的报文段,每发送一个TCP报文段,就启动一个重传定时器,如果在规定的时间内没有收到接收方TCP返回的确认报文,则重传定时器超时,发送方就重传该TCP报文段。TCP概述TCP报文连接管理差错控制流量控制拥塞控制计时器管理6.3
传输控制协议TCPTCP差错控制概述31报文段出错、丢失、重复、乱序处理。报文段出错、丢失处理如图所示。报文段重复:丢弃重复的报文段。报文段乱序:接收方对乱序报文段不确认,直到收到乱序报文段之前的所有报文段为止。确认报文段丢失:TCP的确认机制采用累计确认方法。报文段出错或丢失处理发送方接收方seq=1201;Len=200Byteseq=1401;Len=200Byteseq=1601;Len=200Byte报文段1报文段2报文段3ACKnum=1601报文段3损坏或丢失seq=1601;Len=200Byte报文段3重传超时ACKnum=1801时间时间TCP概述TCP报文连接管理差错控制流量控制拥塞控制计时器管理6.3
传输控制协议TCPTCP差错处理过程32TCP流量控制机制:滑动窗口。26273132333435373839364041424344454647495051485253545556282930窗口后沿窗口前沿已发送已确认序号B期望收到的序号不允许发送的序号收缩前移前移允许发送的序号A的
发送窗口=20TCP概述TCP报文连接管理差错控制流量控制拥塞控制计时器管理6.3
传输控制协议TCPTCP流量控制TCP滑动窗口:大小不固定,由TCP报文的通告窗口通告。通告窗口大小:接收方根据分配的缓冲区大小为通告窗口选择一个合适值,该值就是接收窗口值(rwnd),即
通告窗口=rwnd。发送窗口构造:发送方根据通告窗口大小构造,满足:发送窗口
≤
通告窗口【例6-3】主机A根据主机B给出的通告窗口值构造自己的发送窗口大小。假定A收到B发送的ACK报文,其中通告窗口=20(Byte),ACKnum=31。则:主机A构造发送窗口过程如下图所示。33【例6-4】在【例6-3】基础上,假定主机A发送了序号为31~41的数据,但发送窗口未改变,主机B收到的数据中,32~33号数据未按序收到。
试画出:主机A发送窗口内部变化和主机B接收窗口状态。26273132333435373839364041424344454647495051485253545556282930窗口后沿窗口前沿P1不允许发送序号允许发送的序号A的发送窗口位置不变A的可用窗口已发送已确认P2P3已发送未确认26273132333435373839364041424344454647495051485253545556282930窗口后沿窗口前沿未按序到达不允许接收的序号允许接收的序号B的接收窗口已发送确认报文并交付主机TCP概述TCP报文连接管理差错控制流量控制拥塞控制计时器管理6.3
传输控制协议TCPTCP流量控制34网络拥塞的定义:由于报文到达路由器的速率大于路由器转发速率,使得路由器中排队报文过多,缓冲区溢出,路由器丢弃报文,导致网络性能下降的现象。网络拥塞产生的原因:对资源的需求>可用资源网络拥塞造成的后果:丢包:由路由器缓存溢出造成分组延迟增大:链路接近满载造成网络拥塞使大量网络资源被用于:重传丢失的分组、(不必要地)重传延迟过大的分组,导致网络性能下降。TCP概述TCP报文连接管理差错控制流量控制拥塞控制计时器管理6.3
传输控制协议TCP网络拥塞概念35拥塞控制:网络节点采取措施避免拥塞发生或对已发生的拥塞做出响应。拥塞控制机制包括两个部分:拥塞避免和拥塞控制拥塞避免:“主动”机制,目标是使网络运行在高吞吐量、低延迟的状态,避免网络进入拥塞状态。拥塞控制:“响应”机制,功能是将网络从拥塞状态恢复出来,消除已经发生的拥塞,或者避免拥塞的发生。衡量拥塞控制机制的有效性度量指标主要包括:吞吐量、利用率、效率、延迟、队列长度、有效吞吐量等。TCP概述TCP报文连接管理差错控制流量控制拥塞控制计时器管理6.3
传输控制协议TCP拥塞控制概念36饱和0吞吐量网络负载理想的拥塞控制实际的拥塞控制无拥塞控制死锁轻度拥塞拥塞TCP概述TCP报文连接管理差错控制流量控制拥塞控制计时器管理6.3
传输控制协议TCP负载、吞吐量及拥塞控制的关系37TCP实现拥塞控制需要解决以下3个问题:发送方如何感知网络拥塞?利用丢包事件感知拥塞:拥塞造成丢包和分组延迟增大,丢包事件包括:重传定时器超时、发送方收到3个重复的ACK。发送方采用什么机制来限制发送速率?使用拥塞窗口cwnd限制发送速率:待发送字节数
≤
cwnd注意:cwnd随发送方感知的网络拥塞程度而变化。发送方感知到网络拥塞后,采取什么策略调节发送速率?TCP概述TCP报文连接管理差错控制流量控制拥塞控制计时器管理6.3
传输控制协议TCPTCP拥塞控制原理TCP端到端拥塞控制:发送方根据自己感知的拥塞程度,限制其发送速率。38发送方感知到拥塞,可采取
拥塞窗口调节(AIMD)策略调节发送速率。cwnd呈锯齿状变化XXXX发送速率时间加法增大乘法减小TCP概述TCP报文连接管理差错控制流量控制拥塞控制计时器管理6.3
传输控制协议TCPTCP拥塞控制原理加法增大(AdditiveIncrease)若无丢包,每经过一个RTT,将cwnd增大一个MSS,直到检测到丢包目的:缓慢增大发送速率,避免振荡乘法减小(MultiplicativeDecrease)发送方检测到丢包后,将cwnd的大小减半(但不能小于一个MSS)目的:迅速减小发送速率,缓解拥塞TCP拥塞控制原理39慢启动基本思想:当主机开始发送数据时,网络负荷情况不明,若立即将大量数据发送到网络,有可能引起网络拥塞,因此,一般采用试探方式由小到大逐渐增大发送窗口(拥塞窗口数值)。慢启动策略:初始cwnd=1,每经过一个RTT,将cwnd加倍慢启动的实施:每收到一个ACK段,cwnd增加一个MSS只要发送窗口允许,发送端立即发送下一个报文段慢启动特点:以一个很低的速率开始,按指数增大发送速率。
慢启动传输过程示意图
1segmentRTTtime2segments4segmentstimecwnd=1cwnd=2cwnd=4cwnd=3TCP概述TCP报文连接管理差错控制流量控制拥塞控制计时器管理6.3
传输控制协议TCPTCP拥塞控制:慢启动主机A主机Bcwnd=6cwnd=5cwnd=8cwnd=740拥塞避免的基本思想cwnd线性增长(加法增大)拥塞避免的实现方法慢启动使拥塞窗口一直成倍增长,为避免拥塞窗口cwnd增长过快,设置一个慢启动门限值(又称为阈值)ssthresh,设初始ssthresh=16。当cwnd≥ssthresh时,TCP传输进入拥塞避免阶段。cwnd不再加倍,改为线性增长,一旦出现数据超时,则重置cwnd=1,再次开始慢启动。拥塞避免算法示意图主机A8segments主机Btime16segments17segmentstimecwnd=8cwnd=16cwnd=17cwnd=18TCP概述TCP报文连接管理差错控制流量控制拥塞控制计时器管理6.3
传输控制协议TCPTCP拥塞控制:拥塞避免………………………………慢启动cwnd=ssthresh进入拥塞避免41初始设置:cwnd=1,ssthresh=Xssthresh是从慢启动转为拥塞避免的分水岭cwnd<ssthresh时,执行慢启动cwnd≥ssthresh时,执行拥塞避免拥塞避免阶段,拥塞窗口线性增长每当收到ACK,
cwnd=cwnd+MSS*(MSS/cwnd)若拥塞发生,则报文将被丢弃(丢包),重传定时器超时,进入拥塞解决阶段设置新门限值:ssthresh=cwnd/2设置拥塞窗口:cwnd=1,重新执行慢启动TCP概述TCP报文连接管理差错控制流量控制拥塞控制计时器管理6.3
传输控制协议TCPTCP慢启动-拥塞避免机制42慢启动慢启动拥塞避免拥塞避免传输轮次024861012161418202224指数增加线性增加ssthresh=16更新后ssthresh=12发生网络拥塞超时重传进入拥塞避免进入拥塞避免04812162024cwnd线性增加指数增加TCP概述TCP报文连接管理差错控制流量控制拥塞控制计时器管理6.3
传输控制协议TCPTCP慢启动-拥塞避免机制43快速重传:收到连续3个重复ACK时,启动快速重传。设置门限值ssthresh=cwnd/2设置拥塞窗口
cwnd=ssthresh或
cwnd=ssthresh+3执行快速恢复快速重传与快速恢复示意图04812162024慢启动快速恢复传输轮次拥塞避免cwnd024861012161418202224指数增加(指数增大)ssthresh=16更新后
ssthresh=12收到3个重复ACK执行快速重传进入拥塞避免快速恢复ssthresh+3拥塞避免线性增加拥塞避免线性增加TCP概述TCP报文连接管理差错控制流量控制拥塞控制计时器管理6.3
传输控制协议TCPTCP快速重传和快速恢复44重传计时器:为了解决丢失或丢弃报文段问题。TCP设置重传计时器,确定报文段是否需要重传。当TCP发送报文段时,创建该报文段的重传计时器。坚持(持续)计时器:为了打破TCP传输过程中的死锁问题,发送方TCP对建立的每一个TCP连接设置一个坚持计时器。保活计时器:为了解决TCP连接长时间空闲的问题,服务器上的TCP引入了保活计时器。等待计时器:为了避免释放连接出错,TCP设置了等待计时器。当被动释放传输连接的一方发出同意释放传输连接的报文段时,打开等待计时器。TCP概述TCP报文连接管理差错控制流量控制拥塞控制计时器管理6.3
传输控制协议TCPTCP计时器45【例6-5】主机A向主机B利用TCP传送
512字节数据。假设:1)发送窗口为100字节2)TCP报文段每次传送100字节数据3)发送端和接收端的起始序号分别选为100和200。问题:试画出TCP工作示意图(交互图)。要求画出连接建立到连接释放。tSYN=1,Seq=100t主机A主机B因特网SYN=1,ACK=1,Seq=200,ack=101ACK=1,Seq=101,ack=201连接建立Seq=102,ack=201,data=100Seq=201,ack=202数据传输Seq=202,ack=202,data=100Seq=202,ack=302Seq=302,ack=203,data=100Seq=203,ack=402Seq=402,ack=204,data=100Seq=204,ack=502Seq=502,ack=205,data=100Seq=205,ack=602Seq=602,ack=206,data=12Seq=206,ack=614tFIN=1,Seq=614,ack=207t主机A主机B因特网ACK=1,Seq=207,ack=615ACK=1,Seq=615,ack=209连接释放FIN=1,ACK=1,Seq=208,ack=6156.3
传输控制协议TCP例题46【例6-6】主机A向主机B连续发送了2个TCP报文段,其序号分别为70和100。
问题:(1)第1个报文段携带了多少个字节的数据?(2)主机B收到第1个报文段后发回的确认中的确认号应当是多少?(3)如果主机B收到第2个报文段后发回的确认中的确认号是180,则A发送的第2个报文段中的数据有多少字节?(4)如果A发送的第1个报文段丢失了,但第2个报文段到达了B,B在第2个报文段到达后向A发送确认,则这个确认号应为多少?tSeq=70t主机A主机B【解】(1)携带30字节数据(2)确认号为100(3)80字节数据(4)确认号为70Seq=100数据=?ack=?因特网数据=?ack=180tSeq=70t主机A主机BSeq=100因特网ack=?丢失6.3
传输控制协议TCP例题47【例6-7】已知主机A收到主机B发来的确认报文段,其中窗口字段值为15Byte,确认序号为31。应用滑动窗口机制完成以下各问题:(1)构造主机A的发送窗口。(2)若T1时刻主机A按从小到大的顺序发送11Byte数据,试画出此时主机A的发送窗口,并指出可用窗口的范围。(3)若T2时刻主机A收到了对T1时刻发送出去的前5Byte数据的确认,试画出此时主机A的发送窗口和可用窗口。31323334353637383940414243444546474849505152(1)主机A的发送窗口15Byte(2)T1时刻【解】31323334353637383940414243444546474849505152主机A的发送窗口15Byte已发送未确认11Byte可用窗口4Byte(3)T2时刻31323334353637383940414243444546474849505152主机A的发送窗口15Byte已确认数据5Byte已发送未确认6Byte可用窗口9Byte主机A的发送窗口15Byte6.3
传输控制协议TCP例题48【例6-8】设TCP门限值
ssthresh的初始值为8(单位为报文段)。当拥塞窗口上升到12时网络发生了超时,TCP使用慢开始和拥塞避免。试分别求出第1次~第15次传输的各拥塞窗口大小。【解】拥塞窗口大小分别为:1,2,4,8,9,10,11,12,1,2,4,6,7,8,9。传输轮次12345678
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年八年级物理上册 5.1物态变化与温度教学设计 (新版)教科版
- 2023八年级数学上册 第1章 分式1.5 可化为一元一次方程的分式方程第1课时 可化为一元一次方程的分式方程的解法教学设计 (新版)湘教版
- 2024年秋七年级生物上册 1.2 认识我们身边的其他生物教学设计 北京课改版
- 5《我爱我们班》第二课时(教学设计)-部编版道德与法治二年级上册
- 脑卒中取栓后护理
- 2024-2025学年高中历史 第6单元 基层治理与社会保障单元小结与测评教学设计 新人教版选择性必修第一册
- 知识与创新创业策划书
- Unit 3 Section A 3a 教学设计 2023-2024学年人教版英语八年级下册
- Module 2 Unit 1 What did you buy?(教学设计)-2024-2025学年外研版(三起)英语五年级上册
- 电力维修安全培训
- 一体化及复合手术室建设和管理课件
- 癃闭前列腺增生症诊疗方案
- 中外文化交流史课件
- 平江历史街区规划与保护-课件
- 《高等数学》全册教案教学设计
- 中资美元债专题系列二:构架中资美元债观察体系
- 安全文明施工费记取中存在的问题以及原因案例分析
- 轮扣式模板支撑架安全专项施工方案
- 起重伤害事故现场应急处置卡
- 公安机关业务技术用房和办公用房规划设计规范
- (完整版)食品安全管理制度文本(完整版)
评论
0/150
提交评论