宝哥软件园

TCP和UDP有什么区别?TCP/UDP协议说明

编辑:宝哥软件园 来源:互联网 时间:2021-09-02

TCP是一种基于连接的协议。在正式发送和接收数据之前,必须与对方建立可靠的联系。UDP协议是与TCP相对应的协议。它是一种面向非连接的协议,直接发送数据包,不需要与对方建立连接。如果用户对概念不太了解,可以阅读以下内容,了解TCP和UDP的区别。

TCP协议与UDP协议区别点在哪?TCP  UDP协议详解

先说说TCP协议:

1.理解:窗口和滑动窗口TCP的流量控制

TCP使用窗口机制进行流量控制。当建立连接时,每一端分配一个缓冲区来存储接收到的数据,并将缓冲区的大小发送给另一端。接收方发送的确认消息包含自己剩余的缓冲区大小。剩余的缓冲空间量称为窗口。

2.TCP的流量控制过程:

TCP协议与UDP协议区别点在哪?TCP  UDP协议详解

TCP 与UDP的区别:

很多文章都说TCP可靠,UDP不可靠!为什么前者可靠,后者不可靠?既然UDP不可靠,为什么还要用?所谓的TCP协议是一种面向连接的协议。什么是面向连接?

TCP和UDP都是传输层协议!从编程的角度来看,它是两个模块(一个模块是代码的集合,而一系列代码的组合提供了相应的功能!模块化的最终目的是:分工合作!模块化好处:易于扩展开发和维护!)。

TCP协议是面向连接的!面对连接的概念,要从物理层入手。众所周知,因为“信道复用技术”的快速发展,计算机网络的发展得到了推动!如果没有“信道复用技术”,单条线路(这里的线路指的是物理传输介质,如双绞线、光纤、电话线)单位时间只能被一台电脑使用!以自己的电脑为例。当你和你的同学小明聊天时,你不能和另一个同学萧蔷聊天。如果你想同时和两个同学聊天,就得装两条线!然后与第三和第四名学生同时。第n个学生聊天时需要安装多少条线?全世界的人聊天需要安装多少条线?

实现了“信道复用技术”,X台计算机可以在同一条线路上单位时间内同时通信!Toad了解以下多路复用技术:

1.频分复用;

2.时分复用;

3.波分复用;

4.码分复用;

5.空分复用;

6.统计复用;

7.极化波多路复用。

“信道复用技术”更深层次的问题需要你自己研究!

信道复用技术:

知道了这一点,我们就很容易理解“物理通道”上“虚拟通道”的概念了!不同的信道复用技术被用来创建“虚拟信道”。

TCP连接实际上是在物理线路上创建的“虚拟通道”。这个“虚拟信道”建立后,直到TCP协议发送一个FIN包(两个终端会互相发送一个FIN包)才会释放。正因为如此,TCP协议被称为面向连接的协议!

UDP协议:

UDP协议会在物理线路上创建一个“虚拟通道”,否则UDP协议无法传输数据!然而,这个“虚拟通道”在UDP协议传输数据后立即被取消了!所以,UDP不是面向连接的协议!

TCP的流量控制过程:

TCP协议与UDP协议区别点在哪?TCP  UDP协议详解

TCP协议和UDP协议为什么会共存?

1.每个人都应该知道,一种物理线路可以在单位时间内创建有限数量的“虚拟通道”!

2.TCP协议用于传输数据。当数据从A传输到B时,B会向A发送确认包(ACK包),通知A我已经收到数据了!UDP协议没有这样的确认机制!这就是TCP可靠,UDP不可靠的原因。

QQ普通会员使用UDP协议传输数据!由于UDP协议本身没有确认机制,这项工作可以由应用层进程(QQ)来完成!用QQ的时候,感觉错的概率还是很小的。当然,把这个确认工作交给QQ本身,会直接导致QQ软件的体积增大!

在一些应用中,数据传输的可靠性非常高。例如,当人们浏览网页、注册账户和通过网页转移资金时,不允许出错。使用TCP协议可以最大限度地降低出错的可能性(当然网络本身很糟糕,TCP协议也没办法)。但是,提供这种可靠的服务会增加网络带宽的成本,因为“虚拟信道”持续存在,网络中会出现大量的ACK和FIN数据包!

因此,不能既有蛋糕又吃,需要根据实际情况选择传输协议。TCP协议提供了可靠的数据传输,但其拥塞控制、数据校验和重传机制存在较高的网络开销,不适合实时通信,因此选择开销较低的UDP协议传输数据。

UDP协议是一种无连接的数据传输协议,没有重传机制,可能会造成丢包、重复收包、无序等问题。然而,丢包对不要求高数据精度的状态数据和视频数据影响不大。因为不断会收到新的包,一些丢失的包会被新的包覆盖,所以只需要处理远程控制系统通信部分的乱序和重复包的问题,而丢包的问题一般不处理。但是对于需要准确收发的命令包,可以在程序开发中加入丢包重传和超时丢弃。当然,如果我们正在开发实时性要求较低的基于事件的控制命令的传输,如果不想命令丢失,可以直接采用TCP协议。TCP的重传机制正好适合这种情况。

非面向连接的传输协议在数据传输之前不建立连接,而是在每个中间节点路由非面向连接的数据包和数据分组。如果没有点对点连接,非面向连接的协议(如UDP)是不可靠的连接。当一个UDP数据包在网络中移动时,发送过程不知道它是否已经到达目的地,除非应用层已经确认它已经到达的事实。非面向连接的协议无法检测重复和无序的数据包。标准技术术语使用“不可靠”来描述UDP。在现代网络中,UDP不容易导致传输失败,但你不能肯定地说它是可靠的。

TCP和UDP都是传输层的协议!

示例:应用层(QQ)物理连接层各自协议使用的常用端口:如http、https、tcp、udp、ftp等。

TCP:

FTP:21、Telnet:23、SMTP:25

UDP:

DNS:53、TFTP:69、SNMP:161、RIP:520

https:

http:80

简单来说,TCP协议传输可靠,而UDP协议传输在少量数据传输速度上有优势,尽管前者是面向连接和非面向连接的,在不同的传输环境下优势不同。

更多资讯
游戏推荐
更多+