下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

TCP协议与UDP协议的区别与联系

作者:课课家教育     来源: http://www.kokojia.com点击数:1098发布时间: 2018-01-13 08:00:01

标签: 通信数据库计算机

软考,您想通过吗?一次通过才是硬道理

  网络通讯上网协议是开发网络程序的基础,目前最常用的协议是TCP/IP协议和UDP协议,而其他的如RMI、SOAP、FTP等协议都可以说是构建在这两者之上。
  1、面向连接的TCP
  “面向连接”就是在正式通信前必须要与对方建立起连接。比如你给别人打电话,必须等线路接通了,对方拿起话筒才能互相通话。
  TCP(Transmission Control Protocol,传输控制协议)提供可靠的端到端的通信,可以保证接收方收到的数据与发送方发送的数据完全一致,能够保证数据不丢失、无差错,同时还有流量控制和拥塞控制的功能,所以TCP协议比较复杂,能够为要求可靠性的应用层协议提供服务,如文件传输、邮件收发,网页浏览、远程登录等等。
  一个TCP连接必须要经过三次“对话”才能建立起来,其中的过程非常复杂,我们来看看这三次对话的简单过程:主机A通过向主机B发送一个含有同步序列号的标志位的数据段给主机B,向主机B请求建立连接,通过这个数据段,主机A告诉主机B两件事:我想要和你通信,你可以用哪个序列号作为起始数据段来回应我;主机B收到主机A的请求后,用一个带有确认应答(ACK)和同步序列号(SYN)标志位的数据段响应主机A,也告诉主机A两件事:我已经收到你的请求了,你可以传输数据了,你要用哪个序列号作为起始数据段来回应我;主机A收到这个数据段后,再发送一个确认应答,确认已收到主机B的数据段:“我应经收到回复,我现在要开始传输实际数据了”。这样3次握手就已经完成了,主机A和主机B就可以传输数据库了。
  TCP的特点:
  1)面向连接的
  2)提供可靠的数据传输服务
  3)提供流量控制。TCP能够控制进程发送数据的速率,保证另一端不被大量的数据“淹没”而出现溢出。
  4)提供拥塞控制。当网络出现拥塞的时候,TCP能够减少向网络注入数据的速率和数量,缓解拥塞。
  5)提供全双工通信。TCP提供双向的数据传输服务。TCP允许通信双方的应用进程在任何时候发送数据。TCP连接的两端都设有发送缓存和接收缓存,用来临时存放双向通信的数据。
  6)TCP是面向字节流的。TCP中的“流”是指流入到进程或从进程流出的字节序列。
  2、面向非连接的UDP协议
  “面向非连接”就是在正式通信前不必与对方建立连接,不管对方状态就直接发送。这与手机短信非常相似:你在发短信的时候,只需要输入对方手机号码就OK了。
  UDP协议(User Data Protocol,用户数据报协议)不能保证数据不丢失、无差错,也不能保证接收方收到数据的顺序和发送方发送数据的顺序一样。UDP协议比较简单,但效率比较高,能为对可靠性要求不高,对实时性要求比较高的应用提供服务,如传输音频和视频。正因为UDP协议没有连接的过程,所以它的通信效果高;但也是因为如此,它的可靠性不如TCP协议高。QQ就是使用UDP法消息,因此有时会出现收不到消息的情况。UDP只提供应用进程寻址和简单的差错检测,并不提供其他功能。
  UDP的特点:
  1)无连接的
  2)UDP是一种尽力而为的服务方式,不提供可靠的数据传输服务(比如数据的丢失、重复和无序)
  3)UDP是一种高效的传输协议
  4)UDP没有拥塞控制和流量控制
  我们经常使用“ping”命令来测试两台主机之间TCP/IP通信是否正常,其实“ping”命令的原理就是向对方主机发送UDP数据包,然后对方主机确认收到数据包如果数据包是否达到的消息及时反馈,那么网络就是通的。
  3、什么是程序的局部性原理?
  程序的局部性原理是指程序总是趋向于使用过的数据和智力,也就是说程序执行行时所访问的存储器地址分布不是随机,而是相对地簇集;这种簇集包括指令和数据两部分。
  程序局部性包括程序的时间局部性和程序的空间局部性。
  1)程序的时间局部性:是指程序即将用到的信息可能就是目前正在使用的信息。
  2)程序空间的局部性:是指程序即将用到的信息可能与目前正在使用的信息在空间上相邻或者临近。
  程序的局部性原理是计算机体系结构设计的基础之一。
  4、按访问速度列出计算机中的存储层次
  TCP协议与UDP协议的区别与联系_通信_数据库_计算机_课课家教育
  5、TCP与UDP的选择
  如果比较UDP包和TCP包的结构,很明显UDP包不具备TCP包复杂的可靠性与控制机制。与TCP协议相同,UDP的源端口数继而目的端数也都支持一台主机上的多个应用。一个16位的UDP包包含了一个字节唱的头部和数据的长度,校验码域使其可以进行整体校验。(多个应用只支持UDP,如;多媒体数据流,不产生任何额外的数据即使知道有破坏的包也不进行重发。)
  很明显,当数据传输的性能必须让位与数据传输的完整性、可控制性和可靠性时,TCP是最好的选择、在数据传输时间很短,以至于此前的连接过程成为整个流量主体的情况下,UDP也是一个很好的选择,如:DNS交换。把SNMP建立在UDP上的部分原因是因为设计者认为当发生网络阻塞时,UDP较低的开销使其有更好的机会去传送管理数据。TCP丰富的功能有时会导致不可预料的性能低下,但是我们相信在不远的将来,TCP可靠的点对点连接将会用于绝大多数的网络应用。
  TCP协议和UDP协议各有所长、各有所短,适用不同要求的通信环境。
  更多的阅读,欢迎登陆课课家或关注公众号【课课家】/【课课家IT精品课程】。

赞(29)
踩(0)
分享到:
推荐查看
华为认证网络工程师 HCIE直播课视频教程