1 .引言
TCP/IP 协议现在已经广泛的被应用。数据在网络上应用 TCP/IP 协议进行传输的时候,需要将数据分成多个数据包。目前在网络安全领域都将用到 TCP 会话的重组问题。只有将数据包重组以后,才能还原一次完整的 TCP 会话。由于网络问题,数据包可能会经过不同的路由传输到目的地,并且到达目的地的数据包可能顺序会发生改变。在传输过程中,协 议对数据的传输进行控制,对在传输过程中丢失的数据包协议将控制系统将丢失的数据包重 新
传送。这些都是 TCP 会话在重组的时候将遇到的问题。本文经过对 TCP/IP 协议的分析, 解决了 TCP 会话还原过程的常见问题,并且给出了一个 TCP 会话重组的方法。
2 . TCP 会话
TCP 是一种面向连接的协议,客户与服务器之间的任何一次会话都必须建立连接 [1] , 退出会话时必须断开连接。连接的时候需要 3 个报文,断开的时候需要 4 个报文。
2.1 TCP 建立连接
一次 TCP 会话建立的时候需要 3 个报文交换,即需要 3 次握手(如图 1 )。其 SEQ 和ACK 的关系如下:
( 1 )客户发送一个 SYN 段, SYN=1 表示发起一个连接,生成随机 SEQ 。
( 2 )对方收到后将 SEQ+1 置于 ACK 发回给本机。表示对前者的确认,生成随机 SE Q发回本机。
( 3 )本机收到后将 SEQ+1 置于 ACK 发回给对方,将对方 ACK 置于 SEQ 。