您的位置:首页 > 理论基础 > 计算机网络

网络扫描技术揭秘

2015-09-25 15:08 489 查看
今天51cto上看这门书有一段话觉得很有意思:

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

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

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

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

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

综上所述,如果发送的数据量不大,并且想确保数据收到,或者在对方没收的情况下可以查知,或者在通信期间想随时知道网络是否已断,则可以采用面向连接的方式。如果发送的数据具有周期性、数据量较大(比如视频流等),即使中间某一个数据包未收到,也不影响整个数据的作用,或很快可以通过下一个周期得到相同的数据或随后的数据(例如ping程序,即使某一次数据不正常也不影响整个ping的过程),则使用面向非连接方式更合适。还有,广播或组播的方式只能使用面向非连接的方式。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: