关于javascript:网络协议-设计模式

1.了解什么是协定,理解TCP/IP网络协议族的形成,每层协定在应用程序中施展的作用

电脑要通信就必须恪守独特的规定
国际标准化组织(ISO)定义了网络协议的根本框架,被称为OSI模型。要制订通信规定,内容会很多,比方要思考A电脑如何找到B电脑,A电脑在发送信息给B电脑时是否须要B电脑进行反馈,A电脑传送给B电脑的数据的格局又是怎么的?内容太多太杂,所以OSI模型将这些通信规范进行档次划分,每一档次解决一个类别的问题,这样就使得规范的制订没那么简单。
OSI模型制订的七层规范模型,别离是:应用层,表示层,会话层,传输层,网络层,数据链路层,物理层。
TCP/IP 是一个协定族,也是依照档次划分。共四层:应用层,传输层,互连网络层,网络接口层。
TCP/IP协定中的应用层协定,就对应于OSI中的应用层,表示层,会话层
次要关注应用层和传输层的协定就能够了。
1.什么是socket?

以前有据说过socket编程这种说法,也有的说套接字编程。我在搜寻对于socket的材料时,发现有的说socket是指一个连贯,有的说socket是一指一个端点。拿打电话做比喻,A电话机和B电话机正在通话,那么socket是指的A和B之间的连接线呢,还是指电话机(端点)?

我当初的了解是,socket就是一个连贯中的一个端点,一次通信(连贯)a,b端都会有一个socket。一个socket对应一个连贯。

2.http协定属于应用层还是传输层?

http 超文本传送协定,听下来像是传输层的协定一样。但事实上大家都晓得http和ftp一样都是属于应用层的协定,

2.三次握手和四次挥手具体原理,为什么要应用这种机制

三次握手建设连贯

四次挥手敞开连贯

第四次挥手是确保服务端—->客户端之间的传输是没有问题的。是一个必要的过程
断开一个TCP连贯时,须要客户端和服务端总共发送4个包以确认连贯的断开。在socket编程中,这一过程由客户端或服务端任一方执行close来触发。

了解WebSocket协定的底层原理、与HTTP的区别
Socket原理:
服务端有一个过程(或者多个过程)在指定端口期待客户来连贯,服务程序期待客户的连贯信息,一旦连贯上之后,就能够按设计的数据交换办法和格局进行数据传输。客户端在须要的时刻收回向服务器端的连贯申请。
socket是TCP/IP过程间通信的底层实现bai(当然,socket只是duipc中的一种,此zhi外还有音讯队列、信号灯、共享dao内存等很多伎俩)。

http(s)是在socket之上封装的一种下层通信协定,其特点是:

服务端监听通信,被动提供服务;客户端被动向服务端发动连贯申请,建设起通信。

每一次交互都是:客户端被动发动申请(request),服务端被动应答(response)。

服务端不能被动向客户端推送数据。

通信的数据是基于文本格式的。二进制数据(比方图片等)要利用base64等伎俩转换为文本后能力传输。

websocket也是在socket之上封装的一种下层通信协定,其特点是:
websocket通信的建设阶段是依赖于http协定的。最后的握手阶段是http协定,握手实现后就切换到websocket协定,并齐全与http协定脱离了。

建设通信时,也是由客户端被动发动连贯申请,服务端被动监听。

通信一旦建设连贯后,通信就是“全双工”模式了。也就是说服务端和客户端都能在任何工夫自在得发送数据,非常适合服务端要被动推送实时数据的业务场景。

交互模式不再是“申请-应答”模式,齐全由开发者自行设计通信协定。

通信的数据是基于“帧(frame)”的,能够传输文本数据,也能够间接传输二进制数据,效率高。当然,开发者也就要思考封包、拆包、编号等技术细节。
HTTP:每一次数据传输都须要有一个HTTP头部,头部的大小不一,可能只有几百B,也可能有几千B。

WebSocket只有在进行连贯的时候须要发送一个HTTP申请,之后就再也不须要发送纷纷的HTTP头部信息,光从字节数上就缩小了很多。而在敞开WebSocket的过程中,也不须要像建设握手的时候那么繁冗,只须要传送一个特定的字节码0×8的敞开帧就行,服务端收到之后,须要响应一个敞开帧到客户端。
WebSocket能够始终放弃连贯,通过Socket通道传输数据,节俭掉了建设连贯须要消耗的工夫。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理