基础-课件期末试题历年真题计算机网络chapter6tcp,udp_第1页
基础-课件期末试题历年真题计算机网络chapter6tcp,udp_第2页
基础-课件期末试题历年真题计算机网络chapter6tcp,udp_第3页
基础-课件期末试题历年真题计算机网络chapter6tcp,udp_第4页
基础-课件期末试题历年真题计算机网络chapter6tcp,udp_第5页
已阅读5页,还剩110页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

传输层

(3.2,7.2)主要内容传输层概述(3.2)1UDP协议2TCP协议3无线TCP*4端口的分配与套接字5传输服务原语(3.2.4)6第6章传输层传输层概述1UDP协议2TCP协议3无线TCP4端口的分配与套接字5传输服务原语6传输层的主要目的协议端口机制

TCP/IP体系结构中的传输层传输层的位置回顾:当前计算机网络的实际体系结构层次模型以IP协议为中心的沙漏模型HTTPSMTPDHCPTFTP……TCPUDPIP以太网无线网X.25网…应用层传输层互联网层网络接口层应用层传输层网络层数据链路层物理层实际的体系结构模型高层低层传输层的主要目的提供一个应用程序到另一个应用程序之间的通信,或者说提供两端点之间数据的传送,因此通常称为“端到端”通信。6固定部分可变部分04816192431版本标志生存时间协议标识服务类型总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)比特首部长度数据部分首部回顾:IP数据报格式主机上应用进程间的通信传输层提供应用进程间的逻辑通信IP层AP454321AP354321AP1AP2主机A主机B路由器1路由器2AP1LAN2WANAP2AP3AP4LAN1应用进程端口应用进程端口8传输层实现端到端的通信传输层提供应用进程间的逻辑通信网络层提供主机间的逻辑通信事实上,传输层只存在于通信子网以外的主机中IP协议的作用范围传输层协议(TCP和UDP)的作用范围主机A主机B路由器1路由器2AP1LAN2WANAP2AP3AP4LAN19传输层与其上下层之间关系的OSI表示法传输实体传输实体传输协议运输层层接口

传输服务用户(应用层实体)传输服务用户(应用层实体)层接口网络层(或网际层)应用层主机A主机B传输层服务访问点TSAP网络层服务访问点NSAP10传输层的目的在两个应用实体之间实现可靠的、透明的、有效的数据传输,使高层用户在相互通信时不必关心网络层的细节。可靠:传输层处理并隔离低层的错误透明:高层用户不涉及点对点间通信的任何细节有效:全双工、尽量高效11传输层的主要功能(1)连接管理:端到端连接的建立、维持和释放。(2)优化网络层提供的服务质量:检查低层未发现的错误,纠正低层检测出来的错误,对接收到的数据包重新排序。(3)提供端到端的透明数据传输:屏蔽低层网络的细节操作。(4)多路复用和分流:将多个传输连接映射到一个网络连接上。12主要功能(con’t)(5)状态报告:连接的性能特征(如吞吐量、平均延迟等)、地址、使用的协议类别、当前计时器值、所请求的服务质量等。(6)安全性:接入控制(发送方的本地证实,接收方的远程证实);数据加密/解密。(7)加速交付:接收端收到紧急数据,不需要等待后继数据到达就立即提交。13传输层服务质量(QoS)传输层服务质量参数:①连接建立延迟②连接建立失败概率③吞吐率:单位时间传送的用户数据的总量④传输延迟:从发送报文开始到收到报文为止所经历时间⑤残余误码率:丢失或错、乱报文数占发送的全部报文数的百分比。⑥安全保护:保护数据不被窃取或修改的方法⑦优先级⑧恢复功能:出现问题或拥塞时,自动终止连接的可能性

