This application discloses a network communication method and system. The above network communication method includes: determining the data forwarding rules in the Docker container; forwarding the data packets received through the first port to the application deployed in the Docker container according to the data forwarding rules; or forwarding the data packets sent by the application deployed in the Docker container to the external device through the first port; A pair of first ports of the Docker container are mapped to the port of the host. This application can reduce the port management complexity of Docker container and improve data transmission efficiency.
【技术实现步骤摘要】
一种网络通信方法及系统
本申请涉及但不限于通信
,尤指一种网络通信方法及系统。
技术介绍
微服务架构已经成为软件系统开发和部署的主流模式之一。在微服务应用场景下,通常采用Docker容器部署服务,以便实现服务的快速部署和实例的动态伸缩。Docker是一个开源的应用容器引擎,允许开发者打包应用到容器中。在一般场景下,通常由Kubernetes来实现容器集群的管理和调度,同时结合Flannel等网络插件来实现Docker容器之间的网络互联互通。然而,在很多面向中小企业的应用场景中,应用的服务功能相对比较单一,整体容量要求不高,这时如果再通过Kubernetes和Flannel来做Docker容器的集群管理和网络互联互通,在加大系统整体工作负载的同时,也会使得整个系统变得比较复杂,进一步增大了整个系统运维管理的难度和成本。因此,在这种应用场景下,通常只使用Docker基础服务来部署应用微服务,并利用Docker基础服务所提供的容器管理接口来实施容器的管理。Docker容器网络通常使用桥接(bridge)模式来构建。当Docker容器需要对外暴露服务的端口时,在Docker容器启动时采用端口映射的方式将Docker容器内的端口映射到主机端口上暴露出去。这种端口映射的实现机理是通过在iptables(IP信息包过滤系统)中增加规则链来实现的。然而,在Docker容器内需要多端口暴露的情况下,特别是一些数据传输的场景下,比如视频会议、视频分析、媒体服务器等应用,数据基于UDP(UserDatagramProtocol,用户数据报协议)传输,通常一路数据就需要暴露 ...
【技术保护点】
1.一种网络通信方法,包括:确定Docker容器内的数据转发规则;其中,所述Docker容器的一对第一端口映射到所在主机的端口上;根据所述数据转发规则,将通过所述第一端口接收的数据包转发给所述Docker容器内部署的应用,或者,将所述Docker容器内部署的应用发送的数据包通过所述第一端口转发给外部设备。
【技术特征摘要】
1.一种网络通信方法,包括:确定Docker容器内的数据转发规则;其中,所述Docker容器的一对第一端口映射到所在主机的端口上;根据所述数据转发规则,将通过所述第一端口接收的数据包转发给所述Docker容器内部署的应用,或者,将所述Docker容器内部署的应用发送的数据包通过所述第一端口转发给外部设备。2.根据权利要求1所述的方法,其特征在于,所述数据转发规则用于记录每路数据的数据源和数据目的地的信息,其中,所述数据源或所述数据目的地为所述Docker容器内部署的应用。3.根据权利要求2所述的方法,其特征在于,所述数据源的信息包括:源地址以及源端口;所述数据目的地的信息包括:目的地址以及目的端口,其中,所述源端口或目的端口为所述Docker容器内部署的应用绑定的端口。4.根据权利要求3所述的方法,其特征在于,所述根据所述数据转发规则,将通过所述第一端口接收的数据包转发给所述Docker容器内部署的应用,包括:通过查询所述数据转发规则,确定从所述第一端口接收到的数据包携带的源地址和源端口所对应的目的端口;将所述数据包转发给所述Docker容器内绑定所述目的端口的应用。5.根据权利要求3所述的方法,其特征在于,所述根据所述数据转发规则,将所述Docker容器内部署的应用发送的数据包通过所述第一端口转发给外部设备,包括:通过查询所述数据转发规则,确定所述Docker容器内发送所述数据包的应用所绑定的端口对应的外部设备的网络协议IP地址和端口;通过所述第一端口将所述数据包转发至所述外部设备。6.根据权利要求1所述的方法,其特征在于,所述方法还包括:获取每路数据的通信链路信息;其中,所述确定Docker容器内的数据转发规则,包括:根据每路数据的通信链路信息,确定所述Docker容器内的数据转发规则。7.根据权利要求6所述的方法,其特征在于,所述Docker容器的一个第二端口映射到所述主机的端口上;所述获取每路数据的通信链路信息,包括:通过所述第二端口与所述外部设备进行信令交互,确定待通过所述第一端口接收的任一路数据的源地址和源端口;从待接收该路数据的应用获取所述应用绑定的Docker容器地址和端口;根据该路数据的源地址、源端口、所述应用所绑定的Docker容器地址和端口,确定该路数据的通信链路信息;或者,通过所述第二端口接收所述外部设备发送的请求消息,从所述请求消息中解析出待通过所述第一端口发送的任一路数据的目的地址和目的端口、待发送该路数据的应用;从所述待发送该路数据的应用获取所述应用绑定的Docker容器地址和端口;根据该路数据的目的地址...
【专利技术属性】
技术研发人员:刘勇,
申请(专利权)人:中兴通讯股份有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。