资源描述
内页一级标题,二级标题,单击此处编辑母版文本样式,内页一级标题,二级标题,单击此处编辑母版文本样式,TCP,三次握手分析,部门:中试部,日期:2023年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 收到连接恳求报文段后,犹如意,则发回
展开阅读全文