网络协议

OSI 网络七层模型

物理层: 使原始的数据比特流能在物理介质上传输
数据链路层: 封装成帧、透明传输、差错检测。
网络层: 路由选择、流量控制(IP 协议)

传输层: 提供可靠的端口到端口的数据传输服务(TCP/UDP 协议)

会话层: 建立、管理、终止进程之间的会话和数据交换
表示层: 数据格式转换,加密解密,压缩解压等
应用层: 为用户的应用进程提供网络服务

TCP 协议

TCP 提供面向连接、可靠、有序、字节流传输服务。
应用程序在使用 TCP 之前,必须先建立 TCP 连接。

TCO 三次握手

在正式发送数据之前,做的检验机制
通过以后就成功建立了 TCP 连接,然后开始传输数据

TCP 四次挥手

在断开连接之前,做的确认机制

TCP 三次握手和四次挥手,都是为了让连接的可靠性更高

UDP 协议

UDP 提供无连接、不可靠、数据报尽力传输服务。

比如语言视频聊天, 日志上报等, 会用到

Http 协议

一个 http 请求包含四个部分

  1. 请求行: 请求类型,资源路径,以及 http 版本
  2. 请求头部: 用来说明服务器要使用的附加信息
  3. 空行: 请求头和数据主体之间必须有换行,作为分隔标记
  4. 主体: 即请求数据

一个 http 响应数据包含

  1. 状态行: HTTP 版本、状态码、状态消息
  2. 响应报头部: 用来说明服务器要使用的附加信息
  3. 空行: 头部和数据之间的换行
  4. 响应正文: 即响应数据

HTTP 协议响应状态码

  • 1XX: 临时响应
    握手成功,TCP 建立
  • 2XX: 成功
    表示已成功处理了请求
  • 3XX: 重定向
    表示要完成请求,需要进一步操作
  • 4XX: 请求错误
    请求可能出错
  • 5XX: 服务器错误
    服务器内部出错

WebSocket 协议

WebSocket 是基于 TCP 的一种新的网络协议
它实现了服务器和客户端全双工通信

支持多客服端,多语言,多服务器