swoole——名词理解,协议分层

天大地大妈咪最大 提交于 2019-12-16 03:53:23
最近开始了解swoole,一些名词有点懵,整理了一下
  • 客户端 :需要服务的一方,谁需要服务谁就是客户端
  • 服务端 :提供服务的一方,谁提佛那个服务谁就是服务端
  • 同步:程序从而下顺序执行,如遇其他服务(sleep)会等待执行完成之后继续执行。例如买奶茶,拿小票之后会一直等着,直到奶茶做好
  • 异步:程序开始之后,可以先去完成别的任务,在回来执行其他任务,程序还是会照常运行不会等待某一个任务完成。例如买奶茶拿好小票之后,可以先去买别的,在回来去制作好的奶茶。
    同步和异步是相对于操作结果来说,会不会等待结果返回
  • 阻塞:在店家做奶茶的过程中,你不可以去干其他的事情,
  • 非阻塞:就是在同样的情况下,可以同时去干其他的事情。
  • 阻塞和非阻塞是相对于线程是否被阻塞
    其实,这两者存在本质的区别,它们的修饰对象是不同的。阻塞和非阻塞是指进程访问的数据如果尚未就绪,进程是否需要等待,简单说这相当于函数内部的实现区别,也就是未就绪时是直接返回还是等待就绪。
    而同步和异步是指访问数据的机制,同步一般指主动请求并等待I/O操作完毕的方式,当数据就绪后在读写的时候必须阻塞,异步则指主动请求数据后便可以继续处理其它任务,随后等待I/O,操作完毕的通知,这可以使进程在数据读写时也不阻塞
  • 长连接:连接->传输数据->保持连接->传输数据…->直到客户端关闭连接
  • 短连接:连接->传输数据–>关闭连接
  • 心跳检测:在长链接中,客户端如果因为断网或者而其他原因挂掉,服务端并不知道,连接状态还会一直保持,那这样其实是很浪费资源的。这个时候就需要客户端主动的想服务端定时发送消息,告诉服务端“我还活着”,如果咋一定时间内,服务端没有接收到客户端传来的“标识”,就认为客户端已经挂掉,会主动的断开连接。在客户端向服务端发送的标识我们可以称之为叫心跳包

协议分层

协议分层
数据链路层:实现了网卡接口的网络驱动程序,以处理数据在物理媒介上的传输。实现了 IP地址和机器物理地址(MAC地址)之间的相互转换, 当数据交换时上层网络层使用IP地址寻找一台机器,而数据链路层使用物理地址寻找一台机器,因此网络层必须先将目标标机器的IP地址转化成其物理地址,才能使用数据链路提供的服务。
网络层:网络层实现数据包的选路和转发,网络层最核心的协议是IP协议。IP协议根据数据包的目的IP地址来决定如何投递它。
传输层:利用udp或者tcp协议以及网络层提供的路径信息为基础完成实际的数据传输
应用层:应用层负责处理应用程序的逻辑

TCP和UDP区别
1.TCP是面向连接的,UDP是面向无连接的
2.TCP提供可靠的服务(重传,重试等操作)UDP尽最大努力交付,不能保证可靠的服务
3.UDP的效率比TCP高
4.TCP连接是点对点的,而UDP可以一对一,一对多,广播等通信

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!