TCP与UDP特性与区别

news/2024/5/17 17:39:11 标签: udp, tcp, 数据

#1.TCP特性
点到点,全双工,可靠有序的字节流,面向连接,且存在流量和拥塞控制。
##1.1.TCP的优点
可靠,稳定。
TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资源。
##1.2.TCP的缺点
慢,效率低,占用系统资源高,易被攻击。
TCP在传递数据之前,要先建连接,这会消耗时间,而且在数据传递时,确认机制、重传机制、拥塞控制机制等都会消耗大量的时间,而且要在每台设备上维护所有的传输连接,事实上,每个连接都会占用系统的CPU、内存等硬件资源。而且,因为TCP有确认机制、三次握手机制,这些也导致TCP容易被人利用,实现DOS、DDOS、CC等攻击。
#2.UDP特性
无连接,系统开销小快速。主要应用于对丢包容忍较大,速率敏感的场景。
##2.1.UDP的优点
快速,系统消耗低,比TCP稍安全。
UDP没有TCP的握手、确认、窗口、重传、拥塞控制等机制,UDP是一个无状态的传输协议,所以它在传递数据时非常快。没有TCP的这些机制,UDP较TCP被攻击者利用的漏洞就要少一些。但UDP也是无法避免攻击的,比如:UDP Flood攻击。
##2.1.UDP的缺点
不可靠,不稳定。
因为UDP没有TCP那些可靠的机制,在数据传递时,如果网络质量不好,就会很容易丢包。

#3.TCP与UDP的区别:
1.连接性:TCP面向连接;UDP是无连接的。(TCP需要三次握手,而UDP不需要握手)

2.可靠性:TCP提供可靠的服务;UDP尽最大努力交付,即不保证可靠交付。(通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP则可能出现丢包,不保证顺序到达)

3.面向对象:TCP面向字节流;UDP是面向报文的。( 面向报文的是指发送方的UDP对应用层交下来的数据报文,不合并不拆分,只是在其上面加上首部后就交给了下面的网络层。)。
举个例子:
   发送方使用TCP协议先发送 100个字节的包1,再发送10个字节的包2;等待2秒后,接收方只需要接收一次就能能将数据(110字节)接收下来。
   发送方使用UDP协议先发送 100个字节的包1,再发送10个字节的包2;等待2秒后,接收方必须要接收两次才能将包1(100字节)和包2(10字节)分别接收。
  
4.差错拥塞控制:UDP没有差错和拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低。(TCP拥塞控制,当另一端出现阻塞时,会降低发送速率)。

5.系统开销:TCP首部开销20字节(具有报文段序号,应答序号,窗口大小等);UDP的首部开销小,只有8个字节(2个字节的源端口,2个字节的目的端口,2个字节的报文长度,2个字节的校验和)。
    
6.信道:TCP的逻辑通信信道是全双工的可靠信道,即可以流入也可以流出的信道;UDP则是不可靠信道。

7.有序性:TCP是有序的字节流;UDP则是无序的。(这是由于tcp头部存在报文段的序号,而udp没有)

http://www.niftyadmin.cn/n/1336097.html

相关文章

利用Kismet进行无线网络探测

Kismet 是一款工作在 802.11 协议第二层的无线网络检测、嗅探、干扰工具,是一个基于Linux的无线网络扫描程序。它可以工作在支持raw 监控模式的所有无线网卡上。虽说Kismet也可以捕获网络上的数据通信,但还有其他更好的工具使用(如Airodump),…

Flutter | 状态管理拓展篇——RxDart(四)

前言 在前一篇文章向大家介绍了一种新的状态管理方式——BLoC,它在分离我们的ui逻辑与业务逻辑上表现十分优秀。但是在最后我们发现了一个问题。 bloc是一个典型的观察者模式,我们以counter bloc举例,在A,B页面都存在观察者,它们监…

socket套接字选项

本文写作背景基于对多网卡的配置&#xff0c;要求实现多个网卡同时上网&#xff0c;并且能指定 仅针对linux下的socket选项进行整理分析。 SOL_SOCKET 1SO_DEBUG:启用套接字调试,只允许具备CAP_NET_ADMIN权限或有效进程ID为0的进程使用 SO_REUSEADDR:<1>允许启动一个监听…

Linux多网卡研究记录

背景: 服务器采用ubuntu16.04; 协议hls和udp; 网卡:bond0,enp3s0,enp4s0f0 目标要求: 实现使用指定网卡接收指定流 应用场景: 多个网卡直接连接多台设备; 多个网卡直接连接多个路由器; 服务器多网卡数据扩容; 1.route 策略路由东西太多&#xff0c;先省略 2.多网卡绑定bond…

Apache Kylin 入门 5 - 构建 Cube

Apache Kylin 入门系列目录 Apache Kylin 入门 1 - 基本概念Apache Kylin 入门 2 - 原理与架构Apache Kylin 入门 3 - 安装配置参数详解Apache Kylin 入门 4 - 构建 ModelApache Kylin 入门 5 - 构建 CubeApache Kylin 入门 6 - 优化 Cube基于 ELKB 构建 Kylin 查询时间监控页面…

Httprecon 使用说明

该工具是web server的fingerprint,类似httprint&#xff0c;用来识别web服务器。作为开源软件&#xff0c;现在更新到7.3版。该工具可能成为一项需求脆弱性分析(例如准备开发的产品有关的漏洞)。一个先进的指纹识别软件就像httprecon不依赖于简单的旗帜的公告分析软件。管理员或…

mysql_pwd_crack 使用说明

mysql密码暴力破解工具&#xff0c;支持远程破解。使用CLI指令。 usage : mysql_pwd_crack [ip] [options] options: -u username specify the username of mysql -x port specify the port of mysql -p password specify the password of mysq…

密码破解之王:Ophcrack彩虹表(Rainbow Tables)原理详解+120G彩虹表下载

(分享)密码破解之王&#xff1a;Ophcrack彩虹表(Rainbow Tables)原理详解120G彩虹表下载 转自&#xff1a;http://hi.baidu.com/zzmzzma/item/fcd9eefc334a2514ff3582d2 彩虹表&#xff08;Rainbow Table&#xff09;是一种破解哈希算法的技术&#xff0c;是一款跨平台密码破…