1.IO与NIO
- IO面向流,故而需要等待流的所有数据都读取,所以是阻塞的。
- NIO面向缓冲,可单线程管理多个连接,所以是非阻塞的。
- 当然在实际使用上,NIO并不是直接从inputStream中或者inReader中读取就可以了,而是要先读到缓冲中去。
2.协议相关梳理
常规四层模型
graph LR
应用层,用户进程-->传输层,tcp,udp
传输层,tcp,udp-->网络层,ip网络层协议
网络层,ip网络层协议-->链路层,硬件接口
socket接口形式模型
graph LR
应用层,用户进程-->socket接口
socket接口-->网络层,ip网络层协议
socket接口-->传输层,tcp,udp
传输层,tcp,udp-->网络层,ip网络层协议
网络层,ip网络层协议-->链路层,硬件接口
tcp协议与udp协议比较
tcp协议,类似电话 | udp协议,类似短信 |
---|---|
面向连接 | 面向非连接 |
传输可靠,保证数据正确性 | 传输不可靠,不保证数据正确性 |
有序 | 无序 |
传输大量数据(流模式) | 传输少量数据(数据报模式) |
速度快,对系统资源要求多 | 速度慢,对系统资源要求少 |
点对点p2p | 一对多,多对一,多对多,一对一 |
首部开销20字节 | 首部开销8字节 |
webSocket是应用层协议
socket是一组抽象接口