루비 - 패킷에서 DSCP 마킹 방법은 무엇입니까?
-
19-09-2019 - |
문제
제품을 테스트하기 위해 패킷을 DSCP 마커로 마킹 할 필요가 있지만 직접 수행 할 수있는 방법은 없습니다. 방금 뭔가 빠졌습니까, 아니면이 작업을 수행하기 위해 C에서 네트워크 프로그래밍을 시작해야합니까?
또는 더 쉬울 수 있습니다. Linux의 경우 DSCP 마커가 포함 된 데이터를 IPERF보다 더 잘 보낼 프로그램이 있습니까? 나는 당신이 핑을 표시 할 수 있다는 것을 알고 있지만, 테스트에 대한 나의 요구에 맞지 않을 것입니다 (IPerf는 어느 정도까지, 그것은 무거운 테스트 목적으로 신뢰할 수 없었습니다.)
해결책
루비를 사용해야합니다 setsockopt
, Linux 시스템 호출을 포장합니다.
require "socket"
s = TCPSocket.new("example.com", 80)
s.setsockopt(Socket::IPPROTO_IP, Socket::IP_TOS, 32)
목록을 참조하십시오 TOS/DSCP 설정은 여기에 있습니다.
또한 답변을 참조하십시오 이 질문.
다른 팁
TOS 값과 함께 IPERF 도구를 사용하여 요구 사항에 따라 -S를 선택적으로 사용하여 명령을 제공합니다.
Ex : Iperf -c<Iperf ServerIP> -u<udp> -p<port> -S 0xb8<Marking EF>.
Refer the below table for your ToS Value for DSCP marking.
TOS (Dec) TOS (Hex) TOS (Bin) TOS Precedence (Bin) TOS Precedence (Dec) TOS Precedence Name TOS Delay flag TOS Throughput flag TOS Reliability flag DSCP (Bin) DSCP (Hex) DSCP (Dec) DSCP/PHB Class
0 0x00 00000000 000 0 Routine 0 0 0 000000 0x00 0 none
4 0x04 00000100 000 0 Routine 0 0 1 000001 0x01 1 none
8 0x08 00001000 000 0 Routine 0 1 0 000010 0x02 2 none
12 0x0C 00001100 000 0 Routine 0 1 1 000011 0x03 3 none
16 0x10 00010000 000 0 Routine 1 0 0 000100 0x04 4 none
32 0x20 00100000 001 1 Priority 0 0 0 001000 0x08 8 cs1
40 0x28 00101000 001 1 Priority 0 1 0 001010 0x0A 10 af11
48 0x30 00110000 001 1 Priority 1 0 0 001100 0x0C 12 af12
56 0x38 00111000 001 1 Priority 1 1 0 001110 0x0E 14 af13
64 0x40 01000000 010 2 Immediate 0 0 0 010000 0x10 16 cs2
72 0x48 01001000 010 2 Immediate 0 1 0 010010 0x12 18 af21
80 0x50 01010000 010 2 Immediate 1 0 0 010100 0x14 20 af22
88 0x58 01011000 010 2 Immediate 1 1 0 010110 0x16 22 af23
96 0x60 01100000 011 3 Flash 0 0 0 011000 0x18 24 cs3
104 0x68 01101000 011 3 Flash 0 1 0 011010 0x1A 26 af31
112 0x70 01110000 011 3 Flash 1 0 0 011100 0x1C 28 af32
120 0x78 01111000 011 3 Flash 1 1 0 011110 0x1E 30 af33
128 0x80 10000000 100 4 FlashOverride 0 0 0 100000 0x20 32 cs4
136 0x88 10001000 100 4 FlashOverride 0 1 0 100010 0x22 34 af41
144 0x90 10010000 100 4 FlashOverride 1 0 0 100100 0x24 36 af42
152 0x98 10011000 100 4 FlashOverride 1 1 0 100110 0x26 38 af43
160 0xA0 10100000 101 5 Critical 0 0 0 101000 0x28 40 cs5
176 0xB0 10111000 101 5 Critical 1 0 0 101100 0x2C 44 voice-admit
184 0xB8 10111000 101 5 Critical 1 1 0 101110 0x2E 46 ef
192 0xC0 11000000 110 6 InterNetworkControl 0 0 0 110000 0x30 48 cs6
224 0xE0 11100000 111 7 NetworkControl 0 0 0 111000 0x38 56 cs7
제휴하지 않습니다 StackOverflow