14传输层基本策略1.寻址传输地址:用传输服务访问点(TSAP)描述(1)层次地址由一系列域组合而成。例如:地址=<国家><网络><主机><端口>优点:路由选择方便缺点:进程移动不方便例子:Internet:<IP地址><端口号>表示TSAP。(2)平面地址空间用一个号码表示地址15传输层基本策略2.建立连接传输层的两类传输服务:面向连接和无连接二次握手三次握手:(1)发送方发送一个连接请求报文到接收方(2)接收方回送一个接受请求报文到发送方(3)发送方再回送一个确认报文到接收方16传输层基本策略3.传输数据使用发送(SEND)和接收(RECIVE)原语交换数据分段:用户数据超过最大报文尺寸时,发送方对数据分段,每一个分段都有一个序列号,接收方按照正确的顺序还原数据。17传输层基本策略4.释放连接正常释放和非正常释放(突发性终止)对称释放和非对称释放对称释放:在两个方向上分别释放连接,一方释放连接后,不能发送数据,可以继续接收数据非对称释放:单方面终止连接18传输层基本策略5.流量控制与缓冲策略流量控制:控制发送端的发送速度(1)拒绝接收(2)滑动窗口协议(3)信用滑动窗口协议:发送方每发送一个报文,就把窗口推进一格,窗口大小减少1;每当收到一个信用值,就把窗口增加该值缓存:发送方缓存确定最终目的地—协议端口主机如何将接收的数据正确地交付到目的进程?多任务操作系统允许多个应用程序同时执行,每个正在运行的程序都会产生一个或更多进程。即两个主机通信实际上是主机中的应用进程之间互相通信!问题提出IP地址只能标识一个主机,不标识应用进程,即IP协议只能把分组送到目的主机。用进程ID标识一条报文的最终目的地,技术上实现较为困难。增加协议端口机制

用协议端口标识最终目的地把每台机器上的进程看作是一系列抽象的目的点,称为协议端口(protocolport)。协议端口由一个正整数标识。本地的操作系统提供一个接口机制,进程通过它来指定并接入到协议端口。——端口是传输层与应用层的服务接口TCP/IP的做法协议端口可理解为传输层的地址为了能够通信,发送方不仅要知道目的机器上目的应用程序的协议端口号(目的端口),还要知道本机上发起通信的应用程序的协议端口号(源端口)。数据链路层使用物理地址寻址IP协议使用IP地址寻址UDP和TCP协议通过协议端口寻址●各层都有该层协议使用的地址22传输层复用与分用的概念传输层提供应用进程间的逻辑通信IP层AP454321AP354321AP1AP2应用进程端口应用进程端口复用和分用:不同的应用进程共用网络层提供的服务复用分用

传输层向高层屏蔽了下面通信子网的细节,使应用进程看见的就好像在两个传输层实体之间有一条端到端的逻辑通信信道TCP/IP体系结构中的传输层将接收的数据正确地交付到目的进程;对数据区内容进行差错检验●整个网络体系结构中的重要层次之一。包括两个协议UDP(用户数据报协议),向应用层提供无连接的数据报交付服务。TCP(传输控制协议),向应用层提供面向连接的可靠的数据流服务。要解决的两个重要问题TCP/IP体系结构中的传输层应用程序SMTPHTTPMIMEDHCPBGPFTPTelnetDNSRIPSNMPASN.1TFTPTCPUDPIPARPRARP硬件设备驱动程序应用层传输层互联网层网络接口层ICMPIGMPRTPOSPF25TCP/IP传输层中的两个协议传输控制协议TCP面向连接可靠(有确认)面向数据流(按字节排序)提供流量控制复杂(增加了很多开销,占用了很多处理机资源)用户数据报协议UDP无连接无确认无序尽最大努力交付,不可靠简单,某些情况下较有效向应用层提供了两种类型的服务:TCP/IP体系结构中的传输层主要功能:将数据报交付给相应的应用进程数据区检错流量控制拥塞控制TCP协议第6章传输层传输层概述1TCP协议3无线TCP4端口的分配与套接字5传输服务原语6UDP的特点UDP报文格式UDP的伪首部与校验和计算方法UDP协议228UDP——UserDatagramProtocolUDP的特点无连接:适用于数据量较小的情况尽力而为交付:即不保证可靠交付,同时也不使用拥塞控制。适用于对可靠性要求不高的应用,如音视频简单:首部开销少,实现容易面向报文使用UDP的应用层协议DNS,TFTP,RIP,BOOTP,DHCP,SNMP,NFS,IGMP,IP电话,流媒体29适合使用UDP的应用类型(1)不太关心数据丢失。如传输视频或多媒体流数据。(2)每次发送很少量数据。(3)有自己的全套差错控制机制。(4)实时性要求较高、差错控制要求不高。30UDP是面向报文的发送方UDP对接收应用程序的报文,在添加首部后就向下交付IP层。UDP对应用层的报文,既不合并,也不拆分,保留报文的边界。接收方UDP对IP层来的UDP用户数据报,在去除首部后就原封不动地交付上层的应用进程,一次交付一个完整的报文。——应用程序必须选择合适大小的报文。源端口01631目的端口报文长度数

