swoole框架和其所涉及的协议

  1. 网络知识基础

OSI协议 :应用层、表示层、会话层、传输层、网络层、数据链路层、物理层
2. tcp通信

TCP通信过程包括三个步骤:建立TCP连接通道,传输数据,断开TCP连接通道(三次握手、四次挥手)。

三次挥手:第一次握手:客户端发送syn包(seq=x)到服务器,并进入SYN_SEND状态,等待服务器确认;
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(seq=y),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。握手过程中
传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。

四次挥手: 第一次挥手:主动关闭方发送一个FIN,用来关闭主动方到被动关闭方的数据传送,也就是主动关闭方告诉被动关闭方:我已经不会再给你发数据了(当 然,在fin包之前发送
出去的数据,如果没有收到对应的ack确认报文,主动关闭方依然会重发这些数据),但此时主动关闭方还可以接受数据。
第二次挥手:被动关闭方收到FIN包后,发送一个ACK给对方,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号)。
第三次挥手:被动关闭方发送一个FIN,用来关闭被动关闭方到主动关闭方的数据传送,也就是告诉主动关闭方,我的数据也发送完了,不会再给你发数据了。
第四次挥手:主动关闭方收到FIN后,发送一个ACK给被动关闭方,确认序号为收到序号+1,至此,完成四次挥手。
3. Http相关

     HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。
     HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)
    请求:客户端发送一个HTTP请求到服务器的请求消息包括以下格式:  请求行(request line)、请求头部(header)、空行和请求数据四个部分组成
            HTTP响应也由四个部分组成,分别是:状态行、消息报头、空行和响应正文
  1. socket相关

    Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口
    
  2. Swoole

    HP的swoole扩展,正如作者所说,是PHP的异步、并行、高性能网络通信引擎,使用纯C语言编写,提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步
    MySQL,异步Redis,数据库连接池,AsyncTask,消息队列,毫秒定时器,异步文件读写,异步DNS查询。 Swoole内置了Http/WebSocket服务器端/客户端、Http2.0服务器端

原文地址:https://www.cnblogs.com/chaihtml/p/10774338.html