TCP和UDP有什么区别?TCP/UDP协议说明
TCP是一种基于连接的协议。在正式发送和接收数据之前,必须与对方建立可靠的联系。UDP协议是与TCP相对应的协议。它是一种面向非连接的协议,直接发送数据包,不需要与对方建立连接。如果用户对概念不太了解,可以阅读以下内容,了解TCP和UDP的区别。
先说说TCP协议:
1.理解:窗口和滑动窗口TCP的流量控制
TCP使用窗口机制进行流量控制。当建立连接时,每一端分配一个缓冲区来存储接收到的数据,并将缓冲区的大小发送给另一端。接收方发送的确认消息包含自己剩余的缓冲区大小。剩余的缓冲空间量称为窗口。
2.TCP的流量控制过程:
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协议为什么会共存?
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协议传输在少量数据传输速度上有优势,尽管前者是面向连接和非面向连接的,在不同的传输环境下优势不同。
版权声明:TCP和UDP有什么区别?TCP/UDP协议说明是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。