问答题 解释为什么重置释放TCP连接可能会丢失用户数据,而使用TCP的妥善释放连接方法就可保证不丢失数据。
【正确答案】
【答案解析】重置释放TCP连接可能会丢失用户数据,这是因为应用程序已经交给传输实体的数据可能有一部分没有发送完,仍然在缓冲区中等待;已经被传输实体发送出去的数据可能有一部分还在网络中传送,没有到达接收方;已经到达接收方传输实体的数据也可能仍然存在于其缓冲区中,尚未能够递交给应用进程。显然,在这样的情况下,突然的非正常中止,突然释放供连接使用的所有相关资源,就可能会丢失用户数据。因为TCP连接的妥善释放在通信的两个方向上分别进行,让双方把需要发送的数据都发送完再启动释放过程;而且,在任一方向上,发出释放请求的一方必须在得到对方的确认后才能完成在该方向上的释放。因此,使用TCP的妥善释放连接方法就可保证不丢失数据。