网络扫描技术揭秘
2015-09-25 15:08
489 查看
今天51cto上看这门书有一段话觉得很有意思:
需要说明的是,在现实中接触的很多工程师,每提及面向非连接的通信都嗤之以鼻,似乎面向非连接一无是处,在数据传输过程中优先级很低,经常会丢包,故这里以开发和实践的角度对二者进行如下比较:
面向连接和面向非连接只是电信专家与计算机专家就网络传送数据的方法进行争论后的一个折中结果。前者认为应该把传输的可靠保证放在传输上,后者认为应该把传输的可靠保证放在计算机端进行处理。
二者的关系很像是挂号信和普通信的关系。通信成功与否不取决于采用哪种方式,而取决于二者之间的链路,通常情况下,如果面向非连接的通信到达不了的数据,面向连接的通信也到达不了。只是面向连接的情况下,函数会明确告诉发送成功,但对方未接到;而面向非连接的情况下,函数只是告诉发送成功,不会告诉对方是否接到。
面向连接中的“可靠”源于协议内部不停地传递链路是可靠的信息,因此虽然用户感觉不到这些数据的传输,但实际上这些数据始终存在。而面向非连接则不需要维护这些息,因此面向连接的系统开销很大。比如两台电脑之间连接了一个小时未通信,在面向连接的方式下,这两台电脑之间会不停地发送确认信息以确定链路是否连通;而面向非连接的方式则没有这些维护信息。
如果传输层的更高层协议愿意,面向非连接的情况下,完全可以通过高层的应用模拟出面向连接的效果。例如:接到数据包后给一个确认的回复;或在通信期间定时发送检测链路可靠的信息。
综上所述,如果发送的数据量不大,并且想确保数据收到,或者在对方没收的情况下可以查知,或者在通信期间想随时知道网络是否已断,则可以采用面向连接的方式。如果发送的数据具有周期性、数据量较大(比如视频流等),即使中间某一个数据包未收到,也不影响整个数据的作用,或很快可以通过下一个周期得到相同的数据或随后的数据(例如ping程序,即使某一次数据不正常也不影响整个ping的过程),则使用面向非连接方式更合适。还有,广播或组播的方式只能使用面向非连接的方式。
需要说明的是,在现实中接触的很多工程师,每提及面向非连接的通信都嗤之以鼻,似乎面向非连接一无是处,在数据传输过程中优先级很低,经常会丢包,故这里以开发和实践的角度对二者进行如下比较:
面向连接和面向非连接只是电信专家与计算机专家就网络传送数据的方法进行争论后的一个折中结果。前者认为应该把传输的可靠保证放在传输上,后者认为应该把传输的可靠保证放在计算机端进行处理。
二者的关系很像是挂号信和普通信的关系。通信成功与否不取决于采用哪种方式,而取决于二者之间的链路,通常情况下,如果面向非连接的通信到达不了的数据,面向连接的通信也到达不了。只是面向连接的情况下,函数会明确告诉发送成功,但对方未接到;而面向非连接的情况下,函数只是告诉发送成功,不会告诉对方是否接到。
面向连接中的“可靠”源于协议内部不停地传递链路是可靠的信息,因此虽然用户感觉不到这些数据的传输,但实际上这些数据始终存在。而面向非连接则不需要维护这些息,因此面向连接的系统开销很大。比如两台电脑之间连接了一个小时未通信,在面向连接的方式下,这两台电脑之间会不停地发送确认信息以确定链路是否连通;而面向非连接的方式则没有这些维护信息。
如果传输层的更高层协议愿意,面向非连接的情况下,完全可以通过高层的应用模拟出面向连接的效果。例如:接到数据包后给一个确认的回复;或在通信期间定时发送检测链路可靠的信息。
综上所述,如果发送的数据量不大,并且想确保数据收到,或者在对方没收的情况下可以查知,或者在通信期间想随时知道网络是否已断,则可以采用面向连接的方式。如果发送的数据具有周期性、数据量较大(比如视频流等),即使中间某一个数据包未收到,也不影响整个数据的作用,或很快可以通过下一个周期得到相同的数据或随后的数据(例如ping程序,即使某一次数据不正常也不影响整个ping的过程),则使用面向非连接方式更合适。还有,广播或组播的方式只能使用面向非连接的方式。
相关文章推荐
- 找呀志_java网络编程(5)TCP和udp差额
- 2015北京网络赛 D-The Celebration of Rabbits 动归+FWT
- Xcode7 beta 网络请求报错:The resource could not be loaded because the App Transport Security policy requir
- [原] 利用 OVS 建立 VxLAN 虚拟网络实验
- C# 热敏打印机 Socket 网络链接 打印 图片 (一)
- tcprstat分析服务的响应速度
- DataSnap如何监控Tcp/IP客户端的连接情况
- 第1章 网络基础知识
- boost asio网络编程
- C# 使用IP端口网络打印图片
- python--httplib模块使用
- python案例学习——http服务器
- 移动端网络游戏服务器架构
- loopj.android.http.AsyncHttpClient 400
- Linux下必须知道的11个网络命令
- 2015(第五届)中国未来网络发展与创新论坛 征文通知
- 2015(第五届)中国未来网络发展与创新论坛 征文通知
- Apache2 httpd.conf 配置详解
- 新建JSP报错:The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
- Broadcast监听网络状态,ping判断网络是否可用