#1、TCP、UDP、IP CP/IP协议栈主要分为四层:应用层、传输层、网络层、数据链路层,每层都有相应的协议,以下图: java
TCP协议是面向链接、保证高可靠性(数据无丢失、数据无失序、数据无错误、数据无重复到达)传输层协议。网络
UDP协议也是传输层协议,它是无链接,不保证可靠的传输层协议。socket
#2、NIO Java NIO和IO之间的主要差异:线程
IO NIO 面向流 面向缓冲 阻塞IO 非阻塞IO 无 选择器
Java NIO: Channels and Buffers(通道和缓冲区)code
标准的IO基于字节流和字符流进行操做的,而NIO是基于通道(Channel)和缓冲区(Buffer)进行操做,数据老是从通道读取到缓冲区中,或者从缓冲区写入到通道中。server
Java NIO: Non-blocking IO(非阻塞IO)事件
Java NIO能够让你非阻塞的使用IO,例如:当线程从通道读取数据到缓冲区时,线程仍是能够进行其余事情。当数据被写入到缓冲区时,线程能够继续处理它。从缓冲区写入通道也相似。图片
Java NIO: Selectors(选择器)ip
Java NIO引入了选择器的概念,选择器用于监听多个通道的事件(好比:链接打开,数据到达)。所以,单个的线程能够监听多个数据通道。get
Java NIO系列文章: