前言
流控制传输协议(Stream Control Transmission Protocol,SCTP)是一种在网络连接两端同时传输多个数据流的协议。SCTP和TCP类似,都是通过确认机制实现数据传输的安全性。二者最大的区别是,SCTP是多宿主(Multi-homing)连接,TCP是单地址连接。使用SCTP可以避免网络拥堵。本节将介绍使用SCTP发现探测主机的活动状态。
SCTP的工作流程如
(1)客户端发送一个INIT消息给服务器。服务器收到这个INIT消息后,准备好建立本次连接所需要的相关信息,并将这些信息放在一个叫State Cookie的数据块中。
(2)服务器给客户端发送一个INIT_ACK的消息,INIT_ACK中包含这个State Cookie数据块,同时服务器会把和本次连接相关的所有资源释放掉,不维护任何资源和状态。
(3)客户端收到INIT_ACK报文后会把里面的State Cookie信息取出来重新封装一个COOKIE_ECHO发给服务器。
(4)服务器收到COOKIE_ECHO消息后,再次取出其中的State Cookie。然后根据State Cookie存储的信息建立本次连接,并向客户端发送COOKIE_ACK消息。