TCP与UDP协议
TCP与UDP协议
一、TCP与UDP协议分析
1、TCP与UDP协议概述
TCP与UDP协议属于ISO第四层传输层协议。
传输层包括两大协议:TCP和UDP。
2、TCP和UDP协议的区别
TCP协议:面向连接服务,可靠传输数据、速度慢
UDP协议:无连接服务,UDP不可靠、速度快
3、TCP与UDP协议的共同作用:通过源与目标端口号,来完成进程到进程的通信。
二、TCP头部分析
源端口号:一般客户机的源端口号都是随机的,且一般都是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协议分析
UDP包头长度:8字节。
UDP长度字段:代表5+4层数据的总长度。
UDP校验和:校验整个数据段(五层数据+四层数据)。UDP唯一的可靠机制。
四、TCP三次握手连接
重点:SYN只有双方前2次握手为1,代表彼此要建立连接。
面试题:为什么TCP可靠?
答:因为TCP是面向连接服务,同时双方发送的每一个报文都有编号机制与确认重传机制,所以可以保证数据传输的可靠性。同时每个TCP协议的报文发送后,都会开启一个重传计时器,以便数据防止中途丢失而可以重传。
五、TCP四次握手断开连接
六、抓包分析
使用Win7下的科来软件抓telnet报文,分析三次握手连接,四次握手断开连接。
七、DDOS攻击
1、Denial of Service, DOS拒绝服务攻击。Hacker使用异常手段占满服务资源(带宽、内存、TCP会话、CPU等等),使服务器无法为正常用户提供服务。
缺点是需要占用攻击者的资源,杀敌一千、自损八百。
2、Distributed Denial of Service, DDOS分布式拒绝服务攻击
例如:
ICMP Flooding泛洪攻击,上千人同时ping -t l 65500,占满网卡的资源。
UDP Flooding泛洪攻击,实现流量攻击/实现cpu内存等资源攻击。
TCP SYN Flooding泛洪攻击,占用会话资源,也称为TCP半连接攻击。
攻击主要目标是WEB服务器。一般由防火墙做防护,原理就是防火墙收到TCP建立会话的报文后由防火墙返回一个SYN、ACK,如果对方没有回应,就认为这是一个半连接攻击,会进行处理。所以由防火墙过滤掉了这种攻击,不会占用服务器会话端口资源。
但防火墙也会被DDOS击垮。可以寻求运营商帮助抵挡DDOS攻击,在连接到公司外网入口的路由器端口进行抵挡,称为“流量清洗”。
4)Challenge Collapsar,CC攻击,攻击目标主要也是WEB服务器,属于TCP SYN攻击的升级版本,完成三次握手过程,非半连接。
5)Smurf flooding:攻击目标是路由器/交换机,防御方法路由器、交换机上的Smurf服务关闭。
泛洪:Flooding
八、DDOS攻击实验
本实验必须在虚拟环境中练习!除非有渗透授权,客户要求做压力测试。
实验一、
实验环境:WIN7, dotNetFx40环境(.net framework),或者WIN10。
实验软件:WIN7需要安装dotNetFx40搭建环境,然后使用LOIC-1.0.8软件。
LOIC软件支持TCP SYN FLooding、UDP Flooding、CC 攻击。
实验二、
实验环境:Kali
实验软件:pentmenu,DOS攻击的Bash脚本,可在github上下载。