TCP与UDP协议

TCP与UDP协议

一、TCP与UDP协议分析

1、TCP与UDP协议概述

TCP与UDP协议属于ISO第四层传输层协议。

传输层包括两大协议:TCP和UDP。

2、TCP和UDP协议的区别

TCP协议:面向连接服务,可靠传输数据、速度慢

UDP协议:无连接服务,UDP不可靠、速度快

3、TCP与UDP协议的共同作用:通过源与目标端口号,来完成进程到进程的通信。

二、TCP头部分析

UJ1D81.png

源端口号:一般客户机的源端口号都是随机的,且一般都是50000以上!

目标端口号:一般服务器上的目标端口号都是固定的,如80、443、23、53。

端口号范围:0-65535 0与65535有特殊用途,一般1-65534可用(1-1024区间基本被国际标准组织ISO占用分配给了固定的服务器)。

序号:seq随机生成的数据包的编号。

确认号:ack确认已完整收到TCP数据包,会回复一个包,确认号为序号+1。如果回复确认号还是为序列号,说明收到的数据包不完整。

首部长度:20-60字节。

保留:保留待开发。

六位控制位:

1
2
3
4
5
6
URG: urgen,紧急位。 1,有紧急数据,需要根据紧急指针将包中紧急数据优先推送。 0,无紧急数据。
ACK: 确认控制位。 1,确认号有效。 0,确认号无效。
PSH: push,推送位。 1,上层有数据。 0,上层无数据。
RST: Reset,重置位。 1,请求非正常断开,强制断开。
SYN: 建立连接位。 1,请求和同意建立连接。只有初始状态建立连接时前两个报文为1。
FIN: 断开连接位。 1,请求断开连接。

窗口大小:用来做流量控制,限制最大一次可接受的数据量。类似水龙头。

校验和:校验整个数据段(五层数据+四层数据)。

紧急指针:有紧急数据(紧急位URG为1),需要根据紧急指针将包中紧急数据优先推送。

三、UDP协议分析

UJUsBt.png

UDP包头长度:8字节。

UDP长度字段:代表5+4层数据的总长度。

UDP校验和:校验整个数据段(五层数据+四层数据)。UDP唯一的可靠机制。

四、TCP三次握手连接

UJDvvD.png

重点:SYN只有双方前2次握手为1,代表彼此要建立连接。

面试题:为什么TCP可靠?

答:因为TCP是面向连接服务,同时双方发送的每一个报文都有编号机制与确认重传机制,所以可以保证数据传输的可靠性。同时每个TCP协议的报文发送后,都会开启一个重传计时器,以便数据防止中途丢失而可以重传。

五、TCP四次握手断开连接

UYU0Mj.png

六、抓包分析

使用Win7下的科来软件抓telnet报文,分析三次握手连接,四次握手断开连接。

七、DDOS攻击

1、Denial of Service, DOS拒绝服务攻击。Hacker使用异常手段占满服务资源(带宽、内存、TCP会话、CPU等等),使服务器无法为正常用户提供服务。

缺点是需要占用攻击者的资源,杀敌一千、自损八百。

UYDTwd.png

2、Distributed Denial of Service, DDOS分布式拒绝服务攻击

例如:

  1. ICMP Flooding泛洪攻击,上千人同时ping -t l 65500,占满网卡的资源。

  2. UDP Flooding泛洪攻击,实现流量攻击/实现cpu内存等资源攻击。

  3. TCP SYN Flooding泛洪攻击,占用会话资源,也称为TCP半连接攻击。

​ 攻击主要目标是WEB服务器。一般由防火墙做防护,原理就是防火墙收到TCP建立会话的报文后由防火墙返回一个SYN、ACK,如果对方没有回应,就认为这是一个半连接攻击,会进行处理。所以由防火墙过滤掉了这种攻击,不会占用服务器会话端口资源。

​ 但防火墙也会被DDOS击垮。可以寻求运营商帮助抵挡DDOS攻击,在连接到公司外网入口的路由器端口进行抵挡,称为“流量清洗”。

4)Challenge Collapsar,CC攻击,攻击目标主要也是WEB服务器,属于TCP SYN攻击的升级版本,完成三次握手过程,非半连接。

5)Smurf flooding:攻击目标是路由器/交换机,防御方法路由器、交换机上的Smurf服务关闭。

泛洪:Flooding

UY20hj.png

八、DDOS攻击实验

本实验必须在虚拟环境中练习!除非有渗透授权,客户要求做压力测试。

实验一、

实验环境:WIN7, dotNetFx40环境(.net framework),或者WIN10。

实验软件:WIN7需要安装dotNetFx40搭建环境,然后使用LOIC-1.0.8软件。

LOIC软件支持TCP SYN FLooding、UDP Flooding、CC 攻击。

UYOzGt.png

实验二、

实验环境:Kali

实验软件:pentmenu,DOS攻击的Bash脚本,可在github上下载。

https://github.com/GinjaChris/pentmenu

UtEHQe.png

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器