计算机网络_运输层04_第1页
计算机网络_运输层04_第2页
计算机网络_运输层04_第3页
计算机网络_运输层04_第4页
计算机网络_运输层04_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

1、计计算算机机网网络络第第 5 章章 运运输输层层四四计算机学院计算机学院计算机网络计算机网络2课程回顾课程回顾1 1、理解流量控制中,窗口的变化。、理解流量控制中,窗口的变化。2 2、拥塞控制:防止过多的数据注入到网络中,这拥塞控制:防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载。样可以使网络中的路由器或链路不致过载。3 3、理解拥塞控制的方法。、理解拥塞控制的方法。4 4、TCPTCP首部中的控制位。首部中的控制位。5 5、TCPTCP首部中的序号和确认号。首部中的序号和确认号。6 6、当发送方的超时计时器时间到,还没有收到确、当发送方的超时计时器时间到,还没有收到确认,

2、说明什么?此时应采用什么办法控制?认,说明什么?此时应采用什么办法控制?7 7、当发送方接到三个连续的相同确认,说明什么?、当发送方接到三个连续的相同确认,说明什么?此时应采用什么办法控制?此时应采用什么办法控制?计算机学院计算机学院计算机网络计算机网络3课程目标课程目标掌握以下内容:掌握以下内容:1 1、TCPTCP的连接与释放。的连接与释放。2 2、数据包分析。、数据包分析。计算机学院计算机学院计算机网络计算机网络45-9 TCP 的运输连接管理的运输连接管理1. 运输连接的三个阶段运输连接的三个阶段 n运输连接有三个阶段,即:运输连接有三个阶段,即:连接建立连接建立、数据传数据传送送和和

3、连接释放连接释放。运输连接的管理就是使运输连。运输连接的管理就是使运输连接的建立和释放都能正常地进行。接的建立和释放都能正常地进行。n连接建立过程中要解决以下三个问题:连接建立过程中要解决以下三个问题:n要使每一方能够确知对方的存在。要使每一方能够确知对方的存在。n要允许双方协商一些参数(如最大报文段长要允许双方协商一些参数(如最大报文段长度,最大窗口大小,服务质量等)。度,最大窗口大小,服务质量等)。n能够对运输实体资源(如缓存大小,连接表能够对运输实体资源(如缓存大小,连接表中的项目等)进行分配。中的项目等)进行分配。 计算机学院计算机学院计算机网络计算机网络5客户服务器方式客户服务器方式

4、 nTCP TCP 连接的建立都是采用客户服务器方式。连接的建立都是采用客户服务器方式。n主动发起连接建立的应用进程叫做主动发起连接建立的应用进程叫做客户客户(client)(client)。n被动等待连接建立的应用进程叫做被动等待连接建立的应用进程叫做服务器服务器(server)(server)。 用三次握手建立用三次握手建立 TCP 连接连接 SYN = 1, seq = xCLOSEDCLOSED主动打开连接被动打开连接AB客户服务器5.9.1 TCP 的连接建立A 的 TCP 向 B 发出连接请求报文段,其首部中的同步位 SYN = 1,并选择序号 seq = x,表明传送数据时的第一

5、个数据字节的序号是 x。TCP规定,SYN报文段不能携带数据,要浪费一个序号。Rwnd:800用三次握手建立用三次握手建立 TCP 连接连接 SYN = 1, seq = xCLOSEDCLOSED主动打开被动打开AB客户服务器5.9.1 TCP 的连接建立 B 的 TCP 收到连接请求报文段后,如同意,则 发回确认。该报文段不携带数据,但消耗序号。 B 在确认报文段中应使 SYN = 1,使 ACK = 1, 其确认号ack = x 1,自己选择的序号 seq = y。SYN-SENTLISTENSYN = 1, ACK = 1, seq = y, ack= x 1Rwnd:500Rwnd:

6、800SYN = 1, seq = xCLOSEDCLOSED主动打开连接被动打开连接AB客户服务器SYN = 1, ACK = 1, seq = y, ack= x 1 A 收到此报文段后向 B 给出确认,其 ACK = 1, 确认号 ack = y 1。 A 的 TCP 通知上层应用进程,连接已经建立。 TCP标准规定,ACK报文段可以携带数据。但如果不携带数据则不消耗序号。SYN-SENTLISTENSYN-RCVDRwnd:500ACK = 1, seq = x + 1, ack = y 1Rwnd:800Rwnd:800SYN = 1, seq = xACK = 1, seq = x

