{"id":30312917,"url":"https://github.com/5g-pex/sctptrace","last_synced_at":"2025-08-17T18:02:29.747Z","repository":{"id":309883040,"uuid":"1032735687","full_name":"5G-PEX/sctptrace","owner":"5G-PEX","description":"sctptrace is a collection of eBPF-based tools for monitoring and analysing SCTP (Stream Control Transmission Protocol) connections in real-time with minimal overhead. It provides visibility into critical SCTP performance metrics including RTT, buffer utilisation, jitter, and stream usage by instrumenting kernel functions through BCC.","archived":false,"fork":false,"pushed_at":"2025-08-14T09:06:56.000Z","size":83,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-14T11:22:44.920Z","etag":null,"topics":["5g","5g-core","6g","bcc","ebpf","performance-metrics","sctp"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/5G-PEX.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-08-05T18:40:12.000Z","updated_at":"2025-08-14T09:06:59.000Z","dependencies_parsed_at":"2025-08-14T11:22:51.794Z","dependency_job_id":"f86d043a-439e-4db5-8cf1-1d2df9d8945c","html_url":"https://github.com/5G-PEX/sctptrace","commit_stats":null,"previous_names":["5g-pex/sctptrace"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/5G-PEX/sctptrace","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/5G-PEX%2Fsctptrace","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/5G-PEX%2Fsctptrace/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/5G-PEX%2Fsctptrace/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/5G-PEX%2Fsctptrace/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/5G-PEX","download_url":"https://codeload.github.com/5G-PEX/sctptrace/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/5G-PEX%2Fsctptrace/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270884767,"owners_count":24662308,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-17T02:00:09.016Z","response_time":129,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["5g","5g-core","6g","bcc","ebpf","performance-metrics","sctp"],"created_at":"2025-08-17T18:00:49.120Z","updated_at":"2025-08-17T18:02:29.708Z","avatar_url":"https://github.com/5G-PEX.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# sctptrace\n\n**Advanced eBPF-based tools for monitoring SCTP protocol performance**\n\n![SCTP Monitoring](https://img.shields.io/badge/protocol-SCTP-blue)\n![eBPF](https://img.shields.io/badge/technology-eBPF-orange)\n![BCC](https://img.shields.io/badge/framework-BCC-green)\n\n## Overview\n\n`sctptrace` is a collection of BPF-based tools for monitoring, analysing, and troubleshooting SCTP (Stream Control Transmission Protocol) connections in real-time. The tools use eBPF technology to provide kernel-level insights with minimal overhead, enabling deep visibility into SCTP performance metrics.\n\nSCTP is often used in telecommunications, financial services, and high-performance computing where its multi-streaming and multi-homing capabilities provide advantages over TCP. However, debugging and monitoring SCTP can be challenging. `sctptrace` bridges this gap with specialized tools for key SCTP performance metrics.\n\n## Features\n\n- **Low overhead**: Uses eBPF technology for efficient kernel-level tracing\n- **Real-time monitoring**: Live analysis of active SCTP connections\n- **Comprehensive metrics**: Tracks RTT, RTO, buffer utilization, jitter, and stream usage\n- **Multi-stream visibility**: Detailed insights into SCTP's multi-streaming capability\n- **Per-association tracking**: Monitor individual SCTP associations separately\n\n## Tools\n\n| Tool | Description |\n|------|-------------|\n| **sctp_rtt.py** | Measures Round Trip Time (RTT) for SCTP data chunks |\n| **sctp_rto.py** | Monitors Retransmission Timeout (RTO) values and update algorithm |\n| **sctp_bufmon.py** | Tracks send/receive buffer utilization and pressure |\n| **sctp_jitter.py** | Analyses packet timing variations (jitter) across streams |\n| **sctp_streamutil.py** | Provides insights into stream utilization and parallelism |\n\n## Requirements\n\n- Linux kernel 6.8+\n- BCC (BPF Compiler Collection)\n- Python 3.6+\n- Root privileges for running the tools\n\n## Installation\n\n1. Install BCC framework (if not already installed):\n\n```bash\n# For Ubuntu/Debian\nsudo apt-get install bpfcc-tools linux-headers-$(uname -r)\n\n# For RHEL/CentOS/Fedora\nsudo yum install bcc-tools kernel-devel\n```\n\n2. Clone the repository:\n\n```bash\ngit clone https://github.com/yourusername/sctptrace.git\ncd sctptrace\n```\n\n3. Make the tools executable:\n\n```bash\nchmod +x *.py\n```\n\n## Usage Examples\n\nSee the .txt for each tool\n\n## Understanding SCTP Performance Metrics\n\n### Round Trip Time (RTT)\nTime taken for a packet to travel from sender to receiver and back. SCTP tracks RTT per destination address for path management purposes. Lower RTT values indicate better network performance.\n\n### Retransmission Timeout (RTO)\nAdaptive timer used for retransmission decisions. SCTP calculates RTO based on RTT measurements using a similar algorithm to TCP but with adaptations for multi-homing support.\n\n### Buffer Utilization\nTracks how effectively send and receive buffers are being used. High buffer utilization may indicate congestion or application processing bottlenecks.\n\n### Jitter\nVariation in packet delivery timing, critical for time-sensitive applications. SCTP's multi-streaming can help reduce jitter for prioritized streams.\n\n### Stream Utilization\nMeasures how effectively an application uses SCTP's multi-streaming capability. Well-balanced stream usage maximizes SCTP's performance advantages.\n\n## Contributing\n\nContributions are welcome! Please feel free to submit pull requests or create issues for bugs, questions, or new features.\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add some amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n## License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n\n## Acknowledgments\n\n- The [BCC project](https://github.com/iovisor/bcc) for providing the BPF compiler collection framework\n- The Linux kernel team for developing and maintaining SCTP and BPF technologies\n\n---\n\n**Note**: These tools rely on internal kernel structures which may change between kernel versions. The tools have been tested with Linux kernel 6.8, but may require adjustments for other kernel versions.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F5g-pex%2Fsctptrace","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F5g-pex%2Fsctptrace","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F5g-pex%2Fsctptrace/lists"}