区校验和UDP协议1.UDP的报文格式UDP首部UDP数据区该UDP数据报的总字节数。包括整个UDP报文和一个伪首部。该字段提供了惟一的途径来保证数据的正确性。主要功能对给定主机上的多个目的进程进行区别;对数据区内容进行校验和IP一样,为不可靠、无连接的数据报交付服务。服务类型UDP数据报格式首部UDP数据报上层数据伪首部01631源端口目的端口UDP数据报长度

校验和08163117(UDP协议)UDP数据报长度源IP地址目的IP地址0

即:校验和包括对伪首部、首部、上层数据的校验伪首部不在网络上传送,仅用于校验和计算,以确保"正确的目的地接收了正确的数据校验和比较特殊:增加伪首部33UDP检验和的计算举例1001100100010011→153.190000100001101000→8.1041010101100000011→171.30000111000001011→14.110000000000010001→0和170000000000001111→150000010000111111→10870000000000001101→130000000000001111→150000000000000000→0(检验和)0101010001000101→数据0101001101010100→数据0100100101001110→数据0100011100000000→数据和0(填充)1001011011101101→求和得出的结果0110100100010010→检验和04112字节伪首部8字节UDP首部7字节数据填充按二进制反码运算求和将得出的结果求反码全0171510871315全0数据数据数据数据数据数据数据全0UDP的封装IP首部IP数据区帧首部帧的数据区UDP首部UDP数据区指明源主机和目的主机的地址

指明主机上的源端口和目的端口

概念层次位于应用层之下,IP层之上。封装封装到IP数据报中。UDP基于端口的多路复用和多路分解接受多个应用程序送来的数据报,把它们送给IP层进行传输

接收从IP层送来的UDP数据报,并把它们送给适当的应用程序通过端口机制实现应用程序1应用程序1UDP基于端口的多路复用IP层端口1端口3端口2发送方应用程序1应用程序1应用程序1UDP基于端口的多路分解IP层端口1端口3端口2接收方应用程序1理解UDP端口的最简单的方式是把它看成是一个队列。多路复用---多路分解---第6章

传输层传输层概述1UDP协议2TCP协议3无线TCP4端口的分配与套接字5传输服务原语6

TCP协议概述TCP报文段格式TCP的编号和确认机制TCP连接的管理(连接的建立、释放、复位)TCP的超时重传机制TCP的流量控制与拥塞控制

TCP滑动窗口机制的问题37TCP协议概述特点:面向连接:一次通信过程包括建立连接、传输数据、释放连接可靠:无丢失、无重复按序传输:数据流(字节流)传输服务全双工:一个TCP连接包含了两个独立的、流向相反的数据流38对数据流传输服务的需要底层网络提供的是不可靠的分组传输,可能发生:分组丢失

顺序混乱

重复投递

传输层需要向应用层提供一种可靠的流传输服务,以定义一个统一的数据流传输服务接口

降低应用程序的编程难度40TCP协议的内容定义数据和确认信息的格式,以及保证数据正确传输的措施

识别目的进程的方法(“连接”)分组丢失与重复的恢复机制

建立和关闭TCP连接的机制

TCP的概念层次与封装概念层次位于应用层之下,IP层之上。封装被封装到IP数据报再封装到物理帧中传输IP首部IP数据区帧首部帧的数据区TCP首部TCP数据区TCP的多路复用与分解

和UDP一样,TCP使用了协议端口号来标识一台机器上的多个目的进程,允许一台机器上的多个应用程序同时进行通信,接收端能将接收到的数据针对多个应用程序进行多路分解操作。

TCP报文段的格式TCP报文段的格式0410162431据FINURGACKPSHRSTSYN源端口目的端口首部长度保留未用窗口序号确认号填充数

区校验和紧急指针选项(长度可变)向应用层提供面向连接的、可靠的数据流交付服务。较UDP复杂得多TCP报文段各字段含义相互通信的两端对应用程序进行标识的TCP端口号。和UDP一样,各占16比特。

源端口和目的端口(1)0410162431据FINURGACKPSHRSTSYN源端口目的端口首部长度保留未用窗口序号确认号填充数

