热门课程

免费试听

上课方式

开班时间

当前位置: 首页 -   文章 -   新闻动态 -   正文

tcp、udp 的区别及 tcp 三次握手,syn 攻击?

知了堂姐
2024-07-08 17:22:16
0

(1)tcp、udp 区别

TCP 的优点:

可靠,稳定

TCP 的可靠体现在 TCP 在传递数据之前,会有三次握手来建立连接,而且在数 据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接 用来节约系统资源。

TCP 的缺点: 慢,效率低,占用系统资源高,易被攻击

TCP 在传递数据之前,要先建连接,这会消耗时间,而且在数据传递时,确认机制、重传机制、拥塞控制机制等都会消耗大量的时间,而且要在每台设备上维护

所有的传输连接,事实上,每个连接都会占用系统的 CPU、内存等硬件资源。

而且,因为 TCP 有确认机制、三次握手机制,这些也导致 TCP 容易被人利用,

实现 DOS、DDOS、CC 等攻击。

UDP 的优点:

快,比 TCP 稍安全

UDP 没有 TCP 的握手、确认、窗口、重传、拥塞控制等机制,UDP 是一个无状

态的传输协议,所以它在传递数据时非常快。没有 TCP 的这些机制,UDP 较 TCP

被攻击者利用的漏洞就要少一些。但 UDP 也是无法避免攻击的,比如:UDP

Flood 攻击……

UDP 的缺点:

不可靠,不稳定

因为 UDP 没有 TCP 那些可靠的机制,在数据传递时,如果网络质量不好,就会

很容易丢包。

基于上面的优缺点,那么:

什么时候应该使用 TCP:

当对网络通讯质量有要求的时候,比如:整个数据要准确无误的传递给对方,这

往往用于一些要求可靠的应用,比如 HTTP、HTTPS、FTP 等传输文件的协议,

POP、SMTP 等邮件传输的协议。

在日常生活中,常见使用 TCP 协议的应用如下:

浏览器,用的 HTTPFlashFXP,用的 FTP

Outlook,用的 POP、SMTP

Putty,用的 Telnet、SSH

QQ 文件传输

什么时候应该使用 UDP:

当对网络通讯质量要求不高的时候,要求网络通讯速度能尽量的快,这时就可以

使用 UDP。

比如,日常生活中,常见使用 UDP 协议的应用如下:

QQ 语音

QQ 视频

TFTP

(2)TCP 握手协议

在 TCP/IP 协议中,TCP 协议提供可靠的连接服务,采用三次握手建立一个连接。

第一次握手:建立连接时,客户端发送 syn 包(syn=j)到服务器,并进入

SYN_SEND 状态,等待服务器确认;

第二次握手:服务器收到 syn 包,必须确认客户的 SYN(ack=j+1),同时自

己也发送一个 SYN 包(syn=k),

即 SYN+ACK 包,此时服务器进入 SYN_RECV 状态;

第三次握手:客户端收到服务器的 SYN+ACK 包,向服务器发送确认包

ACK(ack=k+1),此包发送完毕,客户端和服务器进入 ESTABLISHED 状态,完成三次握手。

完成三次握手,客户端与服务器开始传送数据,在上述过程中,还有一些重要的

概念:

未连接队列:在三次握手协议中,服务器维护一个未连接队列,该队列为每个客

户端的 SYN 包(syn=j)开设一个条目,

该条目表明服务器已收到 SYN 包,并向客户发出确认,正在等待客户的确认包。

这些条目所标识的连接在服务器处于 Syn_RECV 状态,

当服务器收到客户的确认包时,删除该条目,服务器进入 ESTABLISHED 状态。

backlog 参数:表示未连接队列的最大容纳数目。

SYN-ACK 重传次数 服务器发送完 SYN-ACK 包,如果未收到客户确认包,

服务器进行首次重传,等待一段时间仍未收到客户确认包,

进行第二次重传,如果重传次数超过系统规定的最大重传次数,系统将该连接信

息从半连接队列中删除。注意,每次重传等待的时间不一定相同。

半连接存活时间:是指半连接队列的条目存活的最长时间,也即服务从收到 SYN

包到确认这个报文无效的最长时间,

该时间值是所有重传请求包的最长等待时间总和。有时我们也称半连接存活时间

为 Timeout 时间、SYN_RECV 存活时间。

(3)SYN 攻击原理

SYN 攻击属于 DOS 攻击的一种,它利用 TCP 协议缺陷,通过发送大量的半连

接请求,耗费 CPU 和内存资源。

SYN 攻击除了能影响主机外,还可以危害路由器、防火墙等网络系统,事实上

SYN 攻击并不管目标是什么系统,只要这些系统打开 TCP 服务就可以实施。从上图可看到,服务器接收到连接请

求(syn=j),

将此信息加入未连接队列,并发送请求包给客户(syn=k,ack=j+1),此时进入

SYN_RECV 状态。

当服务器未收到客户端的确认包时,重发请求包,一直到超时,才将此条目从未

连接队列删除。

配合 IP 欺骗,SYN 攻击能达到很好的效果,通常,客户端在短时间内伪造大量

不存在的 IP 地址,

向服务器不断地发送 syn 包,服务器回复确认包,并等待客户的确认,由于源

地址是不存在的,

服务器需要不断的重发直至超时,这些伪造的 SYN 包将长时间占用未连接队列,

正常的 SYN 请求被丢弃,

目标系统运行缓慢,严重者引起网络堵塞甚至系统瘫痪。

大家都在看

原来成都藏有这么多家NB公司

2024-07-08 浏览次数:0

渗透测试培训班出来的好找工作么?

2024-07-08 浏览次数:0

鸿蒙应用开发工程师好找工作吗?鸿蒙开发工程师招聘...

2024-07-08 浏览次数:0

java程序员烂大街了吗?Java程序员现状解析

2024-07-08 浏览次数:0

美用量子攻击中国网络,如何预防美阴招

2024-07-08 浏览次数:0

快速了解分布式消息技术Kafka

2024-07-08 浏览次数:0
最新资讯