计算机网络第5章运输层四计算机学院计算机网络2课程回顾1、理解流量控制中,窗口的变化。2、拥塞控制:防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载。3、理解拥塞控制的方法。4、TCP首部中的控制位。5、TCP首部中的序号和确认号。6、当发送方的超时计时器时间到,还没有收到确认,说明什么?此时应采用什么办法控制?7、当发送方接到三个连续的相同确认,说明什么?此时应采用什么办法控制?计算机学院计算机网络3课程目标掌握以下内容:1、TCP的连接与释放。2、数据包分析。计算机学院计算机网络45-9TCP的运输连接管理1.运输连接的三个阶段运输连接有三个阶段,即:连接建立、数据传送和连接释放。运输连接的管理就是使运输连接的建立和释放都能正常地进行。连接建立过程中要解决以下三个问题:要使每一方能够确知对方的存在。要允许双方协商一些参数(如最大报文段长度,最大窗口大小,服务质量等)。能够对运输实体资源(如缓存大小,连接表中的项目等)进行分配。计算机学院计算机网络5客户服务器方式TCP连接的建立都是采用客户服务器方式。主动发起连接建立的应用进程叫做客户(client)。被动等待连接建立的应用进程叫做服务器(server)。用三次握手建立TCP连接CLOSEDCLOSED主动打开连接被动打开连接AB客户服务器5.9.1TCP的连接建立A的TCP向B发出连接请求报文段,其首部中的同步位SYN=1,并选择序号seq=x,表明传送数据时的第一个数据字节的序号是x。TCP规定,SYN报文段不能携带数据,要浪费一个序号。用三次握手建立TCP连接CLOSEDCLOSED主动打开被动打开AB客户服务器5.9.1TCP的连接建立•B的TCP收到连接请求报文段后,如同意,则发回确认。该报文段不携带数据,但消耗序号。•B在确认报文段中应使SYN=1,使ACK=1,其确认号ack=x1,自己选择的序号seq=y。SYN-SENTLISTENCLOSEDCLOSED主动打开连接被动打开连接AB客户服务器•A收到此报文段后向B给出确认,其ACK=1,确认号ack=y1。•A的TCP通知上层应用进程,连接已经建立。•TCP标准规定,ACK报文段可以携带数据。但如果不携带数据则不消耗序号。SYN-SENTLISTENSYN-RCVDCLOSEDCLOSED数据传送主动打开被动打开AB客户服务器•B的TCP收到主机A的确认后,也通知其上层应用进程:TCP连接已经建立。SYN-SENTLISTENSYN-RCVDESTAB-LISHEDESTAB-LISHEDSYN-SENTESTAB-LISHEDSYN-RCVDLISTENESTAB-LISHED用三次握手建立TCP连接的各状态CLOSEDCLOSED数据传送主动打开被动打开AB客户服务器5.9.1TCP的连接建立计算机学院计算机网络11为什么A还要发送确认呢已失效的连接请求报文段。第一个连接请求丢失,第二个连接请求到达了。连接建立。如果第一个没丢失,而是在数据传输完成之后到达接收方。B以为又要建立连接,于是给出确认,如果不采用三次握手,连接就建立完成。实际上,A并没有要建立连接,所以不给出确认,于是B就处在等待中,B收不到A的确认,就知道A没有要求建立连接。所以A还要发送确认。这就是所谓的三次握手。CLOSED数据包分析(1、第一个数据包)CLOSED数据包分析(1、第一个数据包)数据包分析(1、第一个数据包)CLOSED数据包分析(2、第二个数据包)CLOSED数据包分析(2、第二个数据包)CLOSED数据包分析(2、第二个数据包)CLOSED数据包分析(3、第三个数据包)数据包分析(4、第四个数据包)数据包分析(5、第五个数据包)数据包分析(6、第六个数据包)数据包分析(6、第六个数据包)数据包分析(7、第七个数据包)数据包分析(8、第八个数据包)数据包分析(8、第八个数据包)数据包分析CLOSED主动关闭数据传送ESTAB-LISHEDESTAB-LISHEDAB客户服务器CLOSED5.9.2TCP的连接释放•数据传输结束后,通信的双方都可释放连接。现在A的应用进程先向其TCP发出连接释放报文段,并停止再发送数据,主动关闭TCP连接。•A把连接释放报文段首部的FIN=1,其序号seq=u(已传送过的最后一个字节的序号加1),等待B的确认。主动关闭数据传送通知应用进程ESTAB-LISHEDESTAB-LISHEDAB客户服务器5.9.2TCP的连接释放•B发出确认,确认号ack=u1,而这个报文段自己的序号seq=v。•TCP服务器进程通知高层应用进程。•从A到B这个方向的连接就释放了,TCP连接处于半关闭状态。B若发送数据,A仍要接收。主动关闭被动关闭数据传送通知应用进程ESTAB-LISHEDESTAB-LISHEDAB客户服务器5.9.2TCP的连接释放•若B已经没有要向A发送的数据,其应用进程就通知TCP释放连接。主动关闭被动关闭数据传送通知应用进程ESTAB-LISHEDESTAB-LISHEDAB客户服务器5.9.2TCP的连接释放•A收到连接释放报文段后,必须发出确认。主动关闭被动关闭数据传送通知应用进程ESTAB-LISHEDESTAB-LISHEDAB客户服务器5.9.2TCP的连接释放•在确认报文段中ACK=1,确认号ackw1,自己的序号seq=u+1。CLOSEDFIN-WAIT-1CLOSE-WAITFIN-WAIT-2LAST-ACK等待2MSLTIME-WAIT主动关闭被动关闭数据传送通知应用进程ESTAB-LISHEDESTAB-LISHEDAB客户服务器CLOSED5.9.2TCP的连接释放TCP连接必须经过时间2MSL后才真正释放掉。MSL:最长报文段寿命,建议2分钟计算机学院计算机网络33A必须等待2MSL的时间第一,为了保证A发送的最后一个ACK报文段能够到达B。第二,防止“已失效的连接请求报文段”出现在本连接中。A在发送完最后一个ACK报文段后,再经过时间2MSL,就可以使本连接持续的时间内所产生的所有报文段,都从网络中消失。这样就可以使下一个新的连接中不会出现这种旧的连接请求报文段。释放连接:数据包分析(1-1)释放连接:数据包分析(1-2)释放连接:数据包分析(1-3)释放连接:数据包分析(2-1)释放连接:数据包分析(2-2)释放连接:数据包分析(2-3)释放连接:数据包分析(3-1)释放连接:数据包分析(3-2)释放连接:数据包分析(3-3)释放连接:数据包分析(4-1)释放连接:数据包分析(4-2)释放连接:数据包分析(4-3)5.9.3TCP的有限状态机TCP有限状态机的图中每一个方框都是TCP可能具有的状态。每个方框中的大写英文字符串是TCP标准所使用的TCP连接状态名。状态之间的箭头表示可能发生的状态变迁。箭头旁边的字,表明引起这种变迁的原因,或表明发生状态变迁后又出现什么动作。图中有三种不同的箭头。粗实线箭头表示对客户进程的正常变迁。粗虚线箭头表示对服务器进程的正常变迁。另一种细线箭头表示异常变迁。TCP的有限状态机CLOSEDESTABLISHEDLISTENCLOSE_WAITFIN_WAIT_1SYN_RCVDFIN_WAIT_2CLOSINGTIME_WAITSYN_SENTLAST_ACK主动打开被动打开被动关闭主动关闭起点被动打开主动打开发送SYN同时打开收到SYN,发送SYN,ACK收到ACK数据传送阶段关闭发送FIN关闭发送FIN关闭发送FIN收到RST收到SYN发送SYN,ACK关闭或超时收到ACK收到SYN,ACK发送ACK收到ACK收到ACK收到FIN发送ACK收到FIN,ACK发送ACK收到FIN发送ACK同时关闭收到FIN发送ACK发送SYN定时经过两倍报文段寿命后关闭计算机学院计算机网络48练习题3-1TCP使用三次握手协议来建立连接,设甲乙双方发送报文的初始序号分别为X和Y,甲方发送(①)的报文给乙方,乙方接收报文后发送(②)的报文给甲方,然后甲方发送一个确认报文给乙方便建立了连接。①A.SYN=1,序号=XB.SYN=1,序号=X+1,ACKx=1C.SYN=1,序号=YD.SYN=1,序号=y,ACKy+1=1②A.SYN=1,序号=X+1B.SYN=1,序号=X+1,ACKx=1C.SYN=1,序号=Y,ACKx+1=1D.SYN=1,序号=y,ACKy+1=1(注:ACK的下标为捎带的序号)解答:①A;②C计算机学院计算机网络49练习题3-2TCP为了实现可靠的服务,采用超时重传、确认捎带技术。其中,在确认信息中捎带()的序号以减少通信量。A.上一个已接收的报文B.下一个希望接收的报文C.正在发送的报文D.下一个将要发送的报文解答:B计算机学院计算机网络50练习题3-3主机甲和主机乙之间已建立一个TCP连接,TCP最大段的长度为1000字节,若主机甲的当前拥塞窗口为4000字节,在主机甲向主机乙连续发送2个最大报文段后,成功收到主机乙发送的第一段的确认段,确认段中通告的接收窗口大小为2000字节,则此时主机甲还可以向主机乙发送的最大字节数是()。A.1000B.2000C.3000D.4000解答:A解析:主机甲向主机乙连续发送2个最大报文段,而主机甲只成功收到第一段的确认,此时,发送窗口大小变为2000字节,所以,主机甲还可以向主机乙发送1000字节。注意:拥塞窗口为4000字节的时候,发送窗口应为多少?计算机学院计算机网络51课程总结1、TCP连接与释放。理解TCP的工作原理,可靠传输的机制,连接与释放的过程。2、数据包分析。如何捕获并分析数据包。根据捕获的数据包进行分析,验证计算机网络原理,并能通过数据包的分析了解如何解决简单的网络问题。计算机学院计算机网络52第20集预告1、域名系统的工作原理和作用。2、FTP的工作原理和作用。3、通过捕获的FTP的数据包分析并理解其工作原理。4、理解TFTP的工作原理和设置。作业第5章习题23、39上交时间:12月10日上课交作业【同时上交实验报告】,由学委收齐,按学号排序。过期不收。要求:用A4纸交作业,手写完成,写清班级学号和姓名。禁止抄袭:雷同作业均零分。寄语每天进步一点点