分层协议一般都提供一种或几种固定的服务,这些服务中高层一些的大多数都是通过“握手”动作来协商的,另外一些比较底层的服务则是协议本身提供的,比如udp服务,ip服务等。下层的握手过程对上层不可见,握手其实就是协商一条带有一定功能(可以提供一定服务)的虚拟链路,握手完成之后,下层也就承诺了那种服务,之后服务的实现完全在本层完成。可是基于消息协议一般不这么做,没有握手之类的固定过程,因为基于消息的协议所完成的功能各不一致,因此也就难以抽象出共同点来完成固定的握手协商。
对于分层协议来说,下层为上层提供服务,比如tcp的序列号机制就是为上层提供的数据包按序服务,上层协议可以完全信任tcp传过来的数据一定是按序的,再比如ssl为上层提供安全加密服务,最终的应用可以相信ssl提供上来的数据都是安全的,不管是按序服务还是安全服务,都是两端协商出来的结果,而协商的过程就是我们熟悉的握手过程。层间服务的控制数据大多数都在协议头当中。
对于基于消息的平坦模型的协议,并不分层,没有谁能提供承诺的透明的服务,应用可以认为下面就是物理线路了,因此必须自己维护状态机,也就是说得到一条消息后根据消息体的内容来自行控制下一步的做法,注意不是协议头,而是消息体,基于消息的协议的协议头的重要性没有分层协议的协议头的重要性大。协议头几乎都是格式固定的,对于灵活多变的应用消息来说,固定化的控制并不可取,正确的做法应该是定义符合ASN.1标准的消息体,应用在解析消息的同时,见机行事,见什么消息做什么事,这样比较好。
分享到:
相关推荐
另一方面,按照所有用户接入带宽总和设计网络端口输出带宽是不现实且昂贵的。 从运营商角度看,BT下载业务平均带宽收入较低,例如音乐下载,相比之下,使用带宽较低的服务如短信、彩铃等却能带来较高的收入。此外,...
使用Wireshark这样的网络协议分析工具可以帮助开发者和技术人员深入理解微信在不同操作过程中的网络通信细节。 Wireshark是一个功能强大的网络协议分析工具,它能够捕获网络中的数据包,并提供对这些数据包进行详细...
在计算机网络设计中,这通常意味着首先确定网络应提供的服务类型,网络的边界和主要组成部分,然后根据这些高层次的决策制定具体的网络协议和配置。 在计算机网络的背景下,自顶向下的方法可以帮助学习者理解复杂的...
在计算机网络领域,实验是理解和掌握网络技术的重要途径。以下是对实验一至实验四中涉及的知识点的详细解释: 实验一:网线制作 ...通过这些实验,学生可以更好地掌握网络设备的使用和网络架构的设计。
最后,兼容性是网管软件的重要指标,文档提及这一点意味着产品将支持多种操作系统、网络设备和协议,以确保在各种IT环境中都能有效运行。 产品说明部分会详细介绍产品的功能特性、操作流程和使用场景,帮助用户更好...
同时,提供的论文可以帮助理解系统设计背后的思考和决策,以及解决特定问题的方法。 总之,这个二手交易系统的实现是一个全面的ASP.NET Web开发实践案例,涵盖了从界面设计到后端开发的全过程,对于学习和提升ASP...
Hyperledger Fabric引入了一个全新的区块链设计,重新思考了区块链如何应对非确定性问题、资源耗尽和性能攻击的问题。 通过上述内容,我们可以看到Hyperledger Fabric作为一种新兴的企业级区块链技术解决方案,是...
在探讨为Web服务选择预备的传输方式这一主题时,我们首先需要理解Web服务与HTTP之间的...通过深入了解各种传输协议的特点和适用场景,可以更好地满足Web服务的多样化需求,构建更加高效、稳定和用户友好的网络应用。
理解网络原理,如TCP/IP协议栈、HTTP协议,以及如何构建和优化网络应用,对于现代程序员至关重要。 8. **你需要这本书!** 书中不仅涵盖了这些核心理念,还深入探讨了编程语言的学习方法、计算机科学基础,如图灵机...
6. **计算机网络**:TCP/IP协议栈、HTTP协议、网络请求与响应、网络安全、DNS解析等基础知识也可能被考察。 7. **数据处理和分析**:对于数据分析职位,可能会涉及到统计学概念、数据清洗、数据可视化以及使用工具...
2. 计算机网络:这一章可能讲解了网络的基本概念,如OSI模型、TCP/IP协议栈、网络层的IP协议、传输层的TCP/UDP协议,或者是HTTP、FTP等应用层协议。 3. 编程语言:如果是关于编程的习题,第四章可能涉及特定编程...
- **知识点解析**:面向对象的设计方法的基本原理是使用现实世界的概念抽象地思考问题从而自然地解决问题。这种方法强调通过对象来组织代码,使得程序结构更加清晰且易于维护。 - **重要性**:理解面向对象的基本...
根据给定文件的信息,我们可以从中提炼出以下...通过上述分析可以看出,虽然原始文件的内容与IT领域并不直接相关,但通过对文件中提到的考试场景进行扩展思考,我们仍然可以从中学到许多与IT相关的知识点和技术应用。
【亿级社交视频播放平台】是一个专为大规模用户群体设计的解决方案,主要聚焦于提供稳定、高效的视频播放体验。在2015年至2017年期间,短视频的使用趋势呈现爆炸性增长,QQ空间的视频播放量也在同期显著上升,这表明...
Python的标准库中提供了大量的网络编程模块,使得开发者可以轻松创建如FTP、HTTP等协议的客户端和服务端。 GUI工具包章节则介绍了如何使用Python构建图形用户界面的应用程序。Python有许多支持GUI开发的第三方库,...
此外,深入理解网络协议(如TCP/IP)、数据库原理等也可以帮助JAVA程序员更好地设计高性能的应用系统。 #### 心得四:合理安排时间,避免过度工作 程序员常常面临着紧张的工作压力,长时间加班不仅会影响身体健康...
- 购买软件意味着获得使用权而非所有权,理解这一点有助于遵守软件使用的法律法规。 22. **科学发展史的认知**: - 科学理论的发展是一个不断演进的过程,了解重要理论的提出时间有助于把握科学发展脉络。 23. *...
如果仅仅是为了实现这个简单的初衷,为什么一切会那么复杂,我觉的自己可以写一个更简单的东西,它不需要过度设计,只需要看上去更酷一点,更小巧一点,功能更强一点。于是我将自己对分布式的理解融入到这个框架中,...
这意味着不仅要改进现有的流程,还要从根本上重新思考和设计业务流程。 #### 供应商管理库存策略 - **策略**:**供应商管理库存**(选项C)是一种策略,其中供应商决定每一种商品的恰当库存水平以及维持这些库存...