OSI七层模型
应用层
表示层
会话层
传输层
网络层
数据链路层
物理层
TCP/IP协议簇
应用层:HTTP FTP SNMP NFS SMTP TELNET
传输层:TCP UDP
网络层:IP ICMP IGMP ARP RARP
网络接口层:LAN MAN WAN
HTTP
特点:
无连接:一次请求/响应后,客户端与服务器断开
无状态:前后两次请求/响应,Web服务器不能保存状态
遵循响应/请求模型:客户端向服务器发送请求,服务器被动响应,并通过无数次响应来为客户端提供服务
网络编程
Socket:对协议的封装(Socket是一个调用接口,通过Socket才能使用TCP/IP协议)
网络编程五要素:
在同一个网络
两边都要有IP地址
两边端口号不同(0~1024系统有用途,不能用)
两台主机之间存在协议
先有服务器再有客户端
网络编程模型
AIO(异步非阻塞)模型:复杂,在NIO基础上实现异步请求操作
NIO(同步非阻塞)模型:非常复杂,多用复路器轮询使用一个线程来处理连接接收消息请求
BIO(同步阻塞)模型:性能差,适用于连接数少,性能需求低的场景
Java网络编程框架
流行框架:Netty,MINA,Grizzly,NIO FrameWork,QuickServer,IOSocket,xSocket,XNIO
Netty:NIO模型构建的开源异步事件驱动的网络编程框架,简单,性能强悍,功能强大
Netty
Channel(通道):网络操作抽象,代表一个网络连接
ChannelHandle(通道处理器):用于处理网络事件的接口(接收通道消息)
ChannelPipeline(通道流水线):处理器链包含一系列ChannelHandle(通道处理器),数据和事件在ChannelPipeline中按顺序被多个ChannelHandle处理