TCP三次握手

上传人:少*** 文档编号:243146392 上传时间:2024-09-16 格式:PPT 页数:29 大小:779KB
返回 下载 相关 举报
TCP三次握手_第1页
第1页 / 共29页
TCP三次握手_第2页
第2页 / 共29页
TCP三次握手_第3页
第3页 / 共29页
点击查看更多>>
资源描述
内页一级标题,二级标题,单击此处编辑母版文本样式,内页一级标题,二级标题,单击此处编辑母版文本样式,TCP,三次握手分析,部门:中试部,日期:,2014,年,11,月,14,日,TCP/IP,体系中的传输层协议,TCP,协议处于传输层,OSI,TCP/IP,TCP/IP Protocol Suite,Application,Application,HTTP,FTP,SMTP,Presentation,DNS,RIP,SNMP,Session,Transport,Transport,TCP,UDP,Network,Internet,ARP/RARP / IP / ICMP / IGMP,Data-Link,Link,Physical,Physical,(Segment),(Datagram),(Frame),端口在进程之间的通信中所起的作用,TCP,报文段,UDP,用户数据报,应用进程,TCP,复用,IP,复用,UDP,复用,端口,TCP,报文段,UDP,用户数据报,应用进程,端口,TCP,分用,UDP,分用,IP,分用,IP,数据报,IP,数据报,应用层,传输层,网络层,进程和线程,进程,(process):,是一段程序的执行过程,一个程序可以有一个或多个进程,大部分程序执行的时候只有一个进程,也有小部分是多进程的程序(例如浏览器),线程,(thread):,是程序执行的最小单元,它是进程中的一个实体,是被系统独立调度和分派的基本单位,线程不拥有系统资源,但它可与同属一个进程的其他线程共享进程所拥有的全部资源。一个进程可以创建和撤销另一个线程,同一个进程中的多个线程之间可以并发执行。,操作系统,控制和管理,进程,(,程序调用,,,资源分配等,),,,进程,可控制和调用,线程,端口的概念,端口,就是传输层服务访问点,(TSAP : Transport Service Access Point),端口的作用就是让应用层的各种应用进程都能将其数据通过端口向下交付给传输层,以及让传输层知道应当将其报文段中的数据向上通过端口交付给应用层相应的进程,从这个意义上讲,端口是用来标志应用层的进程,端口用一个,16bit,端口号进行标志,端口号具有本地意义,即端口号只是为了标志本计算机应用层的各进程。在,internet,中不同计算机的相同端口号是没有联系的,(,端口,/MAC,地址,/IP,地址,),两类端口,一类是熟知端口,其数值一般为,01023,。当一种新的应用程序出现时,必须为它指派一个熟知端口,另一类则是一般端口,用来随时分配给请求通信的客户进程,TCP,复用和分用,TCP,复用:,从源主机的不同套接字中收集数据块,并为每个数据块封装上首部信息从而生成报文段,然后将报文段传送到网络层中去,TCP,分用:,每个传输层的报文段中设置了几个字段,包括源端口号和目的端口号等。在接收端,传输层检查这些字段并标识出接收套接字,然后将该报文定向到该套接字。主机上的每个套接字被分配一个端口号,当报文到达主机时,传输层检查报文段中的目的端口号,并将其定向到相应的套接字。,插口,(socket),TCP,使用“连接”,(,而不仅仅是“端口”,),作为最基本的抽象,同时将,TCP,连接的端点称为插口,(socket),,或套接字,/,套接口。,插口和端口,/ip,地址的关系是:,IP,地址,192.168.1.101,端口号,1500,192.168.1.101, 1500,插口,(socket),传输控制协议,TCP,端口,发送,TCP,报文段,TCP,TCP,接收缓存,发送缓存,报文段,报文段,报文段,端口,发送端,接收端,向发送缓存,写入数据块,从接收缓存,读取数据块,应用进程,应用进程,TCP,Header,Destination port,HLEN,Checksum,Option,(长 度 可 变),Source port,Sequence Number,Urgent pointer,window,Acknowledge number,Reserved,F,I,N,S,Y,N,R,S,T,P,S,H,A,C,K,U,R,G,BIT,0 8 16 24 31,Data(varies),TCP data,TCP header,TCP,报文段,IP data,IP header,发送在前,20byte,Source port / Destination port(,源端口,/,目的端口,):,各占,2,字节。端口是传输层与应用层的服务接口。传输层的复用和分用功能都要通过端口才能实现,Sequence number(,序号,):,4,字节。,TCP,连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。,Acknowledgement port(,确认号,):,4,字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。,HLEN(,数据偏移,):,4 bit,,它指出,TCP,报文段的数据起始处距离,TCP,报文段的起始处有多远。,“,数据偏移,”,的单位不是字节而是,32 bit,字(,4,字节为计算单位)。,Reserved(,保留,):,6 bit,,保留为今后使用,但目前应置为,0,。,6,位标志位,(code bit),:,URG(,紧急,):,当,URG,1,时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送,(,相当于高优先级的数据,),。,ACK(,确认,) :,只有当,ACK,1,时确认号字段才有效。当,ACK,0,时,确认号无效。,PSH (PuSH,传送,) :,接收,TCP,收到推送比特置,1,的报文段,就尽快地交付给接收应用进程,而不再等到整个缓存都填满了后再向上交付。,RST (ReSeT,复位,) :,当,RST,1,时,表明,TCP,连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。,SYN(,建立联机,):,同步比特,SYN,置为,1,,就表示这是一个连接请求或连接接受报文。,FIN (FINal,结束,) :,用来释放一个连接。当,FIN,1,时,表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。,Window(,窗口,),:,2,字节。窗口字段用来控制对方发送的数据量,单位为字节。,TCP,连接的一端根据设置的缓存空间大小确定自己的接收窗口大小,然后通知对方以确定对方的发送窗口的上限。,Checksum(,校验和,),:,2,字节。检验和字段检验的范围包括首部和数据这两部分。在计算检验和时,要在,TCP,报文段的前面加上,12,字节的伪首部。,Urgent pointer(,紧急指针,),:,16bit,。紧急指针指出在本报文段中的紧急数据的最后一个字节的序号。,Option,:,长度可变。,TCP,只规定了一种选项,即,最大报文段长度,MSS (Maximum Segment Size),。,MSS,告诉对方,TCP,:,“,我的缓存所能接收的报文段的数据字段的最大长度是,MSS,个字节。,”,MSS,是,TCP,报文段中的,数据字段,的最大长度。,数据字段加上,TCP,首部,才等于整个的,TCP,报文段。,Data(varies,填充,),:,这是为了使整个首部长度是,4,字节的整数倍。,TCP,的数据编号与确认,TCP,协议是面向字节的。,TCP,将所要传送的报文看成是字节组成的数据流,并使每一个字节对应于一个序号。,在连接建立时,双方要商定初始序号。,TCP,每次发送的报文段的首部中的序号字段数值表示该报文段中的,数据部分的第一个字节的序号,。,TCP,的确认是对接收到的数据的最高序号表示确认。接收端返回的确认号是已收到的数据的最高序号加,1,。因此确认号表示,接收端期望下次收到的数据中的第一个数据字节的序号,。,TCP,的流量控制与拥塞控制滑动窗口的概念,TCP,采用大小可变的滑动窗口进行流量控制。窗口大小的单位是,字节,。,在,TCP,报文段首部的窗口字段写入的数值就是当前给对方设置的发送窗口数值的上限。,发送窗口在连接建立时由双方商定。但在通信的过程中,接收端可根据自己的资源情况,随时动态地调整对方的发送窗口上限值,(,可增大或减小,),。,窗口和滑动窗口,Window(,窗口,),:,连接建立时,各端分配一块缓冲区来存储接受数据,并将缓冲区的尺寸发送给另一端,接收方发送的确认信息中包含了自己剩余的缓冲区尺寸。,剩余缓冲区空间的数量叫做窗口。,Sliding window(,滑动窗口,),:,用来解决系统间通讯的时候流量拥塞和控制,收到确认即可前移,100,200,300,400,500,600,700,800,900,101,201,301,401,501,601,701,801,1,发送窗口,可发送,不可发送,指针,发送端要发送,900,字节长的数据,划分为,9,个,100,字节长的报文段,而发送窗口确定为,500,字节。,发送端只要收到了对方的确认,发送窗口就可前移。,发送,TCP,要维护一个指针。每发送一个报文段,指针就向前移动一个报文段的距离。,收到确认即可前移,100,200,300,400,500,600,700,800,900,101,201,301,401,501,601,701,801,1,可发送,不可发送,指针,100,200,300,400,500,600,700,800,900,101,201,301,401,501,601,701,801,1,发送窗口,可发送,不可发送,指针,发送窗口前移,发送端已发送了,400,字节的数据,但只收到对前,200,字节数据的确认,同时窗口大小不变。,现在发送端还可发送,300,字节。,已发送,并被确认,已发送但,未被确认,100,200,300,400,500,600,700,800,900,101,201,301,401,501,601,701,801,1,已发送,并被确认,已发送但,未被确认,可发送,不可发送,指针,100,200,300,400,500,600,700,800,900,101,201,301,401,501,601,701,801,1,已发送,并被确认,可发送,不可,发送,指针,发送窗口前移,发送窗口缩小,发送端收到了对方对前,400,字节数据的确认,,但对方通知发送端必须把窗口减小到,400,字节。,现在发送端最多还可发送,400,字节的数据。,利用可变窗口大小进行流量控制双方确定的窗口值是,400,SEQ = 1,SEQ = 201,SEQ = 401,SEQ = 301,SEQ = 101,SEQ = 501,ACK = 201, WIN = 300,ACK = 601, WIN = 0,ACK = 501, WIN = 200,主机,A,主机,B,允许,A,再发送,300,字节(序号,201,至,500,),A,还能发送,200,字节,A,还能发送,200,字节(序号,301,至,500,),A,还能发送,300,字节,A,还能发送,100,字节(序号,401,至,500,),A,超时重发,但不能发送序号,500,以后的数据,允许,A,再发送,200,字节(序号,501,至,700,),A,还能发送,100,字节(序号,501,至,700,),不允许,A,再发送(到序号,600,的数据都已收到),SEQ = 201,丢失!,TCP,传输连接的三个阶段,TCP,连接的三个阶段:,连接建立,、,数据传送,和,连接释放,。传输连接的管理就是使传输输连接的建立和释放都能正常地进行。,连接建立过程中要解决以下三个问题:,要使每一方能够确知对方的存在。,要允许双方协商一些参数(如最大报文段长度,最大窗口大小,服务质量等)。,能够对运输实体资源(如缓存大小,连接表中的项目等)进行分配。,客户服务器方式,TCP,的连接和建立都是采用客户服务器方式。,主动发起连接建立的应用进程叫做,客户,(client),。,被动等待连接建立的应用进程叫做,服务器,(server),。,用三次握手建立,TCP,连接,SYN, SEQ = x,主机,B,SYN, ACK, SEQ = y, ACK= x,1,ACK, SEQ = x + 1, ACK = y,1,被动打开,主动打开,确认,确认,主机,A,连接请求,建立,TCP,连接,A,的,TCP,向,B,发出连接请求报文段,其首部中的同步比特,SYN,应置为,1,,并选择序号,x,,表明传送数据时的第一个数据字节的序号是,x,。,B,的,TCP,收到连接请求报文段后,如同意,则发回确认。,B,在确认报文段中应将,SYN,置为,1,,其确认号应为,x,1,,同时也为自己选择序号,y,。,A,收到此报文段后,向,B,给出确认,其确认号应为,y,1,。,A,的,TCP,通知上层应用进程,连接已经建立。,当运行服务器进程的主机,B,的,TCP,收到主机,A,的确认后,也通知其上层应用进程,连接已经建立。,TCP,连接释放的过程,FIN, SEQ = x,ACK, SEQ = y, ACK= x,1,ACK, SEQ = x + 1, ACK = y,1,应用进程,释放连接,A,不再发送报文,FIN, ACK, SEQ = y, ACK = x + 1,主机,B,主机,A,通知主机,应用进程,应用进程,释放连接,B,不再发送报文,确认,确认,从,A,到,B,的连接就释放了,连接处于,半关闭,状态。,相当于,A,向,B,说:,“,我已经没有数据要发送了。,但你如果还发送数据,我仍接收。,”,至此,整个连接已经全部释放。,SYN-SEND,ESTABLISED,ESTABLISED,SYN-RCVD,Closed,LISTEN,Client,Server,Fin-wait-1,Close-wait,Fin-wait-2,Last-ACK,Last-ACK,Wait-time,FIN,FIN,ACK,Data / ACK,ACK,SYN,SYN+ACK,三次握手,四次挥手,THE END,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


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

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


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