Learn/'24_Fall_(EE542) Internet&Cloud Computin

(LAB 05) Fast, Reliable File Transfer with Custom TCP/IP

QBBong 2025. 1. 9. 06:54
728x90

Lab 05 요약: Fast, Reliable File Transfer with Custom TCP/IP

 

Lab 05의 목표는 네트워크 조건(높은 지연 시간 및 패킷 손실률)에서 TCP 성능을 향상시키는 것입니다. 이를 위해 기존 TCP의 지수적 백오프 알고리즘을 제거하고, 수정된 TCP 스택을 테스트하며, 이를 통해 10Mbps 이상의 전송 성능을 달성해야 합니다. 실험은 AWS 및 VirtualBox 환경에서 수행됩니다.


주요 실습 내용

 

1. TCP 성능 향상 배경

  • 지수적 백오프 문제:

     TCP는 패킷 손실을 혼잡으로 간주하여 전송 속도를 줄임.

     그러나 패킷 손실이 네트워크 불안정성(예: 위성 링크) 때문이라면 성능 저하가 과도함.

   목표:

     TCP 성능을 향상시켜 패킷 손실과 높은 지연 시간에서도 더 높은 처리량을 제공.

 

2. 실험 설정

   네트워크 조건:

     RTT: 200ms (왕복 시간), 패킷 손실률: 20%.

     대역폭 제한: 100Mbps.

   기본 성능 테스트:

     1GB 파일 전송(scp)을 통해 기본 TCP 성능 측정.

     다양한 지연 시간(10ms ~ 200ms) 및 패킷 손실률(0 ~ 25%)에서 성능 분석.

 

3. TCP 성능 향상 방법

   Linux TCP 스택 수정:

     TCP 스택에서 지수적 백오프 알고리즘 제거.

     관련 파일: /net/ipv4/tcp_*.

   참고 논문:

     “Removing Exponential Back-off from TCP” (Mondal & Kuzmanovic).

   구현 요구사항:

     최소 10Mbps 전송 속도 달성.

   TCP 수정 및 빌드 절차:

    1. AWS Ubuntu 커널 소스 준비:

         AWS 맞춤형 커널 소스 다운로드 및 빌드.

    2. TCP 모듈 수정:

         지수적 백오프 제거 및 새 전송 속도 조절 로직 추가.

    3. 커널 빌드 및 배포:

         AWS EC2 또는 VirtualBox에서 새로운 커널 적용.

    4. GRUB 부트로더 구성:

         수정된 커널로 부팅 설정.

 

4. 성능 실험

   실험 절차:

    1. TCP 수정 전후 성능 비교:

         기본 TCP와 수정된 TCP의 전송 속도와 안정성을 비교.

    2. 네트워크 조건 변화에 따른 성능 테스트:

         tc 명령을 사용하여 지연 및 패킷 손실 시뮬레이션.

         RTT 200ms, 패킷 손실률 20% 조건에서 최소 10Mbps 달성.

    3. 추가 최적화:

         TCP 윈도우 크기, 큐 관리를 활용한 추가 성능 개선.

 

5. 보고서 요구 사항

  1. 실험 데이터 및 결과:

     전송 속도와 성능 차이(기본 TCP vs 수정된 TCP).

     다양한 네트워크 조건에서의 성능 그래프.

     각 수정 사항의 개별 성능 비교.

  2. 코드 설명:

     수정한 TCP 모듈의 주요 변경점.

     성능 향상 전략 설명.

  3. 데모 비디오:

     파일 전송 과정과 성능 결과를 보여주는 데모.


학습 목표

 

1. TCP 한계 이해:

     패킷 손실과 지연 시간이 TCP 성능에 미치는 영향 학습.

2. TCP 스택 수정:

     Linux 커널의 TCP 모듈을 수정하여 사용자 정의 네트워크 프로토콜 개발.

3. 성능 최적화:

     높은 대기 시간 및 손실률 환경에서 TCP 성능을 개선하는 방법 탐구.

728x90
반응형