区校验和紧急指针选项(长度可变)TCP报文段各字段含义序号和确认号(2)指出该报文段在发送方的数据字节流中的位置,使得数据能够按序交付且不会被重复交付。指出本机希望接收的下一个字节的序号。该字段用以保障数据不会丢失。捎带确认方式0410162431据FINURGACKPSHRSTSYN源端口目的端口首部长度保留未用窗口序号确认号填充数

区校验和紧急指针选项(长度可变)首部长度保留未用窗口FINURGACKPSHRSTSYNTCP报文段各字段含义是一个以32比特为单位的首部长度值。

是为将来的应用而保留未用的。标志字段:指出报文段的目的和内容。实际中,PSH、URG和紧急数据指针并没有使用。

指定缓冲区大小,通知发送方自己希望接受多少数据。窗口通告使得TCP能够实现流量控制。0410162431据FINURGACKPSHRSTSYN源端口目的端口首部长度保留未用窗口序号确认号填充数

区校验和紧急指针选项(长度可变)标志位该比特置1时的含义URG紧急指针字段有效(对发送端)ACK确认字段有效PSH本报文段请求推(push)操作(对接收端)RST连接复位SYN序号同步。用于建立连接FIN发送方字节流结束。用于关闭连接04101631TCP报文段各字段含义0410162431据FINURGACKPSHRSTSYN源端口目的端口首部长度保留未用窗口序号确认号填充数

区校验和紧急指针选项(长度可变)当“选项”字段的长度不是32比特的整数倍时,用“填充”字段补足。指出紧急数据在报文段中的结束位置。检验范围包括首部和数据区两部分。和UDP一样,计算校验和时增加一个伪首部。填充校验和紧急指针选项(长度可变)TCP最初只规定了一种选项:最大报文段长度(MSS,MaximumSegmentSize)),用以通知对方本端能够接收的报文段长度的最大值注意:MSS是TCP报文段中的数据字段的最大长度,数据字段加上TCP首部才等于整个的TCP报文段。48TCP报文段的选项类型长度数据解释0--标志所有选项结束1--无操作,用于后续选项对齐32位边界24MSS告诉发送方希望接收的最大段长度33窗口扩大因子表示窗口字段值乘以2n,n为扩大因子42-允许使用选择性确认5可变选择确认数据块指出无需重传的数据块143替换校验和算法允许使用非TCP标准的校验和算法15可变替换校验和当校验和超过16位时,放于此处类型数据长度选项格式:

0410162431据FINURGACKPSHRSTSYN源端口目的端口首部长度保留未用窗口序号确认号填充数

区校验和紧急指针选项(长度可变)●结论TCP报文段首部比UDP要复杂的多,增加的多个字段使得TCP能够建立和关闭连接、按序传输、进行确认、实现流量控制以及其它一些控制。

TCP的伪首部51TCP的编号与确认编号机制:不是按传送的报文段来编号将所要传送的整个报文看成一个个字节组成的数据流,对每个字节编一个序号初始序号通常不为1,连接建立时,双方要商定TCP首部的序号字段中存放每次传送的报文段中的第一个数据字节的序号52TCP的编号与确认确认机制:累计确认:对接收到的数据的最高字节序号表示确认

——返回期望收到的下一个数据字节的序号(已收到的数据的最高序号加1)捎带确认:通信双方在发送数据的同时捎带确认信息(确认序号),以提高传输效率TCP连接的建立、关闭与复位主动打开和被动打开

主动打开发起连接的一端应用程序必须使用“主动打开”请求来告诉操作系统要建立一个连接操作系统为连接的这一端赋予一个TCP端口号被动打开等待接受连接的一端应用程序通知操作系统,希望接受一个传入的连接客户(client)服务器(server)建立一个TCP连接

SYNseq=x

发送SYN报文段(发起连接请求)发送ACK报文段接收SYN+ACK报文段(连接建立完成)SYNseq=y,ACKx+1ACKy+1接收ACK报文段接收SYN报文段发送SYN+ACK报文段表示从主动打开端到被动打开端流向上的初始序号表示反方向流上的初始序号主动打开端被动打开端

TCP使用三次握手来建立连接。三次握手协议是连接的两端正确同步的充要条件关于初始序号三次握手协议完成的两个重要功能使双方统一了初始序号。在握手期间传输初始序号并获得确认。另一方面确保连接双方做好传输数据的准备(而且它们知道双方都准备好了)一方面●结论每个主机随机地选择一个初始序号不能用1作为每次连接建立时的初始序号

