端上保证可靠性还是链路保证

今天51cto上《网络扫描技术揭秘》有一段话觉得很有意思:

需要说明的是,在现实中接触的很多工程师,每提及面向非连接的通信都嗤之以鼻,似乎面向非连接一无是处,在数据传输过程中优先级很低,经常会丢包,故这里以开发和实践的角度对二者进行如下比较:

面向连接和面向非连接只是电信专家与计算机专家就网络传送数据的方法进行争论后的一个折中结果。前者认为应该把传输的可靠保证放在传输上,后者认为应该把传输的可靠保证放在计算机端进行处理。

二者的关系很像是挂号信和普通信的关系。通信成功与否不取决于采用哪种方式,而取决于二者之间的链路,通常情况下,如果面向非连接的通信到达不了的数据,面向连接的通信也到达不了。只是面向连接的情况下,函数会明确告诉发送成功,但对方未接到;而面向非连接的情况下,函数只是告诉发送成功,不会告诉对方是否接到。

面向连接中的“可靠”源于协议内部不停地传递链路是可靠的信息,因此虽然用户感觉不到这些数据的传输,但实际上这些数据始终存在。而面向非连接则不需要维护这些息,因此面向连接的系统开销很大。比如两台电脑之间连接了一个小时未通信,在面向连接的方式下,这两台电脑之间会不停地发送确认信息以确定链路是否连通;而面向非连接的方式则没有这些维护信息。

如果传输层的更高层协议愿意,面向非连接的情况下,完全可以通过高层的应用模拟出面向连接的效果。例如:接到数据包后给一个确认的回复;或在通信期间定时发送检测链路可靠的信息。

综上所述,如果发送的数据量不大,并且想确保数据收到,或者在对方没收的情况下可以查知,或者在通信期间想随时知道网络是否已断,则可以采用面向连接的方式。如果发送的数据具有周期性、数据量较大(比如视频流等),即使中间某一个数据包未收到,也不影响整个数据的作用,或很快可以通过下一个周期得到相同的数据或随后的数据(例如ping程序,即使某一次数据不正常也不影响整个ping的过程),则使用面向非连接方式更合适。还有,广播或组播的方式只能使用面向非连接的方式。

网络扫描技术揭秘:原理、实践与扫描器的实现》系统地介绍网络扫描器的概念、原理与设计方法,饱含作者十几年来在网络技术应用实践中不断总结的经验与技巧。作者从网络协议这样的基本概念开始,细致深入地分析了网络扫描器的原理,并用自己制作的大量工程代码,揭示了网络扫描器的实现方法与最佳实践。 《网络扫描技术揭秘:原理、实践与扫描器的实现》首先介绍了网络扫描技术的概念、原理、算法等,以及网络协议的意义与编程概述,随后系统分析了各种扫描器的原理与设计方法,包括TCP/UDP端口、NetBIOS、SNMP、ICMP、基于协议的服务、基于应用的服务、命名管道、服务发现、漏洞扫描器等。书中在介绍每一种扫描器的时候,都是先介绍相应协议,然后对扫描器中要使用的API函数进行详细说明,使读者知道该扫描器的各种技术细节;还介绍了Windows中相关协议程序的安装、配置、测试和验证等,使读者有了演习场地;最后展示了扫描器的编程实例。这种循序渐进、逐步深入的方式,使读者不仅全面地了解扫描器的细节,而且在遇到新情况时,能举一反三,对代码进行修改或调整。随书光盘还包含了作者精心制作与调试好的工程代码,可帮助读者快速上手,设计出自己需要的扫描器。 《网络扫描技术揭秘:原理、实践与扫描器的实现》不仅是网管员和安全技术人员必备参考书,也适合于所有想深入理解计算机网络原理、全面了解网络扫描技术的学生、教师以及安全技术爱好者。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值