zoukankan      html  css  js  c++  java
  • 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服务器端

  • 相关阅读:
    动态修改类注解(赋值)
    Javassist字节码增强示例
    修改原有的方法名称(字节码增强)
    mock测试之powermock
    SpringMVC防止表单重复提交
    Node.js中的异步I/O是如何进行的?
    移动端三个视口
    javascript 正则(将数字转化为三位分隔的样式)
    Struts2中数据封装方式
    Struts2配置文件
  • 原文地址:https://www.cnblogs.com/chaihtml/p/10774338.html
Copyright © 2011-2022 走看看