您的位置:首页 > 其它

异步同步,长连接短连接,半双工全双工单工看这一篇就够了

2017-06-23 10:35 405 查看
关于异步同步,长连接短连接,半双工全双工单工概念的整理

同步:如:三次握手,需要请求-响应配对,才进行下一个请求-响应;

异步:如:UDP会话,只管自己做自己的,至于对端是否处理成功,没有关系;

长连接:一次三次握手,交易不握手;家里的门,进一次

短连接:每次会话都要三次握手;银行的门,每次都要钥匙

全双工: 打电话;既可以说也可以听,双向;如三环双向八车道

半双工:一条只有一根车道的路,可以双向行驶但同一时刻内只能单向行驶;如村道;

单工:如单行道,只能朝一个方向行驶;如新都单行道;

我们可以看到其中还包含着一些概念

先说三次握手



TCP(Transmission Control Protocol)传输控制协议 

SYN(synchronous建立连接) 

ACK(acknowledgement 确认)

PSH(push传送)

FIN(finish结束)

RST(reset重置) 

URG(urgent紧急)

Sequence number(顺序号码) 

Acknowledge number(确认号码)

以下是我自己的理解供参考
三次握手简单
9cbc
来说就是:客户端请求建立连接,服务端确认建立连接并返回确认信息,客户端收到确认信息并返回-->三次握手成功.

同步:经过三次握手,请求按顺序来,走流程不搞事

异步:比如说你煮了一锅饭,这期间你可以去打游戏,而不是等着饭煮熟再去玩

长连接:我们一起建立一个连接,然后维持着这个连接不断,这期间发起的任何交易都无需再进行握手

短连接:我们交易一次就建立一次连接,交易完就断掉.

因为我们项目中用到异步全双工长连接

以上组合一下就是:首先我们建立长连接,并发送心跳包保持连接(长连接),并且建立一个请求阻塞队列和接收阻塞队列,请求阻塞队列等待我方请求进入,有请求进来就发送到远程方,接受阻塞队列一直接收返回包,如果接收到就返回到自己的请求方(全双工).请求进来的时候发送和接受信息需要一定时间,这个时候我们可以去处理一些其它的事情(异步).
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: