一、前言
最近之前时间正好在学习java知识,所以自个想找个小项目练练手,由于之前的ssm系统已经跑了也有大半年了,虽然稀烂,但是功能还是勉强做到了,所以这次准备重构ssm系统,改名为postCode系统(至于为什么前者叫ssm,可能是因为后端java用的是ssm框架吧),这次后端将不会开发两套,而是主要实现之前没有实现的单聊功能,由于搭建了多个服务,通信使用的是RabbitMQ,然后把着对消息通信的原理研究写下了这篇水文,后面会单独浅谈一些RabbitMQ。
二、TCP/IP模型
tcp/ip模型算是大学计算机学科中必学的一段知识,但长时间不接触,又都还给老师了。
tcp/ip模型是互联网的基础,它是一些列协议的总称,tcp/ip模型又可以划分为osi七层模型
应用层 | 应用层 | 文件传输、邮件传输 | ftp、smtp | |
表示层 | 数据格式化,代码转换,数据加密 | 没有协议 | ||
会话层 | 接触或者建立于别的接口联系 | 没有协议 | ||
传输层 | 传输层 | 提供端对端的接口 | TCP、UDP | |
网络层 | 网络层 | 为数据包选择路由 | IP、ICMP、RIP、OSPF | |
数据链路层 | 链路层 | 传输有地址的帧以及错误检查功能 | SLIP、CSLIP、PPP、ARP | |
物理层 | 以二进制数据形式在物理媒介上传输数据 | IS02110 |
2.1、UDP的特点
无连接
可以单播,多播,广播
不可靠性
2.2、TCP的特点
TCP提供全双工通信(重点重点)
三、Socket编程
什么是Socket
最后可以简单的理解为socket对tcp/ip封装后向应用层提供一些更加方便传输数据的接口。
四、WebSocket
不同网络通信协议的对应关系
4.1、ScokJS/Socket.IO
ScokJS
Socket.IO
4.2、STOMP/vue-socket
STOMP
vue-socket