Java网络编程基础
基本原理
将数据从一台计算机传输到另一台计算机,通过7层网络模型实现,编程主要关注上三层的内容——应用层协议、传输层协议和网络IO。应用层协议比较多,如下图所示;传输协议主要是TCP、UDP等都是基于socket进行扩展的;网络IO主要有BIO/NIO/AIO三种。所有通信基本都是如此,只是具体实现可能不同。
常用应用层协议:
应用层协议主要关注问题:
- 传输的标准格式是什么?
- 怎么样将请求转化为传输的流?
- 怎么接收和处理流?
- 传输协议是?
网络IO对比:
- 通信协议(Socket/tcp/http/udp/rmi/xml-rpc etc.)、
- 消息机制、
- 网络IO(BIO/NIO/AIO)、
- MultiThread、
- 本地调用与远程调用的透明化方案(涉及Java Classloader、Dynamic Proxy、Unit Test etc.)、
- 异步与同步调用、
- 网络通信处理机制(自动重连、广播、异常、池处理等等)、
- Java Serialization (各种协议的私有序列化机制等)、
- 各种框架的实现原理(传输格式、如何将传输格式转化为流的、如何将请求信息转化为传输格式的、如何接收流的、如何将流还原为传输格式的等等)
参考文章:http://www.codeceo.com/article/java-remoted-communication.html