抓包分析DSCP字段在FTP/RSTP协议中的应用

这篇具有很好参考价值的文章主要介绍了抓包分析DSCP字段在FTP/RSTP协议中的应用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

抓包分析DSCP字段在FTP协议中的应用

简介

本文介绍DSCP字段的作用,以及抓包分析DSCP字段在FTP协议中的应用。最后通过实验证明有可能DSCP字段实际上对普通用户没啥用,原因是运营商可能会将用户设置的DSCP字段重置。

DSCP

IP报文中有个TOS字段 ,TOS字段(Type of Service)是IP报文头部中的一个8位字段,用于指定IP数据包的服务类型或优先级。它可以用来指定数据包的延迟、吞吐量、可靠性或成本等方面的要求,以支持网络质量的不同需求。TOS字段已经被DSCP字段(Differentiated Services Code Point)所取代。

DSCP(Differentiated Services Code Point)是IP报文头部中的一个6位字段,用于指定IP数据包的服务类型或优先级。它可以用来指定数据包的延迟、吞吐量、可靠性或成本等方面的要求,以支持网络质量的不同需求。

DSCP字段可以组合成不同的服务等级(Service Level Agreement,SLA),以满足不同应用的需求。例如,视频应用需要低延迟和高带宽,而文件传输应用则需要高吞吐量和较低的成本。DSCP可以通过路由器、交换机等网络设备进行流量分析和分类,以实现不同服务等级的流量控制和优先级处理。

FTP协议中的DSCP

FTP协议中一般使用21端口传输控制指令,20端口传输数据。虽然FTP协议标准本身并没有规定各种数据包的优先级,但是按道理将传输指令的优先级应该较高,而传输数据的优先级较低,所以笔者猜想可能部分FTP实现会将传输控制的DSCP优先级设置得高一些。下面通过具体抓包分析验证下这个猜想。

下述实验所抓数据可在这里下载:linux和windows下分别wireshark抓包ftp协议

Linux下抓包

  • 服务端:vsftpd
  • 客户端: ftp命令

通过实际抓包发现,FTP request的DSCP为4,FTP data的DSCP为2,FTP Response的DSCP为0。
抓包分析DSCP字段在FTP/RSTP协议中的应用,计算机网络,网络,QOS,DSCP
看起来像是印证了笔者的猜想:指令的优先级的确比数据优先级高。
但是,真的是所有的FTP实现都是如此吗?我们接下来再看windows下的抓包情况。

windows下抓包

  • 服务端: windows自带的FTP服务
  • 客户端: MobaXterm
    抓包分析DSCP字段在FTP/RSTP协议中的应用,计算机网络,网络,QOS,DSCP
    通过抓包发现,windows下FTP的各种报文中的DSCP值都为默认值0。

RSTP协议中的DSCP

笔者又抓包发现RSTP协议中的指令等各种报文的DSCP的值也都是0.
抓包分析DSCP字段在FTP/RSTP协议中的应用,计算机网络,网络,QOS,DSCP

真实场景下的DSCP

进一步地想,DSCP在实际用户场景中真的有作用吗?如果有作用的话,那我将我所有业务数据报文中的DSCP值都设为最高,是不是就可以保证我的数据在互联网中都以最高的优先级传输?那岂不是所有人都会将自己的数据包的优先级设置得很高?怀着这些疑问,笔者又进行了以下实验。文章来源地址https://www.toymoban.com/news/detail-715451.html

  1. 在腾讯云服务器上启动一个服务端,用于接收数据。代码如下:
import socket

HOST = '0.0.0.0'  # 绑定所有可用的网络接口
PORT = 8080  # 监听的端口号

# 创建一个 TCP 套接字
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
    # 绑定到指定的地址和端口
    s.bind((HOST, PORT))
    # 开始监听传入的连接
    s.listen()

    print(f'正在监听 {HOST}:{PORT}')

    while True:
        # 等待连接
        conn, addr = s.accept()
        print(f'已连接 {addr}')

        with conn:
            while True:
                # 接收数据
                data = conn.recv(1024)
                if not data:
                    break  # 如果没有数据了,退出循环

                # 处理数据
                print(f'接收到的数据: {data}')
                response = b'Hello, client!'

                # 发送响应
                conn.sendall(response)
  1. 在本地机器启动一个客户端,设置DSCP值并向上述服务端传送数据,代码如下:
use std::os::unix::prelude::AsRawFd;

use tokio::io::AsyncWriteExt;
use tokio::net::TcpStream;

#[tokio::main]
async fn main() {
    let mut client = TcpStream::connect("118.24.148.33:8080").await.unwrap();

    let dscp = 0x2E << 2; // DSCP为46(EF)
    nix::sys::socket::setsockopt(client.as_raw_fd(), nix::sys::socket::sockopt::IpTos, &dscp)
        .unwrap();

    let buf = [0; 10];

    // 发送
    client.write_all(&buf[..10]).await.unwrap();
}

  1. 抓包分析
    从上述代码中可以发现,客户端发出去时DSCP设置的是46,而笔者在服务端进行抓包却发现收到的报文中DSCP值却是26.
    抓包分析DSCP字段在FTP/RSTP协议中的应用,计算机网络,网络,QOS,DSCP
    由此可见,用户设置的DSCP可能根本没啥用。在中间的网络节点中会被重置为其他值。笔者猜测为运营商的路由器之类的会将所有出口流量的DSCP重置为某些值,毕竟你没有额外花钱,凭什么优先传输的你的消息?