56TCP初始序号的确定设定ISN计数器,初始值为0,每4微秒加1,直到记满32位后归0这一过程需要4个多小时。任何时候建立TCP连接时,都选择当前ISN计时器的值作为初始序号值。关闭一个TCP连接主机1主机2

FINseq=x接收FIN+ACK报文段发送ACK报文段(应用程序关闭连接)发送FIN报文段接收FIN报文段接收ACK报文段发送ACK报文段(通知应用程序)(应用程序发完剩余数据并关闭连接)发送FIN+ACK报文段接收ACK报文段(关闭连接结束)ACKx+1

FINseq=y,ACKx+1ACKy+1建立连接和关闭连接的三次握手操作的不同之处

TCP使用改进的三次握手(四次握手)来关闭连接。TCP连接的复位发起端:发送报文段中的标志位RST比特置1。接收端:接收到该报文段后立即退出连接。连接两方立即停止传输,立即释放该传输所用的缓冲区之类的资源。当出现异常的中断连接操作时,TCP提供了复位措施。将连接复位时59TCP的超时重传机制——提供可靠性超时重传:TCP每发送一个报文段,就设置一个计时器,超时后未收到确认即重传该报文段。TCP中最重要和最复杂的问题之一60TCP的超时重传机制定时器(超时)时值的确定:采用一种"自适应算法",以适应互连网络时延的变化。算法的基本思想:没有重传时,按平均往返时延加系数(加权平均往返时间)确定出现重传时,将定时值按一定系数(典型值为2)增大61加权平均往返时间TCP保留RTT的一个加权平均往返时间RTTS第一次测量到RTT样本时,RTTS值取为所测量到的RTT样本值。以后每测量到一个新的RTT样本,就按下式重新计算一次RTTS:

新的RTTS

(1

)(旧的RTTS)

(新的RTT样本)(Jacoson算法)0

1。若很接近于零,表示RTT值更新较慢。若选择接近于1,则表示RTT值更新较快。RFC2988推荐的值为1/8。62超时重传时间RTORTO应大于加权平均往返时间RTTS。最早:2*RTTRFC2988建议:

RTORTTS+4RTTD

RTTD是RTT的偏差的加权平均值。RFC2988建议的RTTD:第一次测量时,RTTD值取为测量到的RTT样本值的一半。在以后的测量中,则使用下式计算加权平均的RTTD:新的RTTD=(1

)(旧的RTTD)+

RTTS

新的RTT样本

是个小于1的系数,其推荐值是1/4。63Karn算法在计算平均往返时间RTT时,只要报文段重传了,就不采用其往返时间样本。这样得出的加权平均平均往返时间RTTS

和超时重传时间RTO就较准确。64报文段每重传一次,就把RTO增大一些:新的RTO

(旧的RTO)系数的典型值是2。当不再发生报文段的重传时,才根据报文段的往返时延更新平均往返时延RTT和超时重传时间RTO的数值。实践证明,这种策略较为合理。修正的Karn算法65快速重传接收方:每收到一个失序的报文段后就立即发出重复确认——可以让发送方及早知道有报文段没有到达接收方。发送方:只要一连收到三个重复确认就立即重传对方尚未收到的报文段,而不是等到超时再重传。——快速重传并非取消重传计时器,而是在某些情况下可更早地重传丢失的报文段。66发送方接收方发送M1

确认M1t

确认M2发送M2发送M3发送M4

?发送M5发送M6

重复确认M2立即重传M3

重复确认M2

重复确认M2t发送M7收到三个连续的对M2

的重复确认立即重传M3丢失快速重传举例接收端许诺的发送窗口TCP的流量控制与拥塞控制

——通过滑动窗口实现TCP中的滑动窗口机制:

以字节为基本单位。窗口的大小将决定传输的效率发送方和接收方各自维护着一个发送窗口和一个接收窗口。因此,一个TCP连接总共有四个滑动窗口。

1100101200201300301400401500501600601700701800801900收到确认即可前移不可发送已发送并被确认已发送未被确认还可继续发送TCP的发送缓存策略最后被确认的字节发送应用程序发送缓存最后发送的字节发送窗口已发送TCP序号增大TCP的接收缓存策略接收应用程序已收到接收窗口TCP接收缓存下一个读取的字节序号增大下一个期望收到的字节(确认号)发送缓存与接收缓存的作用发送缓存用来暂时存放:

