websocket、TCP实现即时通信的区别

区别是:WebSocket是一种在单个TCP连接上进行全双工通信的协议。WebSocket通信协议于2011年被IETF定为标准RFC 6455,并由RFC7936补充规范。WebSocket API也被W3C定为标准。TCP,即传输控制协议是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793 [1]  定义。

websocket、TCP实现即时通信的区别-Worktile社区

WebSocket

WebSocket是一种在单个TCP连接上进行全双工通信的协议。WebSocket通信协议于2011年被IETF定为标准RFC 6455,并由RFC7936补充规范。WebSocket API也被W3C定为标准。

WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。

很多网站为了实现推送技术,所用的技术都是轮询。轮询是在特定的时间间隔(如每1秒),由浏览器对服务器发出HTTP请求,然后由服务器返回最新的数据给客户端的浏览器。这种传统的模式带来很明显的缺点,即浏览器需要不断的向服务器发出请求,然而HTTP请求可能包含较长的头部,其中真正有效的数据可能只是很小的一部分,显然这样会浪费很多的带宽等资源。

TCP

传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793 [1]  定义。

TCP旨在适应支持多网络应用的分层协议层次结构。 连接到不同但互连的计算机通信网络的主计算机中的成对进程之间依靠TCP提供可靠的通信服务。TCP假设它可以从较低级别的协议获得简单的,可能不可靠的数据报服务。 原则上,TCP应该能够在从硬线连接到分组交换或电路交换网络的各种通信系统之上操作。

传输控制协议(TCP,Transmission Control Protocol)是为了在不可靠的互联网络上提供可靠的端到端字节流而专门设计的一个传输协议。

延伸阅读:

TCP可靠性实现

TCP通过下列方式来提供可靠性:

1.应用数据被分割成TCP认为非常适合发送的数据块。这和UDP完全不同,应用程序产生的数据长度将保持不变。由TCP传递给IP的信息单位称为报文段或段(segment)。

2.当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。当TCP收到发自TCP连接另一端的数据,它将发送一个确认。TCP有延迟确认的功能,在此功能没有打开,则是立即确认。功能打开,则由定时器触发确认时间点。

3.TCP将保持它首部和数据的检验和。这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化。如果收到段的检验和有差错,TCP将丢弃这个报文段和不确认收到此报文段(希望发端超时并重发)。

4.既然TCP报文段作为IP数据报来传输,而IP数据报的到达可能会失序,因此TCP报文段的到达也可能会失序。如果必要,TCP将对收到的数据进行重新排序,将收到的数据以正确的顺序交给应用层。

5.既然IP数据报会发生重复,TCP的接收端必须丢弃重复的数据。

6.TCP还能提供流量控制。TCP连接的每一方都有固定大小的缓冲空间。TCP的接收端只允许另一端发送接收端缓冲区所能接纳的数据。这将防止较快主机致使较慢主机的缓冲区溢出。

文章标题:websocket、TCP实现即时通信的区别,发布者:小编,转载请注明出处:https://worktile.com/kb/p/38075

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小编小编认证作者
上一篇 2023年2月13日 下午11:10
下一篇 2023年2月13日 下午11:12

