TCP 和 UDP

栏目: IT技术 · 发布时间: 3年前

内容简介:TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。上面之所以单独拿TCP/IP来解说一下它究竟是什么,主要是想让大家有个概念,不想让大家搞混乱了。

TCP/IP是什么

TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。

TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。

tcp、udp是什么

上面之所以单独拿TCP/IP来解说一下它究竟是什么,主要是想让大家有个概念,不想让大家搞混乱了。

TCP/IP是一个大的协议簇,里面包含了网络七层协议里面的各种协议,在这套TCP/IP的网络体系结构当中,TCP(传输控制协议,Transport Controll Protocol、UDP(用户数据报协议,User Data Protocol)是传输层最重要的两种协议,为上层用户提供级别的通信可靠性。

TCP/UDP的区别

首先大概说一下它们的区别:

  1. TCP是面向连接的,UDP是无连接的。

  2. TCP是基于数据流的,UDP是基于报文的。

  3. TCP保证了数据的可靠传输,UDP是有可能丢包的。

  4. TCP保证了数据的顺序,UDP是保证的。

  5. TCP的结构比较复杂,UDP简单。

  6. TCP慢,UDP快。

TCP

TCP协议是一种可靠的、一对一的、面向有连接的通信协议。

TCP主要通过几种方式保证数据传输的可靠性:

  1. 在使用TCP协议进行数据传输时,往往需要客户端和服务端先建立一个 「 通道 」 、且这个通道只能够被客户端和服务端使用,所以TCP传输协议只能面向一对一的连接。为了保证数据  「 传输的准确无误 」 ,TCP传输协议将用于传输的数据包分为若干个部分(每个部分的大小根据当时的网络情况而定),然后在它们的首部添加一个检验字节。当数据的一个部分被接收完毕之后,服务端会对这一部分的完整性和准确性进行  「 校验 」 ,校验之后如果数据的完整度和准确度都为100%,在服务端会要求客户端开始数据下一个部分的传输,如果数据的完整性和准确性与原来不相符,那么服务端会要求客户端  「 再次传输 」 这个部分。

  2. 客户端与服务端在使用TCP传输协议时要先建立一个 「 通道 」 ,在传输完毕之后又要关闭这  「 通道 」 ,前者可以被形象地成为  「 三次握手 」 ,而后者则可以被称为  「 四次挥手 」

TCP协议能为应用程序提供 「 可靠 」 的通信连接,使一台计算机发出的字节流  「 无差错 」 地发往网络上的其他计算机,所以对可靠性要求高的数据通信系统往往使用TCP协议传输数据。

UDP

UDP传输协议是 「 无连接 」 的,  「无连接」 就是在正式通信前不必与对方先建立连接,不管对方状态就直接发送。它是一种不可靠的、面向无连接、可以实现多对一、一对多和一对一连接的通信协议。

  1. UDP在传输数据前 「 不需要建立通道 」 ,在数据传输完毕后也不需要将通道关闭。

  2. 只要客户端给服务端发送一个请求,服务端就会 「 一次性 」 地把所有数据发送完毕。UDP在传输数据时  「 不会对数据的完整性进行验证 」 ,在数据丢失或数据出错时也  「 不会要求重新传输 」 ,因此也节省了很多用于验证数据包的时间,所以以UDP建立的连接的延迟会比以TCP建立的连接的延迟更低。

  3. UDP不会根据当前的网络情况来控制数据的发送速度,因此无论网络情况是好是坏,服务端都会以 「 恒定的速率 」 发送数据。虽然这样有时会造成数据的丢失与损坏,但是这一点对于一些实时应用来说是十分重要的。

基于以上三点,UDP在数据传输方面 「 速度更快 」「 延迟更低 」 ,  「 实时性更好 」 , 因此被广泛地用于通信领域和视频网站当中。

TCP的应用场景

效率相对比较低,但是数据可靠要求比较高的场景。传输涉及到数据确认、重发、 排序 等。比如文件传输,浏览器的一些操作等等。

UDP的应用场景

效率比较高,但是数据不可靠,有存在丢包的情况。一般直播,视频聊天,语音聊天等(就算掉帧,画面卡了几帧并没有多大影响的,并且这种视频等流量本身就很大,数据量高)。

总结

TCP就像打电话,需要线路接通,双方都拿起手机,才可以相互交流。UDP就像发短信,不用关心对方在干啥,直接输入手机和内容就可以发出去了。

TCP UDP
是否连接 面向连接 无连接
传输可靠性 可靠的 不可靠的
应用场景 传输少量数据 大量数据
速度

形象的例子

TCP

这是一个好人1号和他的女神的故事:

有一天,好人1号很喜欢他的女神,但是女神好像 「 对他爱答不理 」 , 所以这一只舔dog比较有礼貌 ,完了好人1号偷偷打听到,他的女神很喜欢喝果汁,对于好喝的果汁都没有办法抵抗,所以好人1号就找了好多好多的果汁决定送给女神。

  1. 好人1号开始的时候问女神在家里吗?

  2. 女神说在家里

  3. 好人1号就说我给你买了果汁,你收到了要跟我说一下哦!

  4. 好人1号给女神送了一瓶果汁。

  5. 女神发现是自己最爱喝的果汁,所以拿到了之后就跟好人1号说已经喝完这一瓶了。

  6. 好人1号心想女神这么能喝,决定这次给女神送两瓶果汁,完了又问,女神你收到我给你的果汁了吗?

  7. 女神又发现是自己没有办法抵抗的果汁,所以又跟好人1号说自己已经喝完第三瓶了。...

这就是TCP,好人1号得先跟女神三次握手,确定女神在家了再去给女神送果汁,好人1号每次给女神送完果汁还要女神去告诉好人1号她已经喝完了。

UDP

这是一个好人2号和他的女神的故事:

有一天,好人2号很喜欢他的女神,但是女神好像对他爱搭不理,但是好人2号毫不知觉,并且 「 认为女神跟他相亲相爱,沉浸在自己爱情的世界 」 当中,所以这一只好人2号比较自以为是,有自己的想法,有一天听到女神对于好喝的果汁没有办法抵抗,所以买了好多好多果汁决定送给女神。

  1. 好人2号开始的时候打听到了女神的家里地址。

  2. 然后直接叫外卖,叫了一车的果汁,地址就是女神家。

  3. 叫完外卖好人2号就不管了,等外卖自己送过去就完了。

这就是UDP,好人2号知道女神的住址后,直接就买一堆果汁往女神家里塞,也不在乎女神喝完没,外卖送到女神家里没。

总结

你这么一看,你TCP给女神送果汁,还要等女神告诉你她喝没喝完,但UDP不一样呀,你直接叫外卖就完了,也不管她喝没喝完,果汁到位就完事了。所以TCP数据当然可靠了,毕竟确认女神喝完了再继续给她送,UDP只需要确认自己给女神叫了外卖就好了。

PS

都结合网上资料加上自己的一些理解,如果有影响到人的地方,可以联系我: fzfz2007@163.com


以上所述就是小编给大家介绍的《TCP 和 UDP》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

图解机器学习

图解机器学习

杉山将 / 许永伟 / 人民邮电出版社 / 2015-4 / 49

本书用丰富的图示,从最小二乘法出发,对基于最小二乘法实现的各种机器学习算法进行了详细的介绍。第Ⅰ部分介绍了机器学习领域的概况;第Ⅱ部分和第Ⅲ部分分别介绍了各种有监督的回归算法和分类算法;第Ⅳ部分介绍了各种无监督学习算法;第Ⅴ部分介绍了机器学习领域中的新兴算法。书中大部分算法都有相应的MATLAB程序源代码,可以用来进行简单的测试。 本书适合所有对机器学习有兴趣的初学者阅读。 187张图......一起来看看 《图解机器学习》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

在线进制转换器
在线进制转换器

各进制数互转换器