发送应用程序传送给发送方TCP准备发送的数据;

TCP已发送出但尚未收到确认的数据。接收缓存用来暂时存放:

按序到达的、但尚未被接收应用程序读取的数据;不按序到达的数据。需要强调三点A的发送窗口并不总是和B的接收窗口一样大(因为有一定的时间滞后,且TCP还考虑了网络拥塞情况)。TCP标准没有规定对不按序到达的数据应如何处理。通常是先临时存放在接收窗口中,等到字节流中所缺少的字节收到后,再按序交付上层的应用进程。TCP要求接收方必须有累积确认的功能,这样可以减小传输开销。72TCP滑动窗口的作用解决两方面的问题:接收能力:避免接收端来不及接收而丢失数据避免拥塞:网络拥塞造成确认延迟而引起重传,结果进一步加剧拥塞

——因此,发送端主机发送信息时,既要考虑到接收端的能力,又要考虑网络是否发生拥塞发送窗口的确定TCP使用可变发送窗口的方式进行流量控制和拥塞控制;发送窗口的大小由接收端和网络状态共同控制发送窗口大小的确定:

发送窗口=Min[通知窗口,拥塞窗口]通知窗口(advertisedwindow):接收端根据其接收能力许诺的窗口值。——接收窗口拥塞窗口(congestionwindow):发送端根据网络拥塞情况得出的窗口值(?)极端情况下,“0”发送窗口将停止所有的传输74TCP的拥塞窗口拥塞窗口的确定:稳定时,拥塞窗口与通知窗口一致不稳定状态下,采用如下几种技术(拥塞控制策略)确定:慢开始(慢启动)拥塞避免(加法增大)加速递减(乘法减小)快速恢复慢开始算法原理—初始化时当TCP连接进行初始化时,将拥塞窗口置为1(表示窗口大小为一个MMS的字节数);发送端每收到一个对新报文段的确认ACK,就把发送端的拥塞窗口加倍,因此拥塞窗口cwnd随着传输次数按指数规律增长。246810121416182022004812162024传输次数拥塞窗口cwnd进入拥塞避免发生超时指数规律增长线性规律增长ssthresh=16慢开始慢开始拥塞避免拥塞避免更新后的ssthresh=12进入拥塞避免慢开始门限值当拥塞窗口cwnd增长到慢开始门限值

ssthresh时(当TCP连接进行初始化时,ssthresh=16),就改为执行拥塞避免算法慢开始指拥塞窗口从1开始,使报文慢慢注入网络中,但实际并不慢246810121416182022004812162024传输次数拥塞窗口cwnd进入拥塞避免发生超时指数规律增长ssthresh=16慢开始慢开始线性规律增长拥塞避免拥塞避免更新后的ssthresh=12进入拥塞避免拥塞避免拥塞避免状态中,窗口中所有的报文段都被确认之后,窗口大小才只能增加1。——加法增大246810121416182022004812162024传输次数拥塞窗口cwnd进入拥塞避免发生超时指数规律增长线性规律增长ssthresh=16慢开始慢开始拥塞避免拥塞避免更新后的ssthresh=12进入拥塞避免加速递减一旦发现网络拥塞(发现报文丢失),立即将拥塞窗口的大小减半,如果还有拥塞,继续递减,直至没有报文丢失或窗口值为1

,然后重新执行慢开始算法。

——乘法减小246810121416182022004812162024传输次数拥塞窗口cwnd进入拥塞避免发生超时指数规律增长线性规律增长ssthresh=16慢开始慢开始拥塞避免拥塞避免更新后的ssthresh=12进入拥塞避免慢开始—拥塞后当窗口增加到拥塞时窗口值的一半时,改为执行拥塞避免算法。246810121416182022004812162024传输次数拥塞窗口cwnd进入拥塞避免发生超时指数规律增长线性规律增长ssthresh=16慢开始慢开始拥塞避免拥塞避免更新后的ssthresh=12进入拥塞避免80快速恢复考虑到丢包和超时两种情况下网络的状态不同,因此,TCP在丢包时采用了“快速恢复”机制而不是慢启动:A.当发送端收到连续三个重复的确认时,就执行“乘法减小”算法,把慢开始门限ssthresh减半。B.拥塞窗口设置为“门限值+3”(因为有3个报文离开网络到达目的地,若收到的重复的ACK数为n,则拥塞窗口设置为门限值+n。也可以是将拥塞窗口设置为门限值),执行拥塞避免算法(而不执行慢开始算法)。

