很多人总觉得学习TCP/IP协议没什么用,觉得日常编程开发只需要知道socket介面怎么用就可以了。如果大家定位过线上问题就会知道,实际上并非如此。如果应用在区域网内,且设备一切正常的情况下可能确实如此,但如果一旦出现诸如中间交换机不稳定、物理伺服器宕机或者其它异常情况时,此时引起的问题如果只停留在套接字介面的理解层面将无法解决。因此,深入理解TCP/IP协议,对我们分析异常问题有很大的帮助。
下图是网路通信中常见的架构,也就是CS架构。其中程序包括两部分,分别为客户端(Client)和服务端(Server)。当然,实际的环境还要复杂的多,在客户端和服务端之间可能有多种不同种类和数量的设备,这些设备都会增加网路通信的复杂性。自然,也会增加程序开发容错的复杂性。