7、 + 1, ack = y 1CLOSEDCLOSED数据传送主动打开被动打开AB客户服务器SYN = 1, ACK = 1, seq = y, ack= x 1 B 的 TCP 收到主机 A 的确认后,也通知其上层 应用进程:TCP 连接已经建立。SYN-SENTLISTENSYN-RCVDESTAB-LISHEDESTAB-LISHEDRwnd:500Rwnd:800Rwnd:800SYN-SENTESTAB-LISHEDSYN-RCVDLISTENESTAB-LISHED用三次握手建立用三次握手建立 TCP 连接的各状态连接的各状态 SYN = 1, seq = xACK = 1, se

8、q = x + 1, ack = y 1CLOSEDCLOSED数据传送主动打开被动打开AB客户服务器5.9.1 TCP 的连接建立SYN = 1, ACK = 1, seq = y, ack= x 1Rwnd:500Rwnd:800Rwnd:800计算机学院计算机学院计算机网络计算机网络11为什么为什么A还要发送确认呢还要发送确认呢 n已失效的连接请求报文段。已失效的连接请求报文段。n第一个连接请求丢失,第二个连接请求到达了。第一个连接请求丢失,第二个连接请求到达了。连接建立。连接建立。n如果第一个没丢失,而是在数据传输完成之后如果第一个没丢失,而是在数据传输完成之后到达接收方。到达接收方。

9、 B以为又要建立连接,于是给出以为又要建立连接,于是给出确认,如果不采用三次握手,连接就建立完成。确认,如果不采用三次握手,连接就建立完成。n实际上,实际上,A并没有要建立连接,所以不给出确认,并没有要建立连接,所以不给出确认,于是于是B就处在等待中,就处在等待中,B收不到收不到A的确认,就知的确认,就知道道A没有要求建立连接。没有要求建立连接。n所以所以A还要发送确认。这就是所谓的三次握手。还要发送确认。这就是所谓的三次握手。CLOSED数据包分析数据包分析(1(1、第一个数据包、第一个数据包) ) CLOSED数据包分析数据包分析(1(1、第一个数据包、第一个数据包) ) 数据包分析数据包

10、分析(1(1、第一个数据包、第一个数据包) ) CLOSED数据包分析数据包分析(2(2、第二个数据包、第二个数据包) ) CLOSED数据包分析数据包分析(2(2、第二个数据包、第二个数据包) ) CLOSED数据包分析数据包分析(2(2、第二个数据包、第二个数据包) ) CLOSED数据包分析数据包分析(3(3、第三个数据包、第三个数据包) ) 数据包分析数据包分析(4(4、第四个数据包、第四个数据包) ) 数据包分析数据包分析(5(5、第五个数据包、第五个数据包) ) 数据包分析数据包分析(6(6、第六个数据包、第六个数据包) ) 数据包分析数据包分析(6(6、第六个数据包、第六个数据包

11、) ) 数据包分析数据包分析(7(7、第七个数据包、第七个数据包) ) 数据包分析数据包分析(8(8、第八个数据包、第八个数据包) ) 数据包分析数据包分析(8(8、第八个数据包、第八个数据包) ) 数据包分析数据包分析FIN = 1, seq = uCLOSED主动关闭数据传送ESTAB-LISHEDESTAB-LISHEDAB客户服务器CLOSED5.9.2 TCP 的连接释放 数据传输结束后,通信的双方都可释放连接。 现在 A 的应用进程先向其 TCP 发出连接释放 报文段,并停止再发送数据,主动关闭 TCP 连接。 A 把连接释放报文段首部的 FIN = 1,其序号 seq = u(已

12、传送过的最后一个字节的序号加1),等待 B 的确认。FIN = 1, seq = uACK = 1, seq = v, ack= u 1主动关闭数据传送通知应用进程ESTAB-LISHEDESTAB-LISHEDAB客户服务器5.9.2 TCP 的连接释放 B 发出确认,确认号 ack = u 1, 而这个报文段自己的序号 seq = v。 TCP 服务器进程通知高层应用进程。 从 A 到 B 这个方向的连接就释放了,TCP 连接 处于半关闭状态。B 若发送数据,A 仍要接收。FIN = 1, seq = uACK = 1, seq = v, ack= u 1FIN = 1, ACK = 1,

