现代数字通信技术让我们的生活发生了彻底地改变,而通信协议无疑是这一改变的始作俑者。
硬件有自己的通信协议,比如pci总线、usb总线、i2c总线等等。
软件也有自己的协议栈,无线的3gpp、gprs,有线的tcp/ip协议栈、atm协议等等。
基于物理层的协议,很大程度是由芯片完成的,但是涉及到交换路由、数据传输、业务处理,则很大程度上是由软件负责的。
协议栈看上去复杂,但是它所使用的技术都是一些基本技术,熟悉这些常用的技术和方法有利于我们在后面的开发中能够高效的利用这些协议。那么,今天我们就要看看,实现协议栈需要怎样的一些基本技术。
(1)状态机
状态机是协议栈使用最多的一种方法。当协议处于不同的状态的时候,就会对不同的报文内容作出不同的处理方法。
(2)定时器
计时器也是协议栈经常使用的方法。通常协议本身在某段时间内需要收到对端发送的响应报文,如果没有收到报文我们就认为通信失败。因此,我们完全可以通过设定定时器的方法,在一段时间之后判断当前的报文有没有发送成功。
(3)重发机制
因为网络的链路状态是十分复杂的,所以不同的协议对报文的响应时间是不同的。只要协议本身允许,一段时间内的重发都是可以的。
(4)校验和