网络基础简析
1、OSI七层网络模型概念(从上往下):
上三(点点通信):
应用层:对接系统与应用。应用服务。
表示层:解释命令与数据。编解码、解压缩。
会话层:会话管理。数据发送接收、通道建立。
中一(桥梁):
传输层:通信服务(数据段)。TCP、UDP协议。
下三(数据处理):
网络层:寻址服务(数据包)。路由、IP协议。
数据链路层:数据通道(帧)。网卡、交换机。
物理层:网络传输的物理媒介(比特)。主板集线器、中继器。
2、基础:
端口号的范围为0-65535,其中0-1023未系统的保留端口。
IP地址+端口号=Socket,Socket:网络运行程序间双向通信链路的终结点 / 是TCP和UDP的基础。
常用协议使用的端口:HTTP:80(网络通信协议)
FTP:21(数据传输协议)
TELNET:23(远程连接协议)
3、TCP连接(传输控制协议):
三次握手(请求连接时共发送三个包确认连接):
0、客户端向服务端发送
client标志位(标识此次请求)、
client随机位(连接状态), 等待。
1、服务端向客户端发送
client标志位(标识哪次请求)、
server标志位(标识此次响应)、
收到确认【client随机位+1】、
server随机位(连接状态), 等待。
2、客户端检查 server标志位(标识哪次响应)、client随机位+1(哪次请求做出的响应)是否正确
向服务端发送
收到确认【server随机位+1】, 等待。
3、服务端检查 server标志位(标识哪次响应)、响应状态【server随机位+1】, 建立连接。
四次握手(断开连接时共发送四个包确认断开):
0、客户端发送关闭请求 client标志位(标识此次请求),等待。
1、服务端发送 收到确认【client随机位+1】、server随机位(连接状态), 等待(此等待阶段可将现有数据发送完毕再做出关闭响应)。
2、服务端发送 server标志位(标识此次响应),等待关闭。
3、客户端发送 收到确认【server随机位+1】、 client标志位(标识此次关闭动作) ,关闭client-server发送通道。
4、服务端关闭server-client发送通道。
也可同时发起关闭请求:
4、UDP(用户数据协议- 数据包约定):
tcp为流模式,udp为数据报模式。
适用于安全要求低、响应速度要求高;不保证数据的顺序与完整性;结构较为简单。
tcp:短信、文字、文件 udp:视频、语音
5、Socket编程:
BIO: Blocking IO 同步阻塞式 。占用线程,线程阻塞时请求进入等待或被拒绝。
NIO: Unblocking IO 同步非阻塞式 。建立连接后对线程的请求采用多路复用轮训方式,有效请求时开启线程(开启线程时类似jdbc连接等待过程中依然会造成线程占用)
AIO: Asynchronous IO 异步非阻塞式 。读写操作时只需调用read/write方法即可。读写均为异步,且具有缓冲区。