今天我们继续介绍关于TCP异常情况的内容。本篇文章接着上一篇文章,前面分析了在连接过程中的各种异常,本篇文章重点介绍的是在数据传输过程中的各种异常,以及出现异常后的TCP连接的情况。为了便于大家理解本文,这里我们将上一篇文章的前半部分内容拷贝到这里,这部分内容主要介绍协议的内容。
下图是网络通信中常见的架构,也就是CS架构。其中程序包括两部分,分别为客户端(Client)和服务端(Server)。当然,实际的环境还要复杂的多,在客户端和服务端之间可能有多种不同种类和数量的设备,这些设备都会增加网络通信的复杂性。自然,也会增加程序开发容错的复杂性。
![991ccd9610a528414c51a6e4e9ed3540.png](https://i-blog.csdnimg.cn/blog_migrate/684e3f5585d3358c77e817c3a01dd9c2.jpeg)
图1 基本架构
TCP的基本流程
在分析异常情况之前,我们先回忆一下TCP协议的基本逻辑。在客户端和服务端能够收发数据之前首先必需建立连接。连接的建立在协议层面也是通过收发数据包完成,只不过在用户层面就是客户端调用了一个connect函数。连接的过程俗称“三次握手”,具体流程如图2所示。