多通道协议与应用层网关
介绍
有这样一种网络协议,在TCP三次握手后,协议双方会“私下”协商一个或多个通道,用于传输信令或数据。比如FTP协议会协商数据传输通道, FTP客户端向服务器首先向服务器发起控制连接,当需要传输数据时,客户端主动通知其IP地址和开放的端口号,FTP服务器发起数据连接(分主动和被动模式),注意此时是建立了两个TCP连接。协商是发生在应用层上,下层感知不到。如下图FTP 通过PORT命令协商端口:
这种传输模式在局域网或私网中不会有什么问题,但是一旦跨越不同网络,穿越防火墙,问题就来了:如果传输双方不再同一个可路由的网络中,中间有NAT设备,FTP客户端与服务器首先建立FTP控制连接,此时经过了NAT转换;当需要传输数据时,客户端PORT其IP地址和端口号,如图1 PORT命令是封装在FTP载荷中的,NAT设备根本感知不到,也不做任何改动。服务器收到PORT命令后,无法向客户端发起数据连接。
类似的协议还有H.323,H.323协议用于包交换网络上的实时多媒体会议。H.323包含H.225和H.245协议。H.225用于呼叫控制,H.245用户媒体信道控制。H.245在呼叫建