一些参考

  • 目前互联网上部署的路由器对于DSCP的支持究竟如何?

到了这里,关于抓包分析DSCP字段在FTP/RSTP协议中的应用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • HNU-计算机网络-实验1-应用协议与数据包分析实验(Wireshark)

    计科210X 甘晴void 202108010XXX 通过本实验,熟练掌握Wireshark的操作和使用,学习对HTTP协议进行分析。 2.1 HTTP 协议简介 HTTP 是超文本传输协议 (Hyper Text Transfer Protocol)的缩写,用于WWW 服务。 (1)HTTP 的工作原理 HTTP 是一个面向事务的客户服务器协议。尽管HTTP 使用TCP 作为底层

    2024年02月06日
    浏览(40)
  • 【计算机网络-自顶向下方法】应用层(HTTP、FTP)

    1. Principles of network applications 创建一个网络应用   创建一个网络应用的核心,是编写一个分布式程序,使其可以运行在不同的端系统上,并能通过网络相互通信。(例如,web服务器软件与浏览器软件)   应用程序只运行在终端上(只在端系统上开发应用),应用程序员不

    2024年02月08日
    浏览(37)
  • 计算机网络实验2 HTTP 抓包分析

    实验目的 通过实验熟悉Wireshark 抓包软件的使用方法,理解有关 HTTP 协议的各方面内容。 实验内容 1. 在 windows 环境进行 Wireshark 抓包。 2. 理解基本 GET/response 交互, HTTP 数据包的格式。 3. 获取较长的 HTML 文件,分析其数据包。 4. 获取有嵌入对象的 HTML 文件,分析器数据包。

    2024年04月12日
    浏览(28)
  • 计算机网络大作业(Wireshark抓包分析)

    wireshark的深入学习与掌握,如过滤器的使用,归纳方法 通过实验阐述ARP的工作原理 利用实验结果分析 ICMP 协议的报文结构字段定义 基于实验数据深入分析 TCP 协议的连接过程原理,报文的分片等功能 从校园网发起向外网中某 Web 服务器的访问,记录并分析从 MAC 层协议、IP

    2024年02月02日
    浏览(34)
  • OSPF协议在通信网络中的应用分析及算法优化

    组播扩展OSPF OSPF(Open Shortest Path First开放式最短路径优先)是一个内部网关协议(Interior Gateway Protocol,简称IGP),用于在单一自治系统(autonomous system,AS)内决策路由。是对链路状态路由协议的一种实现,隶属内部网关协议(IGP),故运作于自治系统内部。著名的迪克斯加算法

    2024年02月07日
    浏览(31)
  • 接口协议之抓包分析 TCP 协议

    TCP 协议是在传输层中,一种面向连接的、可靠的、基于字节流的传输层通信协议。 环境准备 对接口测试工具进行分类,可以如下几类: 网络嗅探工具:tcpdump,wireshark 代理工具:fiddler,charles,anyproxyburpsuite,mitmproxy 分析工具:curl,postman,chrome Devtool 抓包分析TCP协议 tcpd

    2023年04月08日
    浏览(28)
  • 【抓包分析tcp协议】

    1、网络监听:TcpDump + WireShark(适用偏底层的协议分析) 2、代理Proxy(适用偏高层的协议分析,如http) ① 推荐工具:手工测试charles[全平台]、安全测试burpsuite[全平台java] ② 自动化测试:mitmproxy ③ 其他代理:fiddler[仅windows、AnyProxy[全平台] 3、协议客户端工具:curl、postman

    2024年02月07日
    浏览(33)
  • 抓包分析 TCP 协议

    TCP 协议是在传输层中,一种面向连接的、可靠的、基于字节流的传输层通信协议。 对接口测试工具进行分类,可以如下几类: 网络嗅探工具:tcpdump,wireshark 代理工具:fiddler,charles,anyproxyburpsuite,mitmproxy 分析工具:curl,postman,chrome Devtool tcpdump tcpdump 是一款将网络中传送

    2024年02月19日
    浏览(26)
  • 【计算机网络】IP协议与ICMP协议分析

    1、分析IP协议与IP数据报; 2、分析ICMP协议。 与因特网连接的计算机,操作系统为Windows,安装有Wireshark、IE或其他浏览器。 (1)在命令提示符中,利用ipconfig -all查看自己主机的ip及MAC地址,查看自己的网关ip地址并 记录 。(物理地址 : C8-D9-D2-19-FC-4E,IPv4 地址: 10.0.132.12,默

    2024年02月05日
    浏览(38)
  • 应用层协议——DNS、DHCP、HTTP、FTP

    目录 1、DNS 协议 1-1)Hosts 文件 1-2)DNS 系统 1-3)域名的组成、分类和树状结构 1-4)DNS 域名服务器类型 1-5)DNS 查询方式 1-6)DNS 域名解析的一般步骤 1-7)对象类型与资源记录 2、DHCP 协议 2-1)DHCP 动态分配的步骤 2-2)DHCP 报文类型含义与发送方式 2-3)DHCP 中继(DHCP relay) 2

    2024年02月07日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包