8124快速恢复:

从连续收到三个重复的确认转入拥塞避免2468101214161820220048121620传输轮次拥塞窗口cwnd收到3个重复的确认执行快恢复算法慢开始“乘法减小”拥塞避免“加法增大”ssthresh的初始值拥塞避免“加法增大”新的ssthresh值快恢复82决定发送窗口大小的因素发送方的发送窗口的上限值

Min{rwnd,cwnd}当rwnd<cwnd时,是接收方的接收能力限制发送窗口的最大值。当cwnd<rwnd时,则是网络的拥塞限制发送窗口的最大值。83随机早期检测RED(RandomEarlyDetection)*

----网络层的算法,不属于TCP基本思想是让路由器监视自己的队列,当发现可能会发生拥塞时丢弃一定分组,以造成超时或重复确认而使得TCP调整拥塞窗口来达到拥塞避免:使路由器的队列维持两个参数:队列长度最小门限THmin

和最大门限THmax。RED对每一个到达的数据报都先计算平均队列长度LAV。若平均队列长度小于最小门限THmin,则将新到达的数据报放入队列进行排队。若平均队列长度超过最大门限THmax,则将新到达的数据报丢弃。若平均队列长度在最小门限THmin和最大门限THmax之间,则按照某一概率p将新到达的数据报丢弃。RED将路由器的到达队列

划分成为三个区域从队首发送最小门限THmin最大门限THmin分组到达平均队列长度Lav排队丢弃以概率

p

丢弃85丢弃概率

p与

THmin和

Thmax的关系最小门限THmin最大门限THmax平均队列长度Lav分组丢弃概率

p1.00pmax当LAV

Thmin时,丢弃概率p=0。当LAV

Thmax时,丢弃概率p=1。当THmin

LAV

THmax时,

0

p1。例如,按线性规律变化,从0变到pmax。86平均队列长度队列长度时间瞬时队列长度平均队列长度平均队列长度LAV的计算:LAV=(1-)(旧LAV)+(新的瞬时队列长度测量值)其中,0<<1瞬时队列长度和平均队列长度的区别87TCP滑动窗口机制的问题*死锁问题效率问题傻瓜窗口症状问题利用率问题88问题1:死锁问题问题:接收方应答0接收窗口之后,发送的非0窗口应答报文丢失,致使发送方始终不能发送数据,进入死锁对策:持续计数器+探测报文,即收到0窗口通知后启动持续计数器,到时就发送一个0窗口探测报文,对方在应答这个探测报文时2给出新的窗口值89问题2:效率问题问题:每次传输1字节数据需要建立一次连接(如Telnet)对策:Nagle算法可选机制:第一种机制是TCP维持一个变量,它等于最大报文段长度MSS。只要缓存中存放的数据达到MSS字节时,就组装成一个TCP报文段发送出去。第二种机制是由发送方的应用进程指明要求发送报文段,即TCP支持的推送(push)操作。第三种机制是发送方的一个计时器期限到了,这时就把当前已有的缓存数据装入报文段(但长度不能超过MSS)发送出去。90问题3:傻瓜窗口症状问题问题:发送一个大报文段,但只能接收1字节,导致后续每次只能发送一个字节对策:Clark算法,禁止发送1字节窗口应答91问题4:信道利用率问题问题:如果发送一个报文段后等待应答,相当于停-等协议,效率低对策:发送多个报文段后等待应答允许选择性确认和重传第6章

传输层传输层概述1UDP协议2TCP协议3无线TCP(7.2.8)*4端口的分配与套接字5传输服务原语693无线链路上TCP的问题与解决方案移动计算环境的问题:不稳定:误码率高,时延抖动大性能低:带宽低,信道效率低几种解决方案:端到端方案分段连接方案链路层方案:94无线链路上TCP问题的解决方案端到端方案区分拥塞和不稳定导致的报文丢失,只在拥塞的情况下才激活TCP的拥塞控制过程缺点:需要修改所有接口上的TCP分段连接方案在基站分别连接两端,即在基站终止无线链路的TCP连接而向有线网络隐藏无线链路的不稳定性优点:只需要修改移动连接上的TCP;缺点:基站需要维护两个TCP连接95无线链路上TCP问题的解决方案(续)端到端方案分段连接方案链路层方案:前向错误纠正(FEC)。冗余信息多自动重传请求(ARQ)。误码率低、且时延不敏感时比较有效不需要修改TCP协议第6章传输层端口的分配与Socket概念5传输服务原语6