13、 seq = w, ack= u 1主动关闭被动关闭数据传送通知应用进程ESTAB-LISHEDESTAB-LISHEDAB客户服务器数据传送5.9.2 TCP 的连接释放 若 B 已经没有要向 A 发送的数据, 其应用进程就通知 TCP 释放连接。 FIN = 1, seq = uACK = 1, seq = v, ack= u 1FIN = 1, ACK = 1, seq = w, ack= u 1主动关闭被动关闭数据传送通知应用进程ESTAB-LISHEDESTAB-LISHEDAB客户服务器数据传送5.9.2 TCP 的连接释放 A 收到连接释放报文段后,必须发出确认。 ACK = 1

14、, seq = u + 1, ack = w 1FIN = 1, seq = uACK = 1, seq = v, ack= u 1FIN = 1, ACK = 1, seq = w, ack= u 1主动关闭被动关闭数据传送通知应用进程ESTAB-LISHEDESTAB-LISHEDAB客户服务器数据传送5.9.2 TCP 的连接释放 在确认报文段中 ACK = 1,确认号 ack w 1, 自己的序号 seq = u + 1。 ACK = 1, seq = u + 1, ack = w 1CLOSEDACK = 1, seq = u + 1, ack = w 1FIN = 1, seq =

15、 uACK = 1, seq = v, ack= u 1FIN = 1, ACK = 1, seq = w, ack= u 1FIN-WAIT-1CLOSE-WAITFIN-WAIT-2LAST-ACK等待 2MSLTIME-WAIT主动关闭被动关闭数据传送通知应用进程ESTAB-LISHEDESTAB-LISHEDAB客户服务器数据传送CLOSED5.9.2 TCP 的连接释放 TCP 连接必须经过时间 2MSL 后才真正释放掉。 MSL:最长报文段寿命,建议2分钟计算机学院计算机学院计算机网络计算机网络33A 必须等待必须等待 2MSL 的时间的时间n第一,为了保证第一,为了保证 A A

