1.你工作中了解哪些缓存技术?最少三种
Redis
CDN
浏览器缓存
Linux的buffer(缓冲)和cache(缓存)
2.你用过哪些抓包技术?最少两种?
wireshark
tcpdump
3.tcpdump如何抓取eth0接口的icmp报文?
tcpdump 是一个强大的网络包分析工具,用于捕获和显示经过网络接口的网络数据包。它常用于故障排除、网络监控和安全分析等任务。
tcpdump -i eth0
-i eth0:指定要监听的网络接口(在此例中为 eth0)。
icmp指定要过滤的协议类型(在此例中为 ICMP)
基本用法
1.捕获指定接口上的数据包
tcpdump -i <interface>
例如,捕获 eth0 接口上的数据包:
tcpdump -i eth0
2.捕获指定协议的数据包
捕获 ICMP 数据包
tcpdump -i eth0 icmp
捕获 TCP 数据包
tcpdump -i eth0 tcp
捕获 UDP 数据包
tcpdump -i eth0 udp
3.过滤特定主机的流量
捕获来自某个 IP 的数据包
tcpdump -i eth0 src <IP_ADDRESS>
捕获发往某个 IP 的数据包
tcpdump -i eth0 dst <IP_ADDRESS>
捕获特定主机的流量
tcpdump -i eth0 host <IP_ADDRESS>
4. 指定捕获端口
捕获某个端口的数据包
tcpdump -i eth0 port <PORT_NUMBER>
5. 保存捕获的数据包到文件
将捕获的数据包保存到文件
tcpdump -i eth0 -w <filename>.pcap
读取文件中的数据包
tcpdump -r <filename>.pcap
6. 显示更详细的信息
增加输出详细程度
tcpdump -i eth0 -v
更详细的输出
tcpdump -i eth0 -vv
最详细的输出
tcpdump -i eth0 -vvv
7. 限制捕获的数据包数量
捕获前 N 个数据包
tcpdump -i eth0 -c <N>
示例命令
捕获所有 ICMP 数据包
tcpdump -i eth0 icmp
捕获源 IP 为 192.168.1.1 的 TCP 数据包
tcpdump -i eth0 tcp and src 192.168.1.1
捕获指定端口(如 80)的流量
tcpdump -i eth0 port 80
捕获并保存数据包到文件
tcpdump -i eth0 -w capture.pcap
4.TCP协议的监听端口范围是多少?为什么是这个范围?
0-65535【tcp协议端口占用2bytes,16位,所以 2的16次方是65536】
5.简单陈述下OSI七层模型?各层的协议?
OSI 七层模型(开放系统互联模型)是一个用于理解网络通信过程的分层模型,定义了网络协议的标准化结构。以下是七层模型的每一层及其常见协议:
物理层(Physical Layer)
功能:传输原始的比特流(0 和 1),定义了硬件接口和电气信号。
常见协议和技术:以太网(Ethernet)、USB、DSL、光纤、Wi-Fi。
数据链路层(Data Link Layer)
功能:提供节点间的可靠通信,通过物理地址(如 MAC 地址)确保数据在同一网络上的正确传输。
常见协议:以太网(Ethernet)、Wi-Fi(IEEE 802.11)、PPP(点对点协议)、帧中继 (Frame Relay)。
网络层(Network Layer)
功能:负责数据包的路由和转发,通过逻辑地址(如 IP 地址)在不同网络之间进行通信。
常见协议:互联网协议(IP)、ICMP(互联网控制消息协议)、路由协议(如 OSPF、BGP)。
传输层(Transport Layer)
功能:提供端到端的通信服务,确保数据的完整性和顺序。支持错误检测和修正。
常见协议:传输控制协议(TCP)、用户数据报协议(UDP)。
会话层(Session Layer)
功能:管理会话的建立、维护和终止,协调应用程序之间的对话。
常见协议:NetBIOS、RPC(远程过程调用)、SMTP(简单邮件传输协议)的会话管理部分。
表示层(Presentation Layer)
功能:处理数据格式的转换、加密和解密,确保不同系统之间的数据可读性。
常见协议:JPEG、MPEG、TLS(传输层安全)、SSL(安全套接字层)。
应用层(Application Layer)
功能:提供用户接口和应用服务,直接与应用程序交互。
常见协议:HTTP(超文本传输协议)、FTP(文件传输协议)、SMTP(简单邮件传输协议)、DNS(域名系统)。
6.简单陈述TCP和UDP的区别,常见的UDP协议应用有哪些?
相同点
传输层协议:TCP 和 UDP 都是位于 OSI 模型的传输层,用于在网络中传输数据。
端口号:两者都使用端口号来区分不同的应用程序和服务。
不同点
连接性:
TCP:面向连接,需要在数据传输前建立连接,并在结束后断开连接。
UDP:无连接,数据可以直接发送,无需建立连接。
可靠性:
TCP:提供可靠的数据传输,确保数据包按顺序到达,并进行错误检测和纠正。
UDP:不保证数据的可靠性,数据包可能会丢失、重复或乱序到达。
流量控制:
TCP:具有流量控制和拥塞控制机制,调整数据发送速率,防止网络拥堵。
UDP:没有流量控制和拥塞控制机制,数据发送速度不受限制。
开销:
TCP:由于连接管理和可靠性保证,开销较大。
UDP:开销较小,适合对实时性要求高的应用。
顺序保证:
TCP:确保数据包按照发送顺序到达接收端。
UDP:不保证数据包的顺序。
常见的 UDP 协议应用
DNS(域名系统):用于将域名解析为 IP 地址,通常使用 UDP 以提高查询速度。
DHCP(动态主机配置协议):用于动态分配 IP 地址给网络中的设备,使用 UDP 进行广播通信。
VoIP(语音通信协议):如 SIP(会话发起协议)和 RTP(实时传输协议),用于实时语音通信,对延迟敏感,适合使用 UDP。
视频流和音频流:如视频会议、直播流媒体,UDP 能够更好地处理实时数据流,尽管可能会丢失一些数据包,但对延迟的控制更有利。
在线游戏:许多在线游戏使用 UDP 进行数据传输,以减少延迟,提高实时性,即使这可能导致一些数据丢失。
7.简单陈述TCP三次握手?四次挥手?为什么是建立连接要三次,断开四次
三次握手:
客户端 -> 服务端
一问:客户端 -> 服务端 客户端:发出建立连接的请求(标记SYN ,seq(随机数)seq=666)
一答:服务端 -> 客户端 服务端收到请求,同意建立连接;确认标记:ACK,建立连接SYN
ack =seq +1 (667确认号)(为了稳定,稳妥) seq=999
一确认:客户端 -> 服务端 客户端:收到你的回复(确认)那就建立连接(ACK)
ack =seq +1 (1000确认号)(为了稳定,稳妥)seq=ack(667)
建立连接传输数据
为什么是三次握手?
第一次握手:客户端发起连接请求,通知服务器准备建立连接,并开始同步初始序列号。
第二次握手:服务器响应连接请求,确认连接请求并发送自己的序列号。
第三次握手:客户端确认服务器的序列号,并完成连接的建立。
四次挥手:
1:客户端:发出断开连接请求:(FIN)断开连接请求, seq=1000 ack=668
2:服务端:收到客户端请求,确认:(ACK),确认断开, seq=668 ack=seq+1(1001)
3:服务端:向客户端发出断开连接请求,(FIN)断开连接请求,seq=668 ack=seq+1(1001)
4:客户端:确认收到请求,断开连接,(ACK)确认收到请求,seq=1001ack=seq+1(669)
5:连接断开
为什么是四次挥手?
第一次挥手:客户端发送 FIN 包,表示它不再发送数据,但可能仍会接收数据。
第二次挥手:服务器确认客户端的 FIN 包,告诉客户端它已收到断开连接的请求,并继续处理未完成的数据。
第三次挥手:服务器发送自己的 FIN 包,表示它也准备断开连接,且没有更多数据要发送。
第四次挥手:客户端确认服务器的 FIN 包,表示客户端已收到断开连接的请求,连接关闭完成。
四次挥手的目的是确保双方都完成数据传输并且正确关闭连接。由于 TCP 连接是全双工的(即每个方向都可以独立关闭),因此需要在每个方向上分别发送和确认 FIN 包,从而确保每个方向的数据都能正确地传输完毕并关闭。
总结 --》这种设计保证了连接的可靠性和数据传输的完整性。
三次握手:用于建立一个可靠的连接,确保双方都能同步序列号和确认彼此的存在。
四次挥手:用于优雅地断开连接,确保双方都完成了数据传输,并正确地关闭了连接。
8.建立TCP三次握手期间,在哪个节点可能会发起攻击
第一次握手:攻击者可能伪造客户端发送大量的 SYN 包,造成 SYN Flood 攻击。这个阶段攻击者向服务器发送伪造的连接请求,消耗服务器资源,使其无法处理合法的连接请求
标签:UDP,专题,数据包,网络,eth0,tcpdump,连接,客户端
From: https://www.cnblogs.com/kyle-7Qc/p/18431415