相关推荐

  • Python的解释器是用什么语言写的

    Python解释器易于扩展,可以使用C语言或C++(或者其他可以通过C调用的语言)扩展新的功能和数据类型。Python社区的标准是CPython实现,是C语言写的。还有一些其他的实现,比如PyPy,简单说是 RPython实现的。主流的就是上面这两个了,还有JVM实现,以及微软的实现。 Python…

    2023年2月23日
    78500
  • 项目人力资源如何管理的

    项目人力资源管理是确保团队成员之间协调、获得项目成功所必需的技能和资源以及激励团队以高效率完成项目任务的关键活动。成功的项目人力资源管理应包括:明确角色与职责、建立沟通渠道、持续的团队建设、有效的冲突解决机制、适时的表彰与奖励、有效的培训与发展计划。明确角色与职责是构建高效团队的基石,它涉及到确保每…

    2024年4月10日
    9100
  • Java中接口继承接口实际意义是什么

    ava中接口继承接口实际意义有:1、通过接口可以实现不相关类的相同行为,而不需要了解对象所对应的类;2、通过接口可以指明多个类需要实现的方法;3、通过接口可以了解对象的交互界面,而不需了解对象所对应的类。 一、接口的意义 1、通过接口可以实现不相关类的相同行为,而不需要了解对象所对应的类。 2、通过…

    2023年2月9日
    81500
  • devops平台注重什么

    摘要: DevOps平台关注多种要素以保障软件开发和交付的高效性与稳定性。1、自动化的流程、2、紧密的协作,及3、持续的反馈构成了其核心。在这之中,自动化的流程尤为关键,涉及代码集成、测试、部署乃至监控的全周期自动化,显著提升了开发效率与产品质量。DevOps平台通过整合自动化工具和流程,减少人为错…

    2024年3月26日
    6900
  • 如何管理手机扣费项目卡

    管理手机扣费项目卡的关键在于了解扣费项目的来源、审查订阅服务、设定消费限额、及时检查账单,以及利用手机运营商提供的管理服务。其中,审查订阅服务为关键步骤,需要用户仔细审查手机账户中所有的订阅服务,包括应用内购买、媒体内容订阅、增值服务等,确保所有的订阅都是明智而有意识的决策。取消不再需要或不经意间订…

    2024年4月10日
    5600
  • 大项目如何时间管理好

    在管理大型项目的时间上,关键在于:详尽的项目规划、明确的优先级设定、灵活的时间安排、持续的进度监控、有效的风险管理。首先,详尽的项目规划是基础,这包括了解项目目标、明确里程碑、划分工作包、估算所需时间,并制定相应的时间表。项目细分是这一阶段的核心,可以帮助管理者更好地处理复杂性和可执行性。细分的方法…

    2024年4月11日
    6300
  • oa办公系统 通达

    ### 摘要 OA办公系统指企业在线办公自动化系统。1、提高工作效率;2、优化流程管理;3、强化数据安全;4、支持移动办公;5、简化通信交流。焦点在于流程管理优化,如同自动化齿轮,借助流程模板与审批路径的设定,简化日常事务处理,减少纸质文件传递的繁杂与时间浪费,确保决策和执行的高效同步进行。详细来说…

    2024年1月17日
    20800
  • erp及oa系统要花费多少

    ERP(企业资源规划)和OA(办公自动化)系统的花费取决于多个因素,如系统规模、定制程度、功能复杂性、提供商报价以及随后的维护费用。通常,费用从数千美元到数百万美元不等。中小企业的ERP系统通常会便宜一些,而大型企业完全定制的解决方案则成本高昂。而OA系统相对来说成本较低,因为这类系统普遍功能简单且…

    2024年1月17日
    26500
  • 文心一言与西方修辞学有何异同

    本文旨在探讨文心一言与西方修辞学的异同。文心一言,源于司马迁的《史记·太史公自序》,是中文修辞的精髓。西方修辞学,则起源于古希腊,由亚里士多德等人奠基。这两者在目的性、功能性、表现手法上均有共通之处。1、两者都强调言辞对于情感的影响和说服力的重要性;2、均视修辞为提高文辞效果的工具;3、都以恰当、清…

    2023年11月29日
    33500
  • 为什么vscode没有flake8

    Visual Studio Code(VSCode)本身并没有内置Flake8,因为VSCode仅提供了一个可扩展的平台、多语言支持和基本的代码编辑功能。然而,VSCode是支持通过安装扩展来集成Flake8的,也就是说,开发者可以自行添加该功能。在VSCode中使用Flake8通常需要两个步骤:首…

    2024年4月3日
    13500

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部