系统学习TCP/IP协议(一)------有用的策略和模式

来源:互联网 发布:centos yum安装ant 编辑:程序博客网 时间:2024/06/03 12:29

协议实际上就是一种解决某些问题的策略和模式,在经典的TCP/IP协议中就有很多策略和模式值得学习。归纳起来有以下一些(随着学习深入逐步添加):

  • 分层
  • 封装和分用
  • 可靠连接

分层

分层是TCP/IP乃至网络通信最核心的策略和模式,分层使得所有的网络应用程序不用关心底层链路传输的细节,也使得不同类型的网络有效地互通。这是一种典型的化繁为简,把复杂的事情分解到不同层面的策略,层与层之间是服务与被服务的关系,每层只需关注所在维度的事情。例如,通过网络层IP协议的抽象和处理,把不同类型的网络互连起来,并且这些底层传输的差异对于上层(运输层和应用层)是透明的,这给上层应用程序的开发带来了极大的方便,示意图如下所示:

封装和分用

为了实现和支持上面说的分层策略,TCP/IP在数据包设计上采用封装和分用的策略,所谓封装就是在应用程序在发送数据的过程中,每一层都增加一些首部信息,这些信息用于和接收端同层次进行沟通,例如当数据从应用程序发送到以太网过程中数据逐层加工的示意图如下所示:

而在接收端的处理过程就正好相反,也就是所谓的分用策略,数据从底层到最上层的应用程序过程中,数据被逐层拆分,每一层取出自己所需要的信息。如下图所示:

可靠连接

TCP采用三次握手的方式确保在可能丢包的情况下建立连接,通过连接双方的相互确认,以此达成连接协议。此外,通过非常细化的状态流转来对连接双方进行容错处理。这些设计细节对多系统交互设计有很大的借鉴作用