协议端口的分配方式TCP/UDP的三类端口常用熟知端口连接、端点、Socket的概念传输层概述1UDP协议2TCP协议3无线TCP4协议端口的分配方式●

端口分配有两种基本方式TCP/IP的做法熟知端口:统一分配注册端口:注册使用临时端口:动态绑定统一分配中央管理机构发布分配的所有端口号的列表,大家都遵从。动态绑定应用程序需要使用端口时临时指定一个端口。通信双方使用请求与应答的方式知道对方的端口号。混合方式:TCP/UDP的三类端口熟知端口(well-knownport)被管理机构指定的端口,数值一般在0~1023之间,用于常用的服务器应用程序。注册端口1024~49151。为其他服务器程序预留,用于非“熟知”的服务。用户使用这个范围的端口号必须在IANA注册,以防止重复。临时端口49152~65535。用于操作系统临时分配给请求通信的客户程序。也叫客户端口或短暂端口常用应用程序的熟知端口(well-knownports)列表应用程序熟知端口传输层协议服务功能描述FTP数据连接20TCP文件传输服务的数据连接FTP控制连接21TCP文件传输服务的控制连接TELNET23TCP远程登录服务SMTP25TCP简单邮件传输服务DNS53TCP/UDP域名服务TFTP69UDP简单文件传输服务HTTP80TCP超文本传输服务POP3110TCP邮局协议SNMP161UDP简单网络管理协议100端口的工作原理示意源端口和目的端口被包含在TCP报文段或UDP数据报的首部中ABCIP=3端口1500端口1501IP=2端口1500IP=5SMTP端口25连接1连接2连接3

服务器通常使用熟知端口(也可不用熟知端口,如此则必须告诉客户机)客户主机独立地、随机地分配自己的端口号电子邮件传送服务器101概念:连接、端点、插口(Socket)TCP协议使用连接做为基本的概念抽象连接:一对端点(IP地址A,端口号1)和(IP地址B,端口号2)如连接1为:(3,1500)和(5,25)端点与Socket:(IP地址,端口号),又称为插口或套接字(Socket)IP地址3端口号15003,1500插口(socket)广义地讲,网络上两个通信进程之间的关联可用一个五元组来表示:<协议,源IP,源端口,目的IP,目的端口>102Socket在不同语境中有不同的含义应用编程接口

API

称为socketAPI,简称为socket。socketAPI中使用的一个函数名也叫作socket。调用socket函数的端点称为socket。调用socket函数时其返回值称为socket描述符,可简称为socket。在操作系统内核中TCP协议的Berkeley实现,称为socket实现。第6章传输层传输层概述1UDP协议2TCP协议3无线TCP4端口的分配与Socket概念5传输服务原语与SocketAPI(3.2.4)6ISO的传输服务原语抽象传输服务原语SocketAPI回顾:服务原语的概念服务在形式上是由一组原语(primitive)(或操作)来描述的。原语定义了两层之间的接口。用户进程通过这些原语来访问该服务。如果协议栈位于操作系统中(大多数情况是这样的),则服务原语通常是一些系统调用。可用的服务原语取决于底层所提供的服务。比如,面向连接的服务与无连接服务的原语不同。传输服务原语:传输层为应用层服务提供的接口105ISO中定义的传输服务原语

4种10个:T-CONNECT.requestT-CONNECT.indicationT-CONNECT.responseT-CONNECT.confirmT-DATA.requestT-DATA.indicationT-EXPEDITED-DATA.requestT-EXPEDITED-DATA.indicationT-DISCONNECT.requestT-DISCONNECT.indication建立连接传输数据释放连接106概念性传输服务原语

LISTEN:监听连接请求,直到某个连接请求到达。CONNECT:请求建立连接。SEND:发送数据。RECEIVE:接收数据。DISCONNECT:释放连接。——面向连接的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论