《通工专业现代通信网课件》由会员分享,可在线阅读,更多相关《通工专业现代通信网课件(37页珍藏版)》请在金锄头文库上搜索。
1、现代通信网现代通信网20122012秋季专业课秋季专业课秋季专业课秋季专业课主讲主讲 杨武军杨武军,86868816634888166348通信工程系通信工程系 通信与信息工程学院通信与信息工程学院西安邮电大学西安邮电大学7/19/20241通工专业现代通信网第六章第六章 Internet6.1 Internet概述6.2 协议与互连的原理6.3 IP层6.4 运输层 6.5 应用层6.6 IPv67/19/20242通工专业现代通信网第十章第十章 Internet的运输层的运输层applicationtransportnetworkdata linkphysicalapplicationtr
2、ansportnetworkdata linkphysicalnetworkdata linkphysicalnetworkdata linkphysicalnetworkdata linkphysicalnetworkdata linkphysicalnetworkdata linkphysicallogical end-end transport问题:1)IP层只提供Besteffort的服务,如果用户需要可靠的服务怎么办?2) 主机上正在通信的一对进程相互间如何寻址?7/19/20243通工专业现代通信网Internet传输层协议概述传输层协议概述应用层传输层网络层网络接入层TCPUDP
3、7/19/20244通工专业现代通信网1运输层运输层的协议和服务的协议和服务l两个运输层协议TCP,UDPl运输层提供基于端口号的复用能力。l运输层运行于端系统之上,提供不同主机上进程之间的逻辑通信能力。lTCP在两个进程间提供可靠数据传送服务lTCP段的结构l接收证实和超时重传l流量控制l连接管理l拥塞控制但TCP不保证时延和带宽7/19/20246通工专业现代通信网TCP保证可靠服务的机制保证可靠服务的机制l数据报丢失:引入接收确认,重传机制l错序:在段中引入顺序号,使在最终目的地可以进行分段的重装。lChecksum:保证识别传输中的差错l慢的接收者:引入流控机制,使接收者可控制发送者的
4、速率。l网络拥塞:控制源端的发送量,使之不超过网络的处理能力。l并发复用:引入端口号来区分不同的连接7/19/20247通工专业现代通信网2 TCP报文段的格式报文段的格式源端口号目的端口号32 bits 应用数据(可变长)顺序号确认号接收窗口紧急指针校验和FSRPAU头部长度保留可选项(变长)20字节小于40字节64k字节顺序号顺序号:当SYN1,代表初始序号ISN;其它时候SN表示该段中第一个数据字节的序号。确认号确认号:代表TCP接收实体期望接收的下一个字节的序号。头部长度头部长度:以32bit为单位。接收窗口接收窗口:由接收方给出的愿意接受的字节数量,起始序号由确认号字段给出。校验和校
5、验和:对整个报文段进行校验。7/19/20248通工专业现代通信网l紧急指针:该字段的值加上报文段的序号后,代表紧急数据序列的最后一个字节,它使收方能够知道共有多少紧急数据到来。lURG:置位代表紧急指针字段有意义。lACK: 确认号字段有意义。lPSH:强制交付lRST:重建连接lSYN:序号同步和连接建立。lFIN:本端不再发送数据,连接释放参数含义参数含义7/19/20249通工专业现代通信网3 TCP的连接管理的连接管理l面向连接:为实现一对进程之间可靠的数据通信,TCP采用了面向连接的方式,即在进程间先建立连接,再传输数据。l连接是实现可靠传输机制的基础l连接的标识:IP地址端口号(
6、运输层)连接,该连接又被称为套接字Socket。lTCP连接是主机到主机的连接,即只在直接通信的两个主机上维持连接状态。l套接字是一个全双工连接 A-B =【(本地IP,本地端口),(远端IP,远端端口)】7/19/202410通工专业现代通信网Socket的概念的概念进程进程InternetOS控制程序员控制TCP层层SocketBSocketA7/19/202411通工专业现代通信网基于套接字的多路分解基于套接字的多路分解ClientIP:BP1client IP: AP1P2serverIP: CSP: 9157DP: 80SP: 9157DP: 80P4P3D-IP:CS-IP: AD
7、-IP:CS-IP: BSP: 5775DP: 80D-IP:CS-IP: B7/19/202412通工专业现代通信网TCPFTPTELNETDNSSNMPTFTPSMTPUDP2123255369161520TCP保留端口号保留端口号RIP应用层应用层应用层应用层传输层传输层传输层传输层在在C/S模式下,提模式下,提供特定服务的服务供特定服务的服务器必须公开其服务器必须公开其服务端口号,所有的端口号,所有的Internet标准服标准服务都有自己的保留务都有自己的保留端口号,这些端口端口号,这些端口号被称为号被称为well-known port,一般一般1024以内的端口以内的端口将被将被OS
8、保留。保留。所有的所有的所有的所有的InternetInternet服务使用的周知端口列表可在找到服务使用的周知端口列表可在找到服务使用的周知端口列表可在找到服务使用的周知端口列表可在找到7/19/202413通工专业现代通信网连接的建立过程:三次握手连接的建立过程:三次握手l每一方通知对方自己将要使用的初始SN。l为什么不简单的用 0?l每一方确认对方的SNlSYN-ACK: 确认 SN + 1l第二个SYN可以和第一个ACK合并SYN: SNxACK: ANx+1SYN: SNyACK: ANy+1ClientServer7/19/202414通工专业现代通信网连接的释放过程连接的释放过程
9、l每一方独立发起释放过程l发送 FIN 消息l“Im not going to send any more data”l另一方可以继续发送数据l单向连接l确认必须继续l确认 FINl确认最后的 SN + 1释放过程看成两个独立的单工连接来理解ABFIN, SNaACK, AN=a+1ACK,DataACK, AN=B+1FIN,SN=B7/19/202415通工专业现代通信网4 TCP的流量控制的流量控制问题:如何限制发送者的速率以实现收发速率匹配?l链路层采用固定窗口大小的流量控制。lTCP采用由接收方在ACK中通知发送方可用窗口大小(信用量)流控机制。但主机到主机的往返时延RTT(roun
10、d-trip time)变化大。l为什么要引入这种复杂性?7/19/202416通工专业现代通信网滑动窗口协议中的发送方滑动窗口协议中的发送方l顺序号:Seq,发送方必须在分组头中包含一个顺序号。l窗口尺寸:W,允许的连续发送未被证实的分组的最大个数。l证实信号:Ack(i);证实0i1的分组被正确接受,累计证实策略。l定时器:l重传机制:当发生丢失时,进行重发纠错。1314 15 161718 19 20 21 22 23 24已发送且证实的已发送未证实的目前可发送的TCP窗口WSendBaseNextSeq7/19/202417通工专业现代通信网acknowledgedsent可以发送的可
11、以发送的 超出超出window的的Source PortDest. PortSequence NumberAcknowledgmentHL/FlagsWindowD. ChecksumUrgent PointerOptionsSource PortDest. PortSequence NumberAcknowledgmentHL/FlagsWindowD. ChecksumUrgent PointerOptions.Packet SentPacket Received TCP发送侧:流量控制参数7/19/202418通工专业现代通信网TCP中的信用量流控机制中的信用量流控机制l确认与流控分离的
12、思想:l涉及三个字段:顺序号SN,确认号AN,窗口尺寸Wl传输的每个字节均分配一个SN。l当发送方收到一个返回的报文段ANi,Wj,它的含义是:l序号0i-1的字节都被确认,下一个期望接收的字节是i.l发送方新的窗口大小为Wj,合法的窗口内的序号为ij-1。7/19/202419通工专业现代通信网信用量机制示例信用量机制示例7/19/202420通工专业现代通信网TCP的窗口大小的窗口大小l确定合理的W值是实现高效率流量控制的关键。W的取值显然与RTT有关,也与接收端可分配的缓冲区数量有关。(为简化分析,先不考虑缓冲区的限制)l设往返时延RTT,线路速率Rbps,分组长度=L。 则当W (RT
13、TR)/L时,不会造成发送端因等待确认信号,所引起的线路空闲。 直观上,W与RTT成正比。但实际上W太大无意义,只会增加缓冲区的开销。l但在Internet上,端到端的时延变化很大,如何确定RTT?7/19/202421通工专业现代通信网确定确定RTTl由于Internet的状态随时间在变,固定的RTT值对实际的网络情况就可能有时显得太长,有时又太短。因此TCP采用观察最近的报文段的往返时延的方法来估计RTT,然后设定一个大一些的值。lTCP的RTT估值公式 估计RTT(1)估计RTT 样本RTT 其中, 在【RFC2988】的参考值 0.125。 含义是,使RTT对短暂的时延变化不敏感。7/
14、19/202422通工专业现代通信网结论:结论:TCP的窗口值的窗口值l在发送一侧,TCP的窗口WminCwin,RcvWin,其中RcvWin由接收方在ACK中给出, 而Cwin由发送方根据网络的状态确定。l因此,发送方的最大吞吐量 minCwin,RcvWin/RTT7/19/202423通工专业现代通信网TCP的丢失重传机制的丢失重传机制l由于网络层不提供反馈信息,为保证可靠传输,TCP必须采用超时/重传机制来处理报文段的丢失问题。l丢失的定义:超时或连续收到三个冗余的ACK。l问题的关键:如何设定超时定时器RTO? 显然,RTO必须大于RTT,否则会造成不必要的重传。7/19/2024
15、24通工专业现代通信网RTO的估算公式的估算公式l显然,RTO也不应比RTT的估值大太多,否则当出现丢失时,TCP将不能很快地重传该报文段。l估值RTO估值RTT4DevRTT(偏差) DevRTT(1) DevRTT |当前RTT估值RTT均值) 推荐值0.25.7/19/202425通工专业现代通信网TCP: 重传示例Host ASeq=100, 20 bytes dataACK=100timepremature timeoutHost BSeq=92, 8 bytes dataACK=120Seq=92, 8 bytes dataSeq=92 timeoutACK=120Host ASe
16、q=92, 8 bytes dataACK=100losstimeoutlost ACK scenarioHost BXSeq=92, 8 bytes dataACK=100timeSeq=92 timeoutSendBase= 100SendBase= 120SendBase= 120Sendbase= 1007/19/202426通工专业现代通信网TCP 丢失重传 2Host ASeq=92, 8 bytes dataACK=100losstimeoutCumulative ACK scenarioHost BXSeq=100, 20 bytes dataACK=120timeSendBa
17、se= 120结论:结论: 实际中,实际中,RTO的值一般的值一般为为1秒左右。秒左右。一旦发生超时,一旦发生超时,TCP将将重传序号最小的未被确认重传序号最小的未被确认的报文段,并将的报文段,并将RTO值加值加倍。倍。发送端只为最小的未被发送端只为最小的未被确认的报文段启动一个超确认的报文段启动一个超时定时器,每收到一个时定时器,每收到一个ACK,执行一次复位执行一次复位。7/19/202427通工专业现代通信网5 TCP的拥塞控制的拥塞控制概述l原因:流进网络的数据量超过了网络的处理能力l信源不能知道网络的实时状态。l信源彼此之间互相不知道对方的行为l流量控制的区别:控制机制相似,但触发的
18、原因与目的不同。l拥塞导致的现象:分组丢失,时延加大,网络吞吐量下降10 Mbps100 Mbps1.5 Mbps7/19/202428通工专业现代通信网拥塞控制技术的分类拥塞控制技术的分类l端到端的拥塞控制:l没有来自网络的显式拥塞反馈指示l端系统只能通过观测loss, delay等推测拥塞lTCP采用次方案网络辅助的拥塞控制网络辅助的拥塞控制:n路由器给端系统提供拥塞指示n单比特拥塞指示位 n指明发送者应该使用的发送速率n问题: 导致路由器行为复杂化l根据网络层是否为运输层提供显式的拥塞状态信息来分类7/19/202429通工专业现代通信网TCP拥塞控制要解决拥塞控制要解决 的的3个问题个
19、问题1)如何限制一个已发生拥塞的连接的发送速率?2)TCP发送方如何确定发生了拥塞?3)当确定发生了拥塞后,采用什么算法来改变发送速率?7/19/202430通工专业现代通信网发送方如何调整发送速率?发送方如何调整发送速率?l接收窗口RcvWin的值由接收方确定,然后通知发送方,它用来防止接收方缓存溢出。但没有提供网络的拥塞状况。l网络的状况,由发送方探测确定,并记为拥塞窗口Cwin。l在任何时候,发送方实际的窗口大小应为CWin和RcvWin中的最小值,即满足: LastByteSent-LastByteAcked=minCWin,RcvWin.l为分析方便,我们忽略RcvWin,则得到发送
20、方的发送速率RCWin/RTT。l显然,在发送方调整CWin,就可以调整发送速率。7/19/202431通工专业现代通信网拥塞的确定与控制算法拥塞的确定与控制算法l在TCP发送方,如果超时,或连续受到三个冗余 的ACK,则认为发生分组丢失事件,从而判定拥塞。lTCP的拥塞控制算法:l加性增,乘性减AIMD(additive-increase and multiplicative-decrease)l慢启动(slowstart)l超时反应7/19/202432通工专业现代通信网Cwin在不同阶段的变化方式在不同阶段的变化方式l慢启动阶段:每经过1个RTT,Cwin加倍。 即每收到一个Ack,执行
21、CwinCwin1。l拥塞避免阶段:在没有发生丢失事件下,每经过1个RTT,Cwin加1。而当发生丢失事件后,则将Cwin减半 7/19/202433通工专业现代通信网慢启动的详解慢启动的详解l当可用带宽远大于Cwin/RTT时,线性增长速率的方式太慢。l慢启动的思想是:TCP连接建立后,从一个较慢的速率开始,但以指数方式增加发送速率,直到达到慢启动门限SSTH。Host Aone segmentRTTHost Btimetwo segmentsfour segments7/19/202434通工专业现代通信网Cwin与与SSTH初始值的确定初始值的确定l通常情况下,TCP连接建立开始,Cwi
22、n1 or2分组,但对于高速网络(100Mbps,1Gbps等),开采用更大的值。lSSTH:初始值可任意高,一般有两种取法,SSTHrcvWin,或64kB。7/19/202435通工专业现代通信网TCP拥塞控制的结论拥塞控制的结论l拥塞控制的实现是依靠对发送方Cwin参数的调整实现的。lCwin的变化在慢启动和拥塞避免阶段是不同的。l可能的改进应在哪儿?l注意:TCP的流量控制,丢失重传和拥塞控制是协同工作的。7/19/202436通工专业现代通信网问题问题l1.假设主机A通过TCP连接向主机B连续发送两个报文段,第一个序号为90,第二个为110,l第一个报文段中有多少数据?l假设第一个报文段丢失,而第二个到达主机B,那么在主机B发往A的确认报文中,确认号是多少?l2.我们看到TCP在连续收到三个冗余的ACK后才启动重传机制,你认为设计者为什么不在收到第一个冗余ACK后就开始重传?7/19/202437通工专业现代通信网