计算机网络
网络协议
ICMP协议
ICMP协议(Internet Control Message Protocol)Internet控制报文协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。 核心是“反馈网络状态、排查通信故障”、而非“传输业务数据”。
ICMP协议的主要功能
1.询问报告
常见的ping命令,通常用于测试目标主机是否可达。
2.差错报告
常用的traceroute 命令(linux系统下)(Windows 系统下是tracert命令) ,定位计算机和目标计算机之间的所有路由器
当IP数据报在传输过程中发生错误时,会向源主机发送差错报告。常见的差错报告包括“目的主机不可达”、“超时”等。
DNS协议
DNS协议(Domain Name System)域名系统,用于将域名转换为IP地址。
域名
由一串用点分隔的字符串组成,用于标识互联网上的计算机或其他资源。如www.baidu.com 域名的类别有以下几种: 1.一级域名(TLD):如.com、.org、.net等。 2.二级域名(SLD):如www、mail、ftp等。 3.三级域名(子域名):如blog、shop等。
DNS协议的主要功能
1.域名解析
当用户在浏览器中输入一个域名时,浏览器会向DNS服务器发送一个查询请求,DNS服务器会返回该域名对应的IP地址。
2.域名反向解析
当用户在浏览器中输入一个IP地址时,浏览器会向DNS服务器发送一个查询请求,DNS服务器会返回该IP地址对应的域名。
3.域名缓存
为了提高域名解析的效率,DNS服务器会缓存最近解析过的域名和IP地址的映射关系。
域名解析会先在本地C:\Windows\System32\drivers\etc\hosts中查找,如果没有找到,才会向DNS服务器发送查询请求。
CDN:内容分发网络
CDN(Content Delivery Network)内容分发网络,是指将网站的内容分发到多个服务器上,以提高网站的访问速度。 CDN的工作原理是:当用户请求访问一个网站时,CDN会根据用户的位置,将请求转发到距离用户最近的服务器上。
CDN的主要功能
1.内容缓存
CDN会将网站的静态内容(如图片、视频、文件等)缓存到多个服务器上,当用户请求访问这些内容时,CDN会将缓存的内容返回给用户,而不是直接从源服务器上获取。
2.负载均衡
CDN会根据用户的位置和服务器的负载情况,将用户的请求转发到距离用户最近的服务器上。
3.故障转移
当某个服务器发生故障时,CDN会自动将用户的请求转发到其他可用的服务器上,以确保网站的 可用性。
网络通信模型
本质是对复杂网络“端到端通信“过程的标准化分层抽象框架。 同层次之间使用相同的协议,下层为上层提供服务。 网络模型就是进行“数据封装”和“数据解封”的过程。
OSI七层模型
1.物理层
2.数据链路层
3.网络层
4.传输层
5.会话层
6.表示层
7.应用层
TCP/IP模型
1.网络接口层(设备:中集器、集线器、双绞线等;协议:定义电缆、电压、线缆标准)
2.网络层(设备:二层交换机、网桥、以太交换机;协议:ARP协议、MAC协议、RARP协议)
3.传输层(设备:三层交换机、路由器;协议:ICMP协议、IP协议)
4.应用层(协议:HTTP协议、FTP协议、DNS协议等)
传输层协议和DOS攻击
TCP协议
TCP协议(Transmission Control Protocol)传输控制协议,是一种面向连接的、可靠的、基于字节流的传输层通信协议。 TCP协议的主要功能是: 1.建立连接 2.数据传输 3.连接释放 4.差错控制 5.流量控制
TCP工作机制
1.三次握手(可靠传输数据)
第一次握手:客户端发送一个SYN包到服务器,请求建立连接。
第二次握手:服务器收到SYN包后,发送一个SYN-ACK包给客户端,确认连接请求。
第三次握手:客户端收到SYN-ACK包后,发送一个ACK包给服务器,确认连接建立。
2.数据传输
3.四次挥手(确认数据传输完成)
第一次挥手:客户端发送一个FIN-ACK包到服务器,请求关闭连接。
第二次挥手:服务器收到FIN-ACK包后,发送一个ACK包给客户端,确认关闭请求。
第三次挥手:服务器发送一个FIN-ACK包给客户端,请求关闭连接。
第四次挥手:客户端收到FIN-ACK包后,发送一个ACK包给服务器,确认关闭连接。
UDP协议
UDP协议(User Datagram Protocol)用户数据报协议,是一种无连接的、不可靠的、基于数据报的传输层通信协议。 UDP协议的主要功能是: 1.数据传输 2.差错控制 3.流量控制
DOS攻击(拒绝服务攻击)
DOS 是单个攻击源发起的,耗尽目标资源使其无法提供正常服务的攻击。 DOS攻击的主要方式有以下几种: 1. SYN Flood攻击 攻击层面:传输层 特点:占满服务器的TCP连接资源,导致服务器无法正常响应其他请求。 2. ICMP(ping) Flood攻击 攻击层面:网络层 特点:海量 ICMP 包消耗服务器资源,导致服务器响应缓慢。 3. UDP Flood攻击 攻击层面:传输层 特点:海量垃圾包占满带宽,服务器盲目处理,导致服务器响应缓慢。 4. TCP Flood攻击 攻击层面:传输层 特点:占满服务器的TCP连接资源,导致服务器无法正常响应其他请求。
hping3
hping3 是一款功能强大的开源网络测试工具,基于命令行界面,主要用于生成和分析网络数据包,支持TCP、UDP、ICMP 等多种协议。
hping3 可以模拟不同的网络攻击,如 SYN Flood 攻击、UDP Flood 攻击等。
hping3 --flood -S --rand-source -p 80<目标IP地址>
--flood尽可能快的发送数据包。洪水攻击模式
-S设置 TCP SYN 标志位(用于 SYN 扫描或建立连接)。
--rand-source使用随机性的源头IP地址模拟分布式拒绝服务(DDoS)攻击。
-p指定目标端口(TCP/UDP 协议时使用)。
-d设置数据包数据部分大小(单位:字节,默认 32 字节)。
网络分析工具wireshark
Wireshark是一款开源抓包工具,也被称为网络嗅探器,用于分析网络流量和数据包。 它支持多种协议,包括TCP、UDP、ICMP、HTTP、HTTPS等。 Wireshark的主要功能是: 1.抓包 2.分析数据包 3.过滤数据包 4.显示数据包详情