linux:网络专题

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)
    功能:传输原始的比特流(01),定义了硬件接口和电气信号。
    常见协议和技术:以太网(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 攻击。这个阶段攻击者向服务器发送伪造的连接请求,消耗服务器资源,使其无法处理合法的连接请求
posted @   kyle_7Qc  阅读(10)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示