【源码+文档】网络库之Java

ENet 特性

ENet 是一个具有 TCP 和 UDP 各自优点的基于 UDP 封装的一个网络库。

UDP 缺少排序,连接管理,带宽管理,包大小限制等。TCP 不能同时打开多个套接字故缺少多流的通信,并且由于其缓冲特性,其包管理机制过于复杂。

ENet 则致力于将 TCP 和 UDP 的优点结合实现一个统一的网络协议库。

连接管理 (Connection Management)

ENet 提供了一个简单的与外部主机通信的接口。连接的生命周期通过频繁的 ping 外部主机动态监管,同时通过主机与外部机器的包的往返时间和丢包情况来监管网络状况。

排序 (Sequencing)

ENet 提供了多个的合理排序的网络包流而不是一个单一的比特流从而简化了不同类型数据的传输。

ENet 通过为每个发送的网络包编号来实现对包的排序。这些序号会随着包的发送而增长。ENet 保证序列号低的包优先发送,从而确保了所有的网络包都按次序发送。

对于不可靠的网络包,如果具有高序号的网络包已经到达,ENet 则会简单的丢弃那些低序号的网络包。这样就保证了网络包到达后就可以立即被接收,从而减少了网络延时。对于可靠的网络包,如果一个高序号的包已经到达,但是之前的包确没有到达,ENet 会推迟高序号包的接受直到其之前相应序号的网络包均已到达。

通道 (Channels)

既然 ENet 会推迟可靠网络包的提交来确保网络包的序号,但是无论到达的包是可靠的还是不可靠的,如果之前的网络包是可靠的包,他们都要被推迟提交࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值