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 성능을 개선하는 방법 탐구.
'Learn > '24_Fall_(EE542) Internet&Cloud Computin' 카테고리의 다른 글
(LAB 07) Final Project Brainstorming and Interviews (0) | 2025.01.09 |
---|---|
(LAB 06) Hadoop and Spark (0) | 2025.01.09 |
(LAB 04) Fast, Reliable File Transfer (0) | 2025.01.09 |
(LAB 03) Network Measurement (0) | 2025.01.09 |
(LAB 02) AWS Bring UP and Queuing (0) | 2025.01.09 |