TCP-UDP协议分析

上传人:tia****nde 文档编号:246062818 上传时间:2024-10-12 格式:PPT 页数:90 大小:1MB
返回 下载 相关 举报
TCP-UDP协议分析_第1页
第1页 / 共90页
TCP-UDP协议分析_第2页
第2页 / 共90页
TCP-UDP协议分析_第3页
第3页 / 共90页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,TCP/IP协议分析 课件制作:邹延平 2009年9月,*,传输层-TCP/UDP协议分析,TCP/IP协议分析 课件制作:邹延平 2009年9月,传输层协议概述,从通信和信息处理的角度看,传输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。,物理层,网络层,传输层,应用层,数据链路层,面向信息处理,面向通信,用户功能,网络功能,TCP/IP协议分析 课件制作:邹延平 2009年9月,传输层,为相互通信的应用进程提供了逻辑通信,5,4,3,2,1,运输层提供应用进程,间的逻辑通信,主机 A,主机 B,应用进程,应用进程,路由器 1,路由器 2,AP,1,LAN,2,WAN,AP,2,AP,3,AP,4,IP 层,LAN,1,AP,1,AP,2,AP,4,端口,端口,5,4,3,2,1,IP 协议的作用范围,运输层协议 TCP 和 UDP 的作用范围,AP,3,TCP/IP协议分析 课件制作:邹延平 2009年9月,传输层,协议和网络层协议的主要区别,应用进程,应用进程,IP 协议的作用范围,(提供主机之间的逻辑通信),TCP 和 UDP 协议的作用范围,(提供进程之间的逻辑通信),因 特 网,TCP/IP协议分析 课件制作:邹延平 2009年9月,传输层向上提供可靠的和不可靠的逻辑通信信道,?,应,用,层,运,输,层,发,送,进,程,接,收,进,程,接,收,进,程,数据,数据,全双工可靠信道,数据,数据,使用 TCP 协议,使用 UDP 协议,不可靠信道,发,送,进,程,TCP/IP协议分析 课件制作:邹延平 2009年9月,传输层,的主要功能,传输层,为,应用进程之间,提供,端到端的,逻辑通信(但网络层是为,主机之间,提供逻辑通信)。,传输层,还要对收到的报文进行差错检测。,传输层,需要有两种不同的运输协议,即面向连接的 TCP 和无连接的 UDP。,TCP/IP协议分析 课件制作:邹延平 2009年9月,TCP/IP 体系中的,传输层,协议,TCP,UDP,IP,应用层,与各种网络接口,传输层,TCP/IP 的传输层有两个不同的协议:,(1) 用户数据报协议 UDP (User Datagram Protocol),(2) 传输控制协议 TCP (Transmission Control Protocol),TCP/IP协议分析 课件制作:邹延平 2009年9月,两个对等传输实体在通信时传送的数据单位叫作,传输协议数据单元,TPDU (Transport Protocol Data Unit),。,TCP,传送的数据单位协议是,TCP,报文段,(segment),UDP,传送的数据单位协议是,UDP,报文,或,用户数据报,。,TCP 与 UDP,TCP/IP协议分析 课件制作:邹延平 2009年9月,TCP 与 UDP,UDP,在传送数据之前不需要先建立连接,对方的传输层在收到,UDP,报文后,不需要给出任何确认。虽然,UDP,不提供可靠交付,但在某些情况下,UDP,是一种最有效的工作方式。,TCP,则提供面向连接的服务,TCP,不提供广播或多播服务。由于,TCP,要提供可靠的、面向连接的传输服务,因此不可避免地增加了许多的开销。这不仅使协议数据单元的首部增大很多,还要占用许多的处理机资源。,TCP/IP协议分析 课件制作:邹延平 2009年9月,TCP/UDP的端口,端口,就是传输层服务访问点,端口的作用就是让应用层的各种应用进程都能将其数据通过端口向下交付给传输层,以及让传输层知道应当将其报文段中的数据向上通过端口交付给应用层相应的进程。,从这个意义上讲,,端口,是用来标志应用层的进程,端口用一个,16,位端口号进行标志。,端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的各进程。在因特网中不同计算机的相同端口号是没有联系的。,TCP/IP协议分析 课件制作:邹延平 2009年9月,端口在进程之间的通信中所起的作用,应,用,层,运,输,层,网,络,层,TCP 报文段,UDP,用户数据报,应用进程,TCP 复用,IP 复用,UDP 复用,TCP 报文段,UDP,用户数据报,应用进程,端口,端口,TCP 分用,UDP 分用,IP 分用,IP 数据报,IP 数据报,发送方,接收方,TCP/IP协议分析 课件制作:邹延平 2009年9月,三类端口,熟知端口,,数值一般为 01023。,登记端口号,,数值为102449151,为没有熟知端口号的应用程序使用的。使用这个范围的端口号必须在 IANA 登记,以防止重复。,客户端口号,或,短暂端口号,,数值为4915265535,留给客户进程选择暂时使用。当服务器进程收到客户进程的报文时,就知道了客户进程所使用的动态端口号。通信结束后,这个端口号可供其他客户进程以后使用。,TCP/IP协议分析 课件制作:邹延平 2009年9月,插口(socket),TCP 使用“连接”(而不仅仅是“端口”)作为最基本的抽象,同时将 TCP 连接的端点称为,插口,(socket),或,套接字,、,套接口,。,插口和端口、IP 地址的关系是:,IP 地址,131.6.23.13,端口号,1500,131.6.23.13, 1500,插口(socket),TCP/IP协议分析 课件制作:邹延平 2009年9月,TCP连接与端口,TCP端口:一个TCP连接两端的端点,TCP,端口的表示:,16,位的二进制数,利用,TCP,端口可以提供多路复用功能,TCP/IP协议分析 课件制作:邹延平 2009年9月,著名的TCP端口号,TCP/IP协议分析 课件制作:邹延平 2009年9月,UDP,使用端口对给定主机上的多个目标进行区分,UDP,端口使用,16,位二进制数表示,TCP,和,UDP,各自拥有自己的端口号,著名的UDP端口号,TCP/IP协议分析 课件制作:邹延平 2009年9月,UDP(用户数据报协议)简介,UDP协议是英文User Datagram Protocol的缩写,即用户数据报协议,主要用来支持那些需要在计算机之间高速传输数据的网络应用。 包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用UDP协议。UDP不失为一项非常实用和可行的网络传输层协议。 UDP协议不提供端到端的确认和重传功能,它不保证信息包一定能到达目的地,因此称为不可靠协议。,TCP/IP协议分析 课件制作:邹延平 2009年9月,UDP 的主要特点,1) UDP是面向事务的协议,它用最少的传输服务为应用向其他程序发送报文提供了一个途径。 2) UDP是,无连接的、不可靠,的传输机制。在发送数据报前,UDP在发送和接收两者之间不建立连接。 3) 数据分组的封装和解包都建立在UDP使用的协议端口上。 4) UDP让应用能,直接访问Internet层的数据报服务,,例如分段和重组等Internet层所提供的数据报服务,UDP应用也提供。 5) UDP使用IP协议作为数据传输机制的底层协议。 6) UDP报头和数据都以与最初传输时相同的形式被传送到最终目的地。 7),UDP不提供确认,也不对数据的到达顺序加以控制,。因此UDP报文可能会丢失。 8),不实现数据分组的传送和重复检测,。 9) 当分组没有被传送时,UDP不能报告错误。 10) 吞吐量不受拥挤控制算法的调节,只受应用软件生成数据的速率、传输带宽、发送端和接收端主机性能的限制。,TCP/IP协议分析 课件制作:邹延平 2009年9月,UDP应用,既然UDP是一种不可靠的网络协议,那么还有什么使用价值或必要呢?其实不然,在有些情况下UDP协议可能会变得非常有用。 因为,UDP具有TCP所望尘莫及的速度优势,。虽然TCP协议中植入了各种安全保障功能,但是在实际执行的过程中会占用大量的系统开销, 无疑使速度受到严重的影响。反观UDP由于排除了信息可靠传递机制,将安全和排序等功能移交给上层应用来完成,,极大降低了执行时间, 使速度得到了保证,。关于UDP协议的最早规范是RFC768,1980年发布。尽管时间已经很长,但是UDP协议仍然继续在主流应用中发挥着作用。 包括视频电话会议系统在内的许多应用都证明了UDP协议的存在价值。因为相对于可靠性来说,这些应用更加注重实际性能, 所以为了获得更好的使用效果(例如,更高的画面帧刷新速率)往往可以牺牲一定的可靠性(例如,画面质量)。 这就是UDP和TCP两种协议的权衡之处。,TCP/IP协议分析 课件制作:邹延平 2009年9月,UDP 是面向报文的,IP 数据报的数据部分,IP 首部,IP 层,UDP 首部,UDP 用户数据报的数据部分,传输层,应用层报文,应用层,TCP/IP协议分析 课件制作:邹延平 2009年9月,UDP 的首部格式,伪首部,源端口,目的端口,长 度,检验和,数 据,首 部,UDP长度,源 IP 地址,目的 IP 地址,0,17,IP 数据报,字节,4,4,1,1,2,12,2,2,2,2,字节,发送在前,数 据,首 部,UDP 用户数据报,TCP/IP协议分析 课件制作:邹延平 2009年9月,伪首部,源端口,目的端口,长 度,检验和,数 据,首 部,UDP长度,源 IP 地址,目的 IP 地址,0,17,IP 数据报,字节,4,4,1,1,2,12,2,2,2,2,字节,发送在前,数 据,首 部,UDP 用户数据报,用户数据报 UDP 有两个字段:数据字段和首部字段。首部字段有 8 个字节,由 4 个字段组成,每个字段都是两个字节。,TCP/IP协议分析 课件制作:邹延平 2009年9月,伪首部,源端口,目的端口,长 度,检验和,数 据,首 部,UDP长度,源 IP 地址,目的 IP 地址,0,17,IP 数据报,字节,4,4,1,1,2,12,2,2,2,2,字节,发送在前,数 据,首 部,UDP 用户数据报,在计算检验和时,临时把“,伪首部,”和 UDP 用户数据报连接在一起。,伪首部仅仅是为了计算检验和,。,TCP/IP协议分析 课件制作:邹延平 2009年9月,TCP/UDP伪首部,伪首部并非TCP&UDP数据报中实际的有效成分。伪首部是一个,虚拟的数据结构,,其中的,信息是从数据报所在IP分组头的分组头中提取,的,既不向下传送也不向上递交,而仅仅是为,计算校验和,。,这样的校验和,既校验了TCP&UDP用户数据的源端口号和目的端口号以及TCP&UDP用户数据报的数据部分,又检验了IP数据报的源IP地址和目的地址。伪报头保证TCP&UDP数据单元到达正确的目的地址。,因此,伪报头中包含IP地址并且作为计算校验和需要考虑的一部分。最终目的端根据伪报头和数据单元计算校验和以验证通信数据在传输过程中没有改变而且到达了正确的目的地址。,.伪首部,更确切的说是校验和包含的个96位的伪首标,是个理论上的值,只是理论上它位于TCP&UDP首标的前面。这个伪首标包含了,源地址、目的地址、协议和TCP&UDP长度,等字段,这使得TCP&UDP能够防止出现路由选择错误的数据段。这些信息由网际协议(IP)承载,通过TCP&UDP网络接口,在IP上运行的TCP&UDP调用参数或者结果中传递。,TCP/IP协议分析 课件制作:邹延平 2009年9月,UDP伪首部,为了,计算校验和,,UDP把伪首部(PSEUDO-HEADER)引入数据报中, 在伪首部中有一个值为零的填充八位组用于保证整个数据报的长度为16比特的整数倍。使用伪首部的的目的是检验UDP数据报已达到正确的目的地。 在UDP校验和的计算过程中用到的伪首部长度为12字节,如下表所示。,源IP地址,目的IP地址,全 0,协 议,UDP长度,伪首部的源IP地址字段和目的IP地址字段记录了发送UDP报文时使用的源IP地址和目的IP地址。 协议字段指明了所使用的协议类型代码(UDP是17),而UDP长度字段是UDP数据报的长度(伪首部的长度不计算在内)。,TCP/IP协议分析 课件制作:邹延平 2009年9月,TCP/UDP伪首部,源IP地址,目的IP地址,全 0,协 议,TCP/UDP长度,UDP为17,TCP为06,TCP/IP协议分析 课件制作:邹延平 2009年9月,问题,在可靠性不是最重要的情况下,,UDP,可能是一个好的传输协议。试给出这种特定情况的一些示例。,UDP,和,IP,的不可靠程度是否相同?为什么是或为什么不是,?,UDP,协议本身是否能确保数据报的发送和接收顺序,?,伪首部有哪些部分?有什么作用?,TCP/IP协议分析 课件制作:邹延平 2009年9月,TCP(传输控制协议)简介,TCP是TCP/IP协议栈中的传输层协议,TCP称为面向字节流连接的和可靠的传输层协议。它给IP协议提供了面向连接的和可靠的服务。TCP与UDP不同,它允许发送和接收字节流形式的数据。为了使服务器和客户端以不同的速度产生和消费数据,TCP提供了发送和接收两个缓冲区。TCP提供全双工服务,数据同时能双向流动。每一方都有发送和接收两个缓冲区,可以双向发送数据。TCP在字节上加上一个递进的确认序列号来告诉接收者发送者期望收到的下一个字节,如果在规定时间内,没有收到关于这个包的确认响应,重新发送此包,这保证了TCP是一种可靠的传输层协议。,TCP/IP协议分析 课件制作:邹延平 2009年9月,7,6,8,H,TCP 面向流的概念,发送 TCP 报文段,发送方,接收方,把字节写入,发送缓存,从接收缓存,读取字节,应用进程,应用进程,1,2,3,0,18,17,16,15,14,19,20,21,4,5,13,12,11,H,10,9,H,加上 TCP 首部,构成 TCP 报文段,TCP,TCP,字节流,字节流,H,表示 TCP 报文段的首部,x,表示序号为 x 的数据字节,TCP 连接,TCP/IP协议分析 课件制作:邹延平 2009年9月,TCP 的连接,TCP 把连接作为最基本的抽象。,每一条 TCP 连接有两个端点。,TCP 连接的端点不是主机,不是主机的IP 地址,不是应用进程,也不是运输层的协议端口。TCP 连接的端点叫做,套接字,(socket)或,插口,。,端口号,拼接到,(contatenated with) IP 地址即构成了套接字。,TCP/IP协议分析 课件制作:邹延平 2009年9月,TCP,首部,20 字节的,固定首部,目 的 端 口,首部长度,检 验 和,选 项 (长 度 可 变),源 端 口,序 号,紧 急 指 针,窗 口,确 认 号,保 留,F,I,N,32 位,S,Y,N,R,S,T,P,S,H,A,C,K,U,R,G,位 0 8 16 24 31,填 充,TCP 数据部分,TCP 首部,TCP 报文段,IP 数据部分,IP 首部,发送在前,TCP 报文段的首部格式,TCP/IP协议分析 课件制作:邹延平 2009年9月,TCP,首部,20,字节,固定,首部,目 的 端 口,首部长度,检 验 和,选 项 (长 度 可 变),源 端 口,序 号,紧 急 指 针,窗 口,确 认 号,保 留,F,I,N,S,Y,N,R,S,T,P,S,H,A,C,K,U,R,G,位 0 8 16 24 31,填 充,源端口和目的端口字段各占 2 字节。端口是传输层与应用层的服务接口。传输层的复用和分用功能都要通过端口才能实现,。,TCP/IP协议分析 课件制作:邹延平 2009年9月,TCP,首部,20,字节,固定,首部,目 的 端 口,首部长度,检 验 和,选 项 (长 度 可 变),源 端 口,序 号,紧 急 指 针,窗 口,确 认 号,保 留,F,I,N,S,Y,N,R,S,T,P,S,H,A,C,K,U,R,G,位 0 8 16 24 31,填 充,序号字段占 4 字节。TCP 连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。,TCP/IP协议分析 课件制作:邹延平 2009年9月,TCP,首部,20,字节,固定,首部,目 的 端 口,首部长度,检 验 和,选 项 (长 度 可 变),源 端 口,序 号,紧 急 指 针,窗 口,确 认 号,保 留,F,I,N,S,Y,N,R,S,T,P,S,H,A,C,K,U,R,G,位 0 8 16 24 31,填 充,确认号字段占 4 字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。,TCP/IP协议分析 课件制作:邹延平 2009年9月,TCP,首部,20,字节,固定,首部,目 的 端 口,首部长度,检 验 和,选 项 (长 度 可 变),源 端 口,序 号,紧 急 指 针,窗 口,确 认 号,保 留,F,I,N,S,Y,N,R,S,T,P,S,H,A,C,K,U,R,G,位 0 8 16 24 31,填 充,首部长度占 4 位,单位是 32 位字(以 4 字节为计算单位)。,TCP/IP协议分析 课件制作:邹延平 2009年9月,TCP,首部,20,字节,固定,首部,目 的 端 口,首部长度,检 验 和,选 项 (长 度 可 变),源 端 口,序 号,紧 急 指 针,窗 口,确 认 号,保 留,F,I,N,S,Y,N,R,S,T,P,S,H,A,C,K,U,R,G,位 0 8 16 24 31,填 充,保留字段保留为今后使用,目前置为 0。,TCP/IP协议分析 课件制作:邹延平 2009年9月,TCP,首部,20,字节,固定,首部,目 的 端 口,首部长度,检 验 和,选 项 (长 度 可 变),源 端 口,序 号,紧 急 指 针,窗 口,确 认 号,保 留,F,I,N,S,Y,N,R,S,T,P,S,H,A,C,K,U,R,G,位 0 8 16 24 31,填 充,Flag位: RFC793定义:,RFC3168定义:,URG,ACK,PSH,RST,SYN,FIN,CWR,ECN,URG,ACK,PSH,RST,SYN,FIN,TCP/IP协议分析 课件制作:邹延平 2009年9月,TCP,首部,20,字节,固定,首部,目 的 端 口,首部长度,检 验 和,选 项 (长 度 可 变),源 端 口,序 号,紧 急 指 针,窗 口,确 认 号,保 留,F,I,N,S,Y,N,R,S,T,P,S,H,A,C,K,U,R,G,位 0 8 16 24 31,填 充,紧急 URG 当 URG,1 时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。,TCP/IP协议分析 课件制作:邹延平 2009年9月,TCP,首部,20,字节,固定,首部,目 的 端 口,首部长度,检 验 和,选 项 (长 度 可 变),源 端 口,序 号,紧 急 指 针,窗 口,确 认 号,保 留,F,I,N,S,Y,N,R,S,T,P,S,H,A,C,K,U,R,G,位 0 8 16 24 31,填 充,确认 ACK 只有当 ACK,1 时确认号字段才有效。当 ACK,0 时,确认号无效。,TCP/IP协议分析 课件制作:邹延平 2009年9月,TCP,首部,20,字节,固定,首部,目 的 端 口,首部长度,检 验 和,选 项 (长 度 可 变),源 端 口,序 号,紧 急 指 针,窗 口,确 认 号,保 留,F,I,N,S,Y,N,R,S,T,P,S,H,A,C,K,U,R,G,位 0 8 16 24 31,填 充,推送 PSH (PuSH) 接收 TCP 收到 PSH = 1 的报文段,就尽快地交付接收应用进程,而不再等到整个缓存都填满了后再向上交付。,TCP/IP协议分析 课件制作:邹延平 2009年9月,TCP,首部,20,字节,固定,首部,目 的 端 口,首部长度,检 验 和,选 项 (长 度 可 变),源 端 口,序 号,紧 急 指 针,窗 口,确 认 号,保 留,F,I,N,S,Y,N,R,S,T,P,S,H,A,C,K,U,R,G,位 0 8 16 24 31,填 充,复位 RST (ReSeT) 当 RST,1 时,表明 TCP 连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。,TCP/IP协议分析 课件制作:邹延平 2009年9月,TCP,首部,20,字节,固定,首部,目 的 端 口,首部长度,检 验 和,选 项 (长 度 可 变),源 端 口,序 号,紧 急 指 针,窗 口,确 认 号,保 留,F,I,N,S,Y,N,R,S,T,P,S,H,A,C,K,U,R,G,位 0 8 16 24 31,填 充,同步 SYN 同步 SYN = 1 表示这是一个连接请求或连接接受报文。,TCP/IP协议分析 课件制作:邹延平 2009年9月,TCP,首部,20,字节,固定,首部,目 的 端 口,首部长度,检 验 和,选 项 (长 度 可 变),源 端 口,序 号,紧 急 指 针,窗 口,确 认 号,保 留,F,I,N,S,Y,N,R,S,T,P,S,H,A,C,K,U,R,G,位 0 8 16 24 31,填 充,终止 FIN (FINis) 用来释放一个连接。FIN,1 表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。,TCP/IP协议分析 课件制作:邹延平 2009年9月,TCP,首部,20,字节,固定,首部,目 的 端 口,首部长度,检 验 和,选 项 (长 度 可 变),源 端 口,序 号,紧 急 指 针,窗 口,确 认 号,保 留,F,I,N,S,Y,N,R,S,T,P,S,H,A,C,K,U,R,G,位 0 8 16 24 31,填 充,窗口字段 占 2 字节,用来让对方设置发送窗口的依据,单位为字节。TCP接收方缓冲的字节数,窗口大小为0表明发送方应该停止传送接受方的TCP缓冲区已满,TCP/IP协议分析 课件制作:邹延平 2009年9月,TCP,首部,20,字节,固定,首部,目 的 端 口,首部长度,检 验 和,选 项 (长 度 可 变),源 端 口,序 号,紧 急 指 针,窗 口,确 认 号,保 留,F,I,N,S,Y,N,R,S,T,P,S,H,A,C,K,U,R,G,位 0 8 16 24 31,填 充,检验和 占 2 字节。检验和字段检验的范围包括首部和数据这两部分。在计算检验和时,要在 TCP 报文段的前面加上 12 字节的,伪首部,。,TCP/IP协议分析 课件制作:邹延平 2009年9月,TCP,首部,20,字节,固定,首部,目 的 端 口,首部长度,检 验 和,选 项 (长 度 可 变),源 端 口,序 号,紧 急 指 针,窗 口,确 认 号,保 留,F,I,N,S,Y,N,R,S,T,P,S,H,A,C,K,U,R,G,位 0 8 16 24 31,填 充,紧急指针字段 占 16 位,,指出在本报文段中紧急数据共有多少个字节(紧急数据放在本报文段数据的最前面)。,TCP/IP协议分析 课件制作:邹延平 2009年9月,TCP,首部,20,字节,固定,首部,目 的 端 口,数据,偏移,检 验 和,选 项 (长 度 可 变),源 端 口,序 号,紧 急 指 针,窗 口,确 认 号,保 留,F,I,N,S,Y,N,R,S,T,P,S,H,A,C,K,U,R,G,比特 0 8 16 24 31,填 充,选项字段 长度可变。TCP 最初只规定了一种选项,即最大报文段长度 MSS。MSS 告诉对方 TCP:“我的缓存所能接收的报文段的数据字段的最大长度是 MSS 个字节。,”,MSS,(Maximum Segment Size),是 TCP 报文段中的,数据字段,的最大长度。,数据字段加上 TCP 首部,才等于整个的 TCP 报文段。,TCP/IP协议分析 课件制作:邹延平 2009年9月,TCP选项,选项,定义,2,最大数据段大小(MSS),3,窗口扩大选项 占 3 字节,其中有一个字节表示移位值 S。新的窗口值等于TCP 首部中的窗口位数增大到(16 + S),相当于把窗口值向左移动 S 位后获得实际的窗口大小。,4,允许选择的ACK(SACK)说明发送方对于特定的ACK数据包可以有选择的使用确认,5,SACK-在SACK数据包内使用,8,时间戳选项占10 字节,其中最主要的字段时间戳值字段(4 字节)和时间戳回送回答字段(4 字节)。,更多TCP选项说明请查询http:/www.iana.org/assignments/tcp-parameters,TCP/IP协议分析 课件制作:邹延平 2009年9月,TCP,首部,20,字节,固定,首部,目 的 端 口,首部长度,检 验 和,选 项 (长 度 可 变),源 端 口,序 号,紧 急 指 针,窗 口,确 认 号,保 留,F,I,N,S,Y,N,R,S,T,P,S,H,A,C,K,U,R,G,位 0 8 16 24 31,填 充,填充字段 这是为了使整个首部长度是 4 字节的整数倍。,TCP/IP协议分析 课件制作:邹延平 2009年9月,TCP 可靠传输的实现,以字节为单位的滑动窗口,前移,不允许发送,已发送并,收到确认,A 的发送窗口 = 20,允许发送的序号,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,B 期望,收到的序号,前沿,后沿,前移,收缩,根据 B 给出的窗口值,A 构造出自己的发送窗口,TCP 标准强烈不赞成,发送窗口前沿向后收缩,TCP/IP协议分析 课件制作:邹延平 2009年9月,不允许发送,已发送并,收到确认,A 的发送窗口位置不变,允许发送但尚未发送,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,已发送但未收到确认,56,P,1,P,2,P,3,不允许接收,已发送确认,并交付主机,B 的接收窗口,允许接收,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,未按序收到,可用窗口,A 发送了 11 个字节的数据,P,3, P,1,= A 的发送窗口(又称为通知窗口),P,2, P,1,= 已发送但尚未收到确认的字节数,P,3, P,2,= 允许发送但尚未发送的字节数(又称为可用窗口),TCP/IP协议分析 课件制作:邹延平 2009年9月,允许发送但尚未发送,A 的发送窗口向前滑动,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,已发送并收到确认,不允许,发送,已发送,但未收到确认,56,P,1,P,2,P,3,允许接收,B 的接收窗口向前滑动,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,已发送确认,并交付主机,不允许,接收,56,未按序收到,A 收到新的确认号,发送窗口向前滑动,先存下,等待缺少的,数据的到达,TCP/IP协议分析 课件制作:邹延平 2009年9月,不允许,发送,已发送并收到确认,A 的发送窗口已满,有效窗口为零,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,已发送但未收到确认,56,P,1,P,2,P,3,A 的发送窗口内的序号都已用完,,但还没有再收到确认,必须停止发送。,TCP/IP协议分析 课件制作:邹延平 2009年9月,发送缓存,最后被确认,的字节,发送应用程序,发送缓存,最后发送,的字节,发送窗口,已发送,TCP,序号增大,TCP/IP协议分析 课件制作:邹延平 2009年9月,接收缓存,接收应用程序,已收到,接收窗口,TCP,接收缓存,下一个读取,的字节,序号增大,下一个期望收到的,字节(确认号),TCP/IP协议分析 课件制作:邹延平 2009年9月,1 1000 1501 3000 3501 4500,确认号 = 1001,L,1,= 1501,L,2,= 3501,R,1,= 3001,R,1,= 4501,接收到的字节流序号不连续,连续的字节流,第一个字节块,第二个字节块,和前后字节不连续的每一个字节块都有两个边界:,左边界和右边界。图中用四个指针标记这些边界。,第一个字节块的左边界,L,1,= 1501,,但右边界,R,1,= 3001,。,左边界指出字节块的第一个字节的序号,但右边界减,1,才是,字节块中的最后一个序号。,第二个字节块的左边界,L,2,= 3501,,而右边界,R,2,= 4501,。,TCP/IP协议分析 课件制作:邹延平 2009年9月,TCP 的流量控制,利用滑动窗口实现流量控制,一般说来,我们总是希望数据传输得更快一些。但如果发送方把数据发送得过快,接收方就可能来不及接收,这就会造成数据的丢失。,流量控制,(flow control)就是让发送方的发送速率不要太快,既要让接收方来得及接收,也不要使网络发生拥塞。,利用滑动窗口机制可以很方便地在 TCP 连接上实现流量控制。,TCP/IP协议分析 课件制作:邹延平 2009年9月,seq = 1, DATA,seq = 201, DATA,seq = 401, DATA,seq = 301, DATA,seq = 101, DATA,seq = 201, DATA,seq = 501, DATA,ACK = 1, ack = 201, rwnd = 300,ACK = 1, ack = 601, rwnd = 0,ACK = 1, ack = 501,rwnd,= 100,A,B,允许 A 发送序号 201 至 500 共 300 字节,A 发送了序号 101 至 200,还能发送 200 字节,A 发送了序号 301 至 400,还能再发送 100 字节新数据,A 发送了序号 1 至 100,还能发送 300 字节,A 发送了序号 401 至 500,不能再发送新数据了,A 超时重传旧的数据,但不能发送新的数据,允许 A 发送序号 501 至 600 共 100 字节,A 发送了序号 501 至 600,不能再发送了,不允许 A 再发送(到序号 600 为止的数据都收到了),丢失!,流量控制举例,A 向 B 发送数据。在连接建立时,B 告诉 A:“我的接收窗口 rwnd = 400(字节)”。,TCP/IP协议分析 课件制作:邹延平 2009年9月,TCP的流量控制过程,窗口和窗口通告可以有效的控制TCP的数据传输流量,使发送方发送的数据永远不会溢出接受方的缓冲空间。,TCP/IP协议分析 课件制作:邹延平 2009年9月,用三次握手建立 TCP 连接,SYN = 1, seq = x,CLOSED,CLOSED,主动打开,被动打开,A,B,客户,服务器,TCP 的连接建立,A 的 TCP 向 B 发出连接请求报文段,其首部中的,同步位 SYN = 1,并选择序号 seq = x,表明传送,数据时的第一个数据字节的序号是 x。,TCP/IP协议分析 课件制作:邹延平 2009年9月,用三次握手建立 TCP 连接,SYN = 1, seq = x,CLOSED,CLOSED,主动打开,被动打开,A,B,客户,服务器,TCP 的连接建立,SYN = 1, ACK = 1, seq = y, ack= x,1,B,的,TCP,收到连接请求报文段后,如同意,则,发回确认。,B,在确认报文段中应使,SYN = 1,,使,ACK = 1,,,其确认号,ack,= x,1,,自己选择的序号,seq,= y,。,TCP/IP协议分析 课件制作:邹延平 2009年9月,SYN = 1, seq = x,ACK = 1, seq = x + 1, ack = y,1,CLOSED,CLOSED,主动打开,被动打开,A,B,客户,服务器,SYN = 1, ACK = 1, seq = y, ack= x,1,A,收到此报文段后向,B,给出确认,其,ACK = 1,,,确认号,ack,= y,1,。,A,的,TCP,通知上层应用进程,连接已经建立。,TCP/IP协议分析 课件制作:邹延平 2009年9月,SYN = 1, seq = x,ACK = 1, seq = x + 1, ack = y,1,CLOSED,CLOSED,数据传送,主动打开,被动打开,A,B,客户,服务器,SYN = 1, ACK = 1, seq = y, ack= x,1,B,的,TCP,收到主机,A,的确认后,也通知其上层,应用进程:,TCP,连接已经建立。,TCP/IP协议分析 课件制作:邹延平 2009年9月,SYN-,SENT,ESTAB-,LISHED,SYN-,RCVD,LISTEN,ESTAB-,LISHED,用三次握手建立 TCP 连接的各状态,SYN = 1, seq = x,ACK = 1, seq = x + 1, ack = y,1,CLOSED,CLOSED,数据传送,主动打开,被动打开,A,B,客户,服务器,TCP 的连接建立,SYN = 1, ACK = 1, seq = y, ack= x,1,TCP/IP协议分析 课件制作:邹延平 2009年9月,FIN = 1, seq = u,CLOSED,主动关闭,数据传送,ESTAB-,LISHED,ESTAB-,LISHED,A,B,客户,服务器,CLOSED,TCP,的连接释放,数据传输结束后,通信的双方都可释放连接。,现在,A,的应用进程先向其,TCP,发出连接释放,报文段,并停止再发送数据,主动关闭,TCP,连接。,A,把连接释放报文段首部的,FIN = 1,,其序号,seq,= u,,等待,B,的确认。,TCP/IP协议分析 课件制作:邹延平 2009年9月,FIN = 1, seq = u,ACK = 1, seq = v, ack= u,1,主动关闭,数据传送,通知,应用,进程,ESTAB-,LISHED,ESTAB-,LISHED,A,B,客户,服务器,TCP,的连接释放,B,发出确认,确认号,ack,= u,1,,,而这个报文段自己的序号,seq,= v,。,TCP,服务器进程通知高层应用进程。,从,A,到,B,这个方向的连接就释放了,,TCP,连接,处于半关闭状态。,B,若发送数据,,A,仍要接收。,TCP/IP协议分析 课件制作:邹延平 2009年9月,FIN = 1, seq = u,ACK = 1, seq = v, ack= u,1,FIN = 1, ACK = 1, seq = w, ack= u,1,主动关闭,被动关闭,数据传送,通知,应用,进程,ESTAB-,LISHED,ESTAB-,LISHED,A,B,客户,服务器,数据传送,TCP,的连接释放,若,B,已经没有要向,A,发送的数据,,其应用进程就通知,TCP,释放连接。,TCP/IP协议分析 课件制作:邹延平 2009年9月,FIN = 1, seq = u,ACK = 1, seq = v, ack= u,1,FIN = 1, ACK = 1, seq = w, ack= u,1,主动关闭,被动关闭,数据传送,通知,应用,进程,ESTAB-,LISHED,ESTAB-,LISHED,A,B,客户,服务器,数据传送,TCP,的连接释放,A,收到连接释放报文段后,必须发出确认。,ACK = 1, seq = u + 1, ack = w,1,TCP/IP协议分析 课件制作:邹延平 2009年9月,FIN = 1, seq = u,ACK = 1, seq = v, ack= u,1,FIN = 1, ACK = 1, seq = w, ack= u,1,主动关闭,被动关闭,数据传送,通知,应用,进程,ESTAB-,LISHED,ESTAB-,LISHED,A,B,客户,服务器,数据传送,TCP,的连接释放,在确认报文段中,ACK = 1,,确认号,ack,w,1,,,自己的序号,seq,= u + 1,。,ACK = 1, seq = u + 1, ack = w,1,TCP/IP协议分析 课件制作:邹延平 2009年9月,CLOSED,ACK = 1, seq = u + 1, ack = w,1,FIN = 1, seq = u,ACK = 1, seq = v, ack= u,1,FIN = 1, ACK = 1, seq = w, ack= u,1,FIN-,WAIT-1,CLOSE-,WAIT,FIN-,WAIT-2,LAST-,ACK,等待 2MSL,TIME-,WAIT,主动关闭,被动关闭,数据传送,通知,应用,进程,ESTAB-,LISHED,ESTAB-,LISHED,A,B,客户,服务器,数据传送,CLOSED,5.9.2 TCP,的连接释放,TCP 连接必须经过时间 2MSL 后才真正释放掉。,TCP/IP协议分析 课件制作:邹延平 2009年9月,TCP 的正常的连接建立和关闭,SYN, SEQ = x,客户进程,服务器进程,LISTEN(被动打开),(主动打开) SYN_SENT,SYN_RCVD,ESTABLISHED,ESTABLISHED,(主动关闭) FIN_WAIT_1,CLOSE_WAIT ( 被动关闭),FIN_WAIT_2,LAST_ACK,TIME_WAIT,CLOSED,(全双工数据传送阶段),SYN, ACK, SEQ = y, ACK = x + 1,ACK, SEQ = x + 1, ACK = y + 1,FIN, SEQ = u,ACK, SEQ = v, ACK = u + 1,FIN, ACK, SEQ = v, ACK = u + 1,ACK, SEQ = u + 1, ACK = v + 1,TIM
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!