1 / 5
文档名称:

【个人总结系列-31】TCP会话原理及TCP状态学习总结.docx

格式:docx   页数:5页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

【个人总结系列-31】TCP会话原理及TCP状态学习总结.docx

上传人:分享精品 2016/2/29 文件大小:0 KB

下载得到文件列表

【个人总结系列-31】TCP会话原理及TCP状态学习总结.docx

相关文档

文档介绍

文档介绍:,数据在网络上应用TCP/IP协议进行传输的时候,需要将数据分成多个数据包。目前在网络安全领域都将用到TCP会话的重组问题。只有将数据包重组以后,才能还原一次完整的TCP会话。由于网络问题,数据包可能会经过不同的路由传输到目的地,并且到达目的地的数据包可能顺序会发生改变。在传输过程中,协议对数据的传输进行控制,对在传输过程中丢失的数据包协议将控制系统将丢失的数据包重新传送。这些都是TCP会话在重组的时候将遇到的问题。TCP是一种面向连接的协议,客户与服务器之间的任何一次会话都必须建立连接,退出会话时必须断开连接。连接的时候需要3个报文,称为TCP的三次握手;断开的时候需要4个报文,称为TCP的四次挥手。首先介绍TCP建立连接的过程,一次TCP会话建立的时候需要3个报文交换,即需要3次握手(如下图所示)。其SEQ和ACK的关系如下:(1)客户发送一个SYN段,SYN=1表示发起一个连接,生成随机SEQ。(2)对方收到后将SEQ+1置于ACK发回给本机。表示对前者的确认,生成随机SEQ发回本机。(3)本机收到后将SEQ+1置于ACK发回给对方,将对方ACK置于SEQ。图3-1TCP三次握手过程TCP数据传输的过程为:当双方建立TCP连接以后,就可以传输数据了,传输过程中发送方每发送一个数据包,接收方都要给予一个应答。数据包的先后关系可以由TCP首部的序号和确认序号确定。双方序号的及确认序号之间的关系为:设发送方发送的数据包长度为N,序号为SEQ,确认序号ACK,则下一个将要发送的数据包的序号为SEQ+N;接收方应答的数据包序号为ACK,确认序号为SEQ+N,表示对序号SEQ长度为N的数据包的确认。建立一个连接需要3次握手,而终止一个连接要经过4次挥手(如下图所示)。这是因为一个TCP连接是全双工(即数据在两个方向上能同时传递),每个方向必须单独地进行关闭。四次挥手实际上就是双方单独关闭的过程。图3-2TCP四次挥手过程在TCP传输过程中,SYN和ACK标志着TCP的各种状态,而SEQ则标志了各数据包的顺序。在TCP建立连接的以后,会为后续TCP数据的传输设定一个初始的序列号,以后每传送一个包含有效数据的TCP包,后续紧接着传送的一个TCP数据包的序列号都要做出相应的修改。在TCP连接中发送的字节都有一个序列号,因为编了号,所以可以确认它们的收到。对序列号的确认是累积性的。TCP必须进行的序列号比较操作种类包括以下几种:①决定一些发送了的但未确认的序列号②决定所有的序列号都已经收到了③决定下一个段中应该包括的序列号序列号是为了保证TCP数据包的按顺序传输来设计的,可以有效的实现TCP数据的完整传输,特别是在数据传送过程中出现错误的时候可以有效的进行错误修正。在TCP会话的重新组合过程中我们需要按照数据包的序列号对接收到的数据包进行排序。一台主机即将发出的报文中的SEQ值应等于它所刚收到的报文中的ACK值,而它所要发送报文中的ACK值应为它所收到报文中的SEQ值加上该报文中所发送的TCP数据的长度,即两者存在如下关系:(1)本次发送的SEQ=上次收到的ACK;(2)本次发送的ACK=上次收到的SEQ+本次发送的TCP数据长度;表1TCP序列号与数据包长度的关系项目数