37.2. MPTCP 지원을 활성화하기 위해 RHEL 준비
기본적으로 RHEL에서는 MPTCP 지원이 비활성화됩니다. 이 기능을 지원하는 애플리케이션에서 사용할 수 있도록 MPTCP를 활성화합니다. 또한 이러한 애플리케이션에 기본적으로 TCP 소켓이 있는 경우 MPTCP 소켓을 강제로 사용하도록 사용자 공간 애플리케이션을 구성해야 합니다.
사전 요구 사항
다음 패키지가 설치됩니다.
-
iperf3 -
mptcpd -
SystemTap
프로세스
커널에서 MPTCP 소켓을 활성화합니다.
# echo "net.mptcp.enabled=1" > /etc/sysctl.d/90-enable-MPTCP.conf # sysctl -p /etc/sysctl.d/90-enable-MPTCP.confiperf3서버를 시작하고 TCP 소켓 대신 MPTCP 소켓을 생성하도록 강제 적용합니다.# mptcpize run iperf3 -s Server listening on 5201클라이언트를 서버에 연결하고 TCP 소켓 대신 MPTCP 소켓을 생성하도록 합니다.
# mptcpize iperf3 -c 127.0.0.1 -t 3연결이 설정된 후
ss출력을 확인하여 하위 흐름 관련 상태를 확인합니다.# ss -nti '( dport :5201 )' State Recv-Q Send-Q Local Address:Port Peer Address:Port Process ESTAB 0 0 127.0.0.1:41842 127.0.0.1:5201 cubic wscale:7,7 rto:205 rtt:4.455/8.878 ato:40 mss:21888 pmtu:65535 rcvmss:536 advmss:65483 cwnd:10 bytes_sent:141 bytes_acked:142 bytes_received:4 segs_out:8 segs_in:7 data_segs_out:3 data_segs_in:3 send 393050505bps lastsnd:2813 lastrcv:2772 lastack:2772 pacing_rate 785946640bps delivery_rate 10944000000bps delivered:4 busy:41ms rcv_space:43690 rcv_ssthresh:43690 minrtt:0.008 tcp-ulp-mptcp flags:Mmec token:0000(id:0)/2ff053ec(id:0) seq:3e2cbea12d7673d4 sfseq:3 ssnoff:ad3d00f4 maplen:2MPTCP 카운터를 확인합니다.
# nstat MPTcp* #kernel MPTcpExtMPCapableSYNRX 2 0.0 MPTcpExtMPCapableSYNTX 2 0.0 MPTcpExtMPCapableSYNACKRX 2 0.0 MPTcpExtMPCapableACKRX 2 0.0