- 网络通信时传输数据的组织形式就是协议。数据遵循协议才可以被传输和解析
- 网络通信就是数据 打包-传输-拆包 的过程,这个过程遵循 TCP 协议,该协议是网络通信中最重要、最基本的协议,是互联网的基础
- TCP/IP 协议( Transmission Control Protocol / Internet Protocol,传输控制协议/网际协议),又叫网络通信协议
- 下图为网络协议模型,其中 TCP/IP 模型是被简化的 OSI 模型,也是目前常用的模型
网络通信时,首先由 IP 协议在复杂的物理网络中寻找对方的地址并确定一条合适的传输路径;然后由 TCP 协议建立连接并传输信息,为了保证信息传输的可靠与方便,TCP 协议会对信息进行切分,为每个包标注大小和顺序,并有确认机制;Http 协议声明要请求的路径和返回数据的信息长度、信息类型(图片、文字、音频等)等,利用 TCP 协议进行数据传输以完成请求和响应
TCP 传输控制协议
- 传输前,采用三次握手的方式建立连接。三次握手成功后客户端认为服务端可以接收到我们将要传输的数据;可靠、可进行大数据量的传输
- 传输完毕后需释放已建立的连接,效率较低;当前连接不释放,其他连接就无法访问当前端口
- 每有一个 Http 请求到达服务端时,都会建立一个 TCP 连接,那不是和上述结论冲突了吗?答案是对的,但服务端程序通过 Socket 解决了这个 TCP 协议只能一对一的问题,底层是怎么做的目前还不了解
UDP 用户数据协议
- 将数据、源、目的封装为数据包,不需要建立连接;不可靠、每个数据包的大小限制为 64K
- 发送数据结束时无需释放资源,效率较高
- 生活例子:我们发短信给一个电话号码,发完就算工作做完。我甚至不知道这个电话号是不是已经注销了,也不知道是否接收到了这条短信