private void transfer(byte[] packet, int len, OutputStream output) {
			if (len < IpHeader.MIN_HEADER_LENGTH) {
				NetBareLog.w("Ip header length < " + IpHeader.MIN_HEADER_LENGTH);
				return;
			}
			IpHeader ipHeader = new IpHeader(packet, 0);
			Protocol protocol = Protocol.parse(ipHeader.getProtocol());
			ProxyServerForwarder forwarder = mForwarderRegistry.get(protocol);
			if (forwarder != null) {
				forwarder.forward(packet, len, output);
			} else {
				NetBareLog.w("Unknown ip protocol: " + ipHeader.getProtocol());
			}
		}
A work thread running NetBare core logic. NetBase established the VPN connection is this thread
and read packets from the VPN file descriptor and transfer them to local proxy servers. Every
IP protocol runs an independent local proxy server to receive the packets.

@author Megatron King
@since 2018-10-08 19:38
netbare-core/src/main/java/com/github/megatronking/netbare/NetBareThread.java