IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> TCP和UDP各自特点与区别 -> 正文阅读

[网络协议]TCP和UDP各自特点与区别

TCP协议的特点

1、面向连接的传输层协议;在数据传输之前发送方和接收方先建立连接,三次握手就是建立连接的过程,四次挥手时销毁连接的一个过程。
2、可靠性传输;数据传输无差错,不重复,不丢失,按序到达。
3、每一条tcp连接只能有两个端点(socket套接字),即点到点。
4、全双工通信;通信双方的应用进程随时都可以向对方发送数据,因为两端都设有发送和接收缓存。
(全双工:同一时刻A可以发给B,B也可以发给A;半双工:A发给B的时候,B不能发给A,B发给A时同理)。
5、面向字节流;发送方发送的数据块和接收方接收到的数据块大小个数可能不等。发送方可以一次发送100字节,而接收方一次可以一次接收10字节,分十次接收;发送方也可以发送十次,一次发送10字节,而接收方一次接收完100字节。(但是发送的数据量不能超过接收方的接收缓存,否则会丢弃)

UDP是面向报文的,接收方一次只能接收一个报文,报文不能拆分不能合并。这个区别和两者的通信方式有关,对于TCP来说,通信前建立了连接,所以通信过程中可以知道是同一个发送方发送的数据,那每次读取多少数据都可以,只要保证有序就行;而UDP是无连接的,同时可以有多台主机发送数据,如果一次可以读取超过一个的报文,那这些报文可能来自不同的主机,那这些数据就是无意义的。

TCP可靠性的原理(慢开始,避免拥塞,快重传,快恢复)

1、通信双方建立连接,传输信道无差错,保证数据的准确性
2、接收方总能及时处理接收到的数据

解释:首先,通信双方通过三次握手建立连接,四次挥手断开连接,保证了传输信道的可靠;采用ARQ协议(超时重传协议)保证了传输数据的正确性。其次,采用了滑动窗口协议来进行流量控制,避免拥塞,确保接收方能够及时处理接受到的消息。

滑动窗口协议:窗口有固定的数据块个数,左边是已发送已ACK确认的,窗口里是已发送未ACK的和待发送的,窗口右边是未发送的,窗口里最左边开始按序,收到ACK确认窗口就向右滑动,个数固定,所以确认几个就滑动几个,如果最左边一直未收到确认,发送方就一直等待,最多发送完窗口内的所有待发送数据块,一直等到收到ACK确认,再向右滑动。这中间又有超时重传协议来解决丢包问题。

UDP协议的特点

1、无连接的传输层协议;
2、可靠性差,速度快(尽最大努力交付,不保证可靠交付)
3、面向报文,对应用层交下来的报文,不拆分,不合并,保留报文边界;
4、支持一对一,一对多,多对多通信;
5、没有拥塞控制,即使出现拥塞也不会降低发送速率;
6、首部开销小,只有8字节;

TCP和UDP的区别

1、TCP面向连接,UDP无连接;
2、TCP面向字节流,UDP面向报文;
3、TCP是可靠传输,UDP传输不可靠;
4、UDP传输速度比TCP更快;
5、TCP不保留报文边界,UDP保留报文边界;
6、TCP首部大,有20字节,UDP首部只有8字节;
7、TCP有流量控制和拥塞控制,UDP没有;
8、TCP是重量级协议,UDP是轻量级协议;

基于TCP的协议:Http,Https,FTP,SMTP(简单邮件传输协议),Telnet
基于UDP的协议:DNS,DHCP,TFTP,SNTP(简单网络管理协议)

QQ采用TCP和UDP,qq通话和视频通话,发视频都采用UDP

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-08-07 12:25:58  更:2021-08-07 12:28:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/3 6:36:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码