TCP-UDP协议分析.ppt_第1页
TCP-UDP协议分析.ppt_第2页
TCP-UDP协议分析.ppt_第3页
TCP-UDP协议分析.ppt_第4页
TCP-UDP协议分析.ppt_第5页
免费预览已结束,剩余85页可下载查看

下载本文档

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

文档简介

TCP/IP协议分析课件制作:邹延平2009年9月,传输层-TCP/UDP协议分析,TCP/IP协议分析课件制作:邹延平2009年9月,传输层协议概述,从通信和信息处理的角度看,传输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。,物理层,网络层,传输层,应用层,数据链路层,面向信息处理,面向通信,用户功能,网络功能,TCP/IP协议分析课件制作:邹延平2009年9月,传输层为相互通信的应用进程提供了逻辑通信,54321,运输层提供应用进程间的逻辑通信,主机A,主机B,应用进程,应用进程,路由器1,路由器2,AP1,LAN2,WAN,AP2,AP3,AP4,IP层,LAN1,AP1,AP2,AP4,端口,端口,54321,IP协议的作用范围,运输层协议TCP和UDP的作用范围,AP3,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(UserDatagramProtocol)(2)传输控制协议TCP(TransmissionControlProtocol),TCP/IP协议分析课件制作:邹延平2009年9月,两个对等传输实体在通信时传送的数据单位叫作传输协议数据单元TPDU(TransportProtocolDataUnit)。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分用,发送方,接收方,TCP/IP协议分析课件制作:邹延平2009年9月,三类端口,熟知端口,数值一般为01023。登记端口号,数值为102449151,为没有熟知端口号的应用程序使用的。使用这个范围的端口号必须在IANA登记,以防止重复。客户端口号或短暂端口号,数值为4915265535,留给客户进程选择暂时使用。当服务器进程收到客户进程的报文时,就知道了客户进程所使用的动态端口号。通信结束后,这个端口号可供其他客户进程以后使用。,TCP/IP协议分析课件制作:邹延平2009年9月,插口(socket),TCP使用“连接”(而不仅仅是“端口”)作为最基本的抽象,同时将TCP连接的端点称为插口(socket),或套接字、套接口。插口和端口、IP地址的关系是:,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协议是英文UserDatagramProtocol的缩写,即用户数据报协议,主要用来支持那些需要在计算机之间高速传输数据的网络应用。包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用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地址字段记录了发送UDP报文时使用的源IP地址和目的IP地址。协议字段指明了所使用的协议类型代码(UDP是17),而UDP长度字段是UDP数据报的长度(伪首部的长度不计算在内)。,TCP/IP协议分析课件制作:邹延平2009年9月,TCP/UDP伪首部,UDP为17TCP为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月,TCP面向流的概念,发送TCP报文段,发送方,接收方,把字节写入发送缓存,从接收缓存读取字节,应用进程,应用进程,18,17,16,15,14,H,加上TCP首部构成TCP报文段,TCP,TCP,字节流,字节流,H,表示TCP报文段的首部,x,表示序号为x的数据字节,TCP连接,TCP/IP协议分析课件制作:邹延平2009年9月,TCP的连接,TCP把连接作为最基本的抽象。每一条TCP连接有两个端点。TCP连接的端点不是主机,不是主机的IP地址,不是应用进程,也不是运输层的协议端口。TCP连接的端点叫做套接字(socket)或插口。端口号拼接到(contatenatedwith)IP地址即构成了套接字。,TCP/IP协议分析课件制作:邹延平2009年9月,TCP首部,20字节的固定首部,目的端口,首部长度,检验和,选项(长度可变),源端口,序号,紧急指针,窗口,确认号,保留,FIN,32位,SYN,RST,PSH,ACK,URG,位08162431,填充,TCP数据部分,TCP首部,TCP报文段,IP数据部分,IP首部,发送在前,TCP报文段的首部格式,TCP/IP协议分析课件制作:邹延平2009年9月,TCP首部,20字节固定首部,目的端口,首部长度,检验和,选项(长度可变),源端口,序号,紧急指针,窗口,确认号,保留,FIN,SYN,RST,PSH,ACK,URG,位08162431,填充,源端口和目的端口字段各占2字节。端口是传输层与应用层的服务接口。传输层的复用和分用功能都要通过端口才能实现。,TCP/IP协议分析课件制作:邹延平2009年9月,TCP首部,20字节固定首部,目的端口,首部长度,检验和,选项(长度可变),源端口,序号,紧急指针,窗口,确认号,保留,FIN,SYN,RST,PSH,ACK,URG,位08162431,填充,序号字段占4字节。TCP连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。,TCP/IP协议分析课件制作:邹延平2009年9月,TCP首部,20字节固定首部,目的端口,首部长度,检验和,选项(长度可变),源端口,序号,紧急指针,窗口,确认号,保留,FIN,SYN,RST,PSH,ACK,URG,位08162431,填充,确认号字段占4字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。,TCP/IP协议分析课件制作:邹延平2009年9月,TCP首部,20字节固定首部,目的端口,首部长度,检验和,选项(长度可变),源端口,序号,紧急指针,窗口,确认号,保留,FIN,SYN,RST,PSH,ACK,URG,位08162431,填充,首部长度占4位,单位是32位字(以4字节为计算单位)。,TCP/IP协议分析课件制作:邹延平2009年9月,TCP首部,20字节固定首部,目的端口,首部长度,检验和,选项(长度可变),源端口,序号,紧急指针,窗口,确认号,保留,FIN,SYN,RST,PSH,ACK,URG,位08162431,填充,保留字段保留为今后使用,目前置为0。,TCP/IP协议分析课件制作:邹延平2009年9月,TCP首部,20字节固定首部,目的端口,首部长度,检验和,选项(长度可变),源端口,序号,紧急指针,窗口,确认号,保留,FIN,SYN,RST,PSH,ACK,URG,位08162431,填充,Flag位:RFC793定义:RFC3168定义:,TCP/IP协议分析课件制作:邹延平2009年9月,TCP首部,20字节固定首部,目的端口,首部长度,检验和,选项(长度可变),源端口,序号,紧急指针,窗口,确认号,保留,FIN,SYN,RST,PSH,ACK,URG,位08162431,填充,紧急URG当URG1时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。,TCP/IP协议分析课件制作:邹延平2009年9月,TCP首部,20字节固定首部,目的端口,首部长度,检验和,选项(长度可变),源端口,序号,紧急指针,窗口,确认号,保留,FIN,SYN,RST,PSH,ACK,URG,位08162431,填充,确认ACK只有当ACK1时确认号字段才有效。当ACK0时,确认号无效。,TCP/IP协议分析课件制作:邹延平2009年9月,TCP首部,20字节固定首部,目的端口,首部长度,检验和,选项(长度可变),源端口,序号,紧急指针,窗口,确认号,保留,FIN,SYN,RST,PSH,ACK,URG,位08162431,填充,推送PSH(PuSH)接收TCP收到PSH=1的报文段,就尽快地交付接收应用进程,而不再等到整个缓存都填满了后再向上交付。,TCP/IP协议分析课件制作:邹延平2009年9月,TCP首部,20字节固定首部,目的端口,首部长度,检验和,选项(长度可变),源端口,序号,紧急指针,窗口,确认号,保留,FIN,SYN,RST,PSH,ACK,URG,位08162431,填充,复位RST(ReSeT)当RST1时,表明TCP连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。,TCP/IP协议分析课件制作:邹延平2009年9月,TCP首部,20字节固定首部,目的端口,首部长度,检验和,选项(长度可变),源端口,序号,紧急指针,窗口,确认号,保留,FIN,SYN,RST,PSH,ACK,URG,位08162431,填充,同步SYN同步SYN=1表示这是一个连接请求或连接接受报文。,TCP/IP协议分析课件制作:邹延平2009年9月,TCP首部,20字节固定首部,目的端口,首部长度,检验和,选项(长度可变),源端口,序号,紧急指针,窗口,确认号,保留,FIN,SYN,RST,PSH,ACK,URG,位08162431,填充,终止FIN(FINis)用来释放一个连接。FIN1表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。,TCP/IP协议分析课件制作:邹延平2009年9月,TCP首部,20字节固定首部,目的端口,首部长度,检验和,选项(长度可变),源端口,序号,紧急指针,窗口,确认号,保留,FIN,SYN,RST,PSH,ACK,URG,位08162431,填充,窗口字段占2字节,用来让对方设置发送窗口的依据,单位为字节。TCP接收方缓冲的字节数,窗口大小为0表明发送方应该停止传送接受方的TCP缓冲区已满,TCP/IP协议分析课件制作:邹延平2009年9月,TCP首部,20字节固定首部,目的端口,首部长度,检验和,选项(长度可变),源端口,序号,紧急指针,窗口,确认号,保留,FIN,SYN,RST,PSH,ACK,URG,位08162431,填充,检验和占2字节。检验和字段检验的范围包括首部和数据这两部分。在计算检验和时,要在TCP报文段的前面加上12字节的伪首部。,TCP/IP协议分析课件制作:邹延平2009年9月,TCP首部,20字节固定首部,目的端口,首部长度,检验和,选项(长度可变),源端口,序号,紧急指针,窗口,确认号,保留,FIN,SYN,RST,PSH,ACK,URG,位08162431,填充,紧急指针字段占16位,指出在本报文段中紧急数据共有多少个字节(紧急数据放在本报文段数据的最前面)。,TCP/IP协议分析课件制作:邹延平2009年9月,TCP首部,20字节固定首部,目的端口,数据偏移,检验和,选项(长度可变),源端口,序号,紧急指针,窗口,确认号,保留,FIN,SYN,RST,PSH,ACK,URG,比特08162431,填充,选项字段长度可变。TCP最初只规定了一种选项,即最大报文段长度MSS。MSS告诉对方TCP:“我的缓存所能接收的报文段的数据字段的最大长度是MSS个字节。”,MSS(MaximumSegmentSize)是TCP报文段中的数据字段的最大长度。数据字段加上TCP首部才等于整个的TCP报文段。,TCP/IP协议分析课件制作:邹延平2009年9月,TCP选项,更多TCP选项说明请查询/assignments/tcp-parameters,TCP/IP协议分析课件制作:邹延平2009年9月,TCP首部,20字节固定首部,目的端口,首部长度,检验和,选项(长度可变),源端口,序号,紧急指针,窗口,确认号,保留,FIN,SYN,RST,PSH,ACK,URG,位08162431,填充,填充字段这是为了使整个首部长度是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,P1,P2,P3,不允许接收,已发送确认并交付主机,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个字节的数据,P3P1=A的发送窗口(又称为通知窗口)P2P1=已发送但尚未收到确认的字节数P3P2=允许发送但尚未发送的字节数(又称为可用窗口),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,P1,P2,P3,允许接收,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,P1,P2,P3,A的发送窗口内的序号都已用完,但还没有再收到确认,必须停止发送。,TCP/IP协议分析课件制作:邹延平2009年9月,发送缓存,最后被确认的字节,发送应用程序,发送缓存,最后发送的字节,发送窗口,已发送,TCP,序号增大,TCP/IP协议分析课件制作:邹延平2009年9月,接收缓存,接收应用程序,已收到,接收窗口,TCP,接收缓存,下一个读取的字节,序号增大,下一个期望收到的字节(确认号),TCP/IP协议分析课件制作:邹延平2009年9月,110001501300035014500,确认号=1001,L1=1501,L2=3501,R1=3001,R1=4501,接收到的字节流序号不连续,连续的字节流,第一个字节块,第二个字节块,和前后字节不连续的每一个字节块都有两个边界:左边界和右边界。图中用四个指针标记这些边界。第一个字节块的左边界L1=1501,但右边界R1=3001。左边界指出字节块的第一个字节的序号,但右边界减1才是字节块中的最后一个序号。第二个字节块的左边界L2=3501,而右边界R2=4501。,TCP/IP协议分析课件制作:邹延平2009年9月,TCP的流量控制利用滑动窗口实现流量控制,一般说来,我们总是希望数据传输得更快一些。但如果发送方把数据发送得过快,接收方就可能来不及接收,这就会造成数据的丢失。流量控制(flowcontrol)就是让发送方的发送速率不要太快,既要让接收方来得及接收,也不要使网络发生拥塞。利用滑动窗口机制可以很方便地在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连接,CLOSED,CLOSED,A,B,客户,服务器,TCP的连接建立,A的TCP向B发出连接请求报文段,其首部中的同步位SYN=1,并选择序号seq=x,表明传送数据时的第一个数据字节的序号是x。,TCP/IP协议分析课件制作:邹延平2009年9月,用三次握手建立TCP连接,CLOSED,CLOSED,A,B,客户,服务器,TCP的连接建立,B的TCP收到连接请求报文段后,如同意,则发回确认。B在确认报文段中应使SYN=1,使ACK=1,其确认号ack=x1,自己选择的序号seq=y。,TCP/IP协议分析课件制作:邹延平2009年9月,CLOSED,CLOSED,A,B,客户,服务器,A收到此报文段后向B给出确认,其ACK=1,确认号ack=y1。A的TCP通知上层应用进程,连接已经建立。,TCP/IP协议分析课件制作:邹延平2009年9月,CLOSED,CLOSED,A,B,客户,服务器,B的TCP收到主机A的确认后,也通知其上层应用进程:TCP连接已经建立。,TCP/IP协议分析课件制作:邹延平2009年9月,用三次握手建立TCP连接的各状态,CLOSED,CLOSED,A,B,客户,服务器,TCP的连接建立,TCP/IP协议分析课件制作:邹延平2009年9月,CLOSED,数据传送,ESTAB-LISHED,ESTAB-LISHED,A,B,客户,服务器,CLOSED,TCP的连接释放,数据传输结束后,通信的双方都可释放连接。现在A的应用进程先向其TCP发出连接释放报文段,并停止再发送数据,主动关闭TCP连接。A把连接释放报文段首部的FIN=1,其序号seq=u,等待B的确认。,TCP/IP协议分析课件制作:邹延平2009年9月,数据传送,通知应用进程,ESTAB-LISHED,ESTAB-LISHED,A,B,客户,服务器,TCP的连接释放,B发出确认,确认号ack=u1,而这个报文段自己的序号seq=v。TCP服务器进程通知高层应用进程。从A到B这个方向的连接就释放了,TCP连接处于半关闭状态。B若发送数据,A仍要接收。,TCP/IP协议分析课件制作:邹延平2009年9月,数据传送,ESTAB-LISHED,ESTAB-LISHED,A,B,客户,服务器,数据传送,TCP的连接释放,若B已经没有要向A发送的数据,其应用进程就通知TCP释放连接。,TCP/IP协议分析课件制作:邹延平2009年9月,数据传送,ESTAB-LISHED,ESTAB-LISHED,A,B,客户,服务器,数据传送,TCP的连接释放,A收到连接释放报文段后,必须发出确认。,TCP/IP协议分析课件制作:邹延平2009年9月,数据传送,ESTAB-LISHED,ESTAB-LISHED,A,B,客户,服务器,数据传送,TCP的连接释放,在确认报文段中ACK=1,确认号ackw1,自己的序号seq=u+1。,ACK=1,seq=u+1,ack=w1,TCP/IP协议分析课件制作:邹延平2009年9月,ACK=1,seq=u+1,ack=w1,FIN=1,ACK=1,seq=w,ack=u1,FIN-WAIT-1,CLOSE-WAIT,FIN-WAIT-2,LAST-ACK,被动关闭,数据传送,ESTAB-LISHED,ESTAB-LISHED,A,B,客户,服务器,数据传送,CLOSED,5.9.2TCP的连接释放,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,TIME_WAIT,CLOSE_WAIT,SYN_RCVD,ESTABLISHED,TCP/IP协议分析课件制作:邹延平2009年9月,TCP的状态,CLOSED,ESTABLISHED,LISTEN,CLOSE_WAIT,FIN_WAIT_1,SYN_RCVD,FIN_WAIT_2,CLOSING,TIME_WAIT,SYN_SENT,LAST_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,定时经过两倍报文段寿命后,关闭,TCP/IP协议分析课件制作:邹延平2009年9月,三次握手过程动画演示,TCP是一个面向连接的协议,无论哪一方发送数据之前,都必须先在双方之间建立一条连接,这种连接是通过三次握手建立起来的。三次握手过程如下:(动画演示)主机A(客户端)发送一个SYN段指明主机A打算连接的主机B(服务器)的端口,以及初始序号ISN,无ACK标记。主机B发回包含主机B的初始序号的SYN报文段作为应答。同时将确认序号设置为主机A的ISN加1以对主机A的SYN报文段进行确认。主机A必须将确认序号设置为主机B的ISN加1以对主机B的SYN报文段进行确认。,TCP/IP协议分析课件制作:邹延平2009年9月,半开放连接动画演示,当握手进程没有成功完成最终的确认时就会发生半开放连接。半开放连接的过程如下:(动画演示)主机A向主机B发送第1个数据包,也就是SYN数据包。主机B发送ACKSYN数据包作为回应。这时主机A应该发送第3个数据包,即ACK数据包来结束握手,但实际却没有发送第3个数据包,使得主机B一直发送ACKSYN数据包。,TCP/IP协议分析课件制作:邹延平2009年9月,TCP连接的终止动画演示,TCP客户端发送一个FIN,用来关闭从客户到服务器的传送,当服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。同时TCP服务器还向应用程序传送一个文件结束符。接着这个服务器程序就关闭它的连接,导致它的TCP端发送一个FIN,客户必须发回一个确认,并将确认序号设置为收到序号加1。(动画演示)主机A(TCP客户端)发送一个FIN,用来关闭从主机A到主机B的传送。当主机B(服务器)收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。同时主机B还向应用程序传送一个文件结束符。接着主机B就关闭它的连接,导致它的TCP端发送一个FIN。主机A必须发回一个确认,并将确认序号设置为收到序号加1。,TCP/IP协议分析课件制作:邹延平2009年9月,半关闭的过程动画演示,TCP提供了连续的一端在结束它的发送后还能接受来自另一端数据的能力。这就是半关闭。半关闭的过程如下:(动画演示)主机A(TCP客户端)发送一个FIN。当主机B(服务器)收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。此时,主机B仍可发送数据,主机A仍然可以对数据发送ACK应答。,TCP/IP协议分析课件制作:邹延平2009年9月,滑动窗口动画演示,为了实现流量控制,TCP使用一种滑动窗口协议。用这种方法,双方主机为每个连接使用一个窗口。窗口区间是缓冲区的一部分包含了一台主机在等待另一台主机的确认期间所能发送的字节数据。该窗口之所以称为滑动窗口,是因为它能随着数据和确认的发送和接收在整个缓冲区内滑动。TCP的滑动窗口是面向字节的。滑动窗口的使用使传输效率更高,同时也能控制数据流量,使接收端不被数据所淹没。(动画演示),TCP/IP协议分析课件制作:邹延平2009年9月,状态转换图,为了记录TCP不同时期发生的所有不同事件,TCP软件实现为一个有限状态机,是指在有限个状态之间变化的机器。为了说明这个概念,我们使用状态转换图。TCP有限状态机的状态转换过程如下:(动画演示),TCP/IP协议分析课件制作:邹延平2009年9月,DOS攻击,TCP/IP协议分析课件制作:邹延平2009年9月,TCP/UDP协议的安全问题,UDPFlood攻击TCP-SYNFlood攻击TCP会话劫持IP欺骗攻击IP碎片攻击,TCP/IP协议分析课件制作:邹延平2009年9月,UDPFlood,UDPFlood是利用大量UDP小包冲击DNS服务器或Radius认证服务器、流媒体视频服务器。由于UDP协议是一种无连接的服务,在UDPFLOOD攻击中,攻击者可发送大量伪造源IP地址的小UDP包。由于UDP协议是无连接性的,所以只要开了一个UDP的端口提供相关服务的话,那么就可针对相关的服务进行攻击。,TCP/IP协议分析课件制作:邹延平2009年9月,SYNFlood,SYNFlood是一种利用TCP协议的三次握手,发送大量伪造的TCP连接请求,从而使得被攻击方资源耗尽(CPU满负荷或内存不足)的攻击方式。,参考辅导材料:详解SYNFlood攻击原理

温馨提示

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

评论

0/150

提交评论