16、发送的最后一个发送的最后一个 ACK ACK 报文段报文段能够到达能够到达 B B。n第二,防止第二,防止 “已失效的连接请求报文段已失效的连接请求报文段”出现出现在本连接中。在本连接中。A A 在发送完最后一个在发送完最后一个 ACK ACK 报文段报文段后,再经过时间后,再经过时间 2MSL2MSL,就可以使本连接持续的,就可以使本连接持续的时间内所产生的所有报文段,都从网络中消失。时间内所产生的所有报文段,都从网络中消失。这样就可以使下一个新的连接中不会出现这种旧这样就可以使下一个新的连接中不会出现这种旧的连接请求报文段。的连接请求报文段。释放连接:数据包分析(释放连接:数据包分析(1-

17、11-1)释放连接:数据包分析(释放连接:数据包分析(1-21-2)释放连接:数据包分析(释放连接:数据包分析(1-31-3)释放连接:数据包分析(释放连接:数据包分析(2-12-1)释放连接:数据包分析(释放连接:数据包分析(2-22-2)释放连接:数据包分析(释放连接:数据包分析(2-32-3)释放连接:数据包分析(释放连接:数据包分析(3-13-1)释放连接:数据包分析(释放连接:数据包分析(3-23-2)释放连接:数据包分析(释放连接:数据包分析(3-33-3)释放连接:数据包分析(释放连接:数据包分析(4-14-1)释放连接:数据包分析(释放连接:数据包分析(4-24-2)释放连接:

18、数据包分析(释放连接:数据包分析(4-34-3)5.9.3 TCP 的有限状态机的有限状态机nTCP TCP 有限状态机的图中每一个方框都是有限状态机的图中每一个方框都是 TCP TCP 可可能具有的状态。能具有的状态。n每个方框中的大写英文字符串是每个方框中的大写英文字符串是 TCP TCP 标准所使标准所使用的用的 TCP TCP 连接状态名。状态之间的箭头表示可连接状态名。状态之间的箭头表示可能发生的状态变迁。能发生的状态变迁。n箭头旁边的字,表明引起这种变迁的原因,或表箭头旁边的字,表明引起这种变迁的原因,或表明发生状态变迁后又出现什么动作。明发生状态变迁后又出现什么动作。n图中有三种

19、不同的箭头。图中有三种不同的箭头。n粗实线箭头粗实线箭头表示对客户进程的正常变迁。表示对客户进程的正常变迁。n粗虚线箭头粗虚线箭头表示对服务器进程的正常变迁。表示对服务器进程的正常变迁。n另一种细线箭头另一种细线箭头表示异常变迁。表示异常变迁。 TCP的的有有限限状状态态机机 CLOSEDESTABLISHEDLISTENCLOSE_WAITFIN_WAIT_1SYN_RCVDFIN_WAIT_2CLOSINGTIME_WAITSYN_SENTLAST_ACK主动打开主动打开被动打开被动打开被动关闭被动关闭主动关闭主动关闭起点起点被动打开被动打开主动打开主动打开 发送发送 SYN同时打开同时打

20、开收到收到 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定时经过两倍报文段寿命后定时经过两倍报文段寿命后关闭关闭计算机学院计算机学院计算机网络

21、计算机网络48练习题练习题3-1 TCP TCP使用三次握手协议来建立连接,设甲乙双方发送使用三次握手协议来建立连接,设甲乙双方发送报文的初始序号分别为报文的初始序号分别为X X和和Y Y,甲方发送()的报文给乙,甲方发送()的报文给乙方,乙方接收报文后发送()的报文给甲方,然后甲方方,乙方接收报文后发送()的报文给甲方,然后甲方发送一个确认报文给乙方便建立了连接。发送一个确认报文给乙方便建立了连接。A.SYN=1,A.SYN=1,序号序号=X=XB.SYN=1,B.SYN=1,序号序号=X+1,ACKx=1=X+1,ACKx=1 C.SYN=1, C.SYN=1,序号序号=Y=Y D.SYN

22、=1,D.SYN=1,序号序号=y,ACKy+1=1=y,ACKy+1=1A.SYN=1,A.SYN=1,序号序号=X+1=X+1B.SYN=1,B.SYN=1,序号序号=X+1,ACKx=1=X+1,ACKx=1 C.SYN=1, C.SYN=1,序号序号=Y,ACKx+1=1=Y,ACKx+1=1D.SYN=1,D.SYN=1,序号序号=y,ACKy+1=1=y,ACKy+1=1(注:(注:ACKACK的下标为捎带的序号)的下标为捎带的序号)解答:解答: A A; C C计算机学院计算机学院计算机网络计算机网络49练习题练习题3-2 TCP TCP为了实现可靠的服务,采用超时重传、确认为了

23、实现可靠的服务,采用超时重传、确认捎带技术。其中,在确认信息中捎带()的序号以捎带技术。其中,在确认信息中捎带()的序号以减少通信量。减少通信量。A.A.上一个已接收的报文上一个已接收的报文 B.B.下一个希望接收的报文下一个希望接收的报文C.C.正在发送的报文正在发送的报文D.D.下一个将要发送的报文下一个将要发送的报文解答:解答:B B计算机学院计算机学院计算机网络计算机网络50练习题练习题3-3 主机甲和主机乙之间已建立一个主机甲和主机乙之间已建立一个TCPTCP连接,连接,TCPTCP最大段的长度为最大段的长度为10001000字节,若主机甲的当前拥塞窗口为字节,若主机甲的当前拥塞窗口为40004000字节,在主机甲向主机字节,在主机甲向主机乙连续发送乙连续发送2 2个最大报文段后,成功收到主机乙发送的第一段的确个最大报文段后,成功收到主机乙发送的第一段的确认段,确认段中通告的接收窗口大小为认段,确认段中通告的接收窗口大小为20002000字节,则此时主机甲还字节,则此时主机甲还可以向主机乙发送的最大字节数是()。可以向主机乙发送的最大字节数是()。 A.1000A.1000B.2000B.2000C.3000C.3000D.4000D.4000解答:解答: A A解析:主机甲向主机乙连续发送解析:主机甲向主机乙连续发送2 2个最大报文段,而主机甲只成功

温馨提示

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

评论

0/150

提交评论