2025/01/09 26

(Reading 01) The Design Philosophy of the DARPA Internet Protocols

요약: The Design Philosophy of the DARPA Internet Protocols 이 논문은 DARPA에서 개발한 인터넷 프로토콜(TCP/IP)의 설계 철학을 설명하며, 초기 설계 목표와 주요 설계 결정을 다룬다. 특히, 패킷 스위칭, 연결 없는 데이터그램 서비스, 그리고 네트워크 상호 연결성(interconnectivity) 개념을 중심으로 인터넷의 기본 원칙을 분석한다.핵심 요약  1. 근본적인 목표:  • 다양한 네트워크를 효과적으로 연결하는 기술 개발.   • 기존 네트워크를 통합하여 하나의 유용한 네트워크로 만드는 데 초점. 2. 설계 목표:   • 생존성(Survivability): 네트워크 일부가 손실되더라도 통신은 유지되어야 한다.   • 다양한 서비스 지원: 다른 속..

(LAB 09) Working with Multiple Internet-of-Things

Lab 09 요약: Multi-Device IoT와 실시간 데이터 분석 Lab 09에서는 여러 IoT 기기를 활용하여 데이터를 수집, 처리, 시각화하며, Thingsboard IO, Folium, 그리고 Python을 사용해 데이터를 지도 위에 시각적으로 표현하는 방법을 실습합니다. 또한, IoT 대시보드를 구성하고 데이터베이스에서 데이터를 조회 및 재구성하는 작업도 포함됩니다.주요 실습 단계 1. Termux에서 Thingsboard IO로 데이터 전송  • Node-RED 제거:     • 컴퓨팅 자원 절약을 위해 Node-RED 제거:npm -g remove node-redpkg remove nodejs    • curl 설치 및 데이터 전송:     • JSON 형식 데이터를 curl 명령으로 T..

(LAB 08) Android-based IoT Network with Nod-Red and Thingsboard IO on Cloud

Lab 08 요약: Android 기반 IoT 네트워크와 Node-RED 및 Thingsboard IO 활용 Lab 08의 목표는 Android 기기를 IoT 네트워크 센서로 전환하여 데이터를 수집하고, 이를 Node-RED와 Thingsboard IO를 통해 처리 및 시각화하는 것입니다. 이 실습에서는 Android 기기의 센서를 사용해 데이터를 수집하고, 클라우드로 전송해 대시보드를 생성하는 전체 과정을 포함합니다.주요 실습 단계 1. Termux 설치 및 환경 설정  • 설치:     • F-Droid를 통해 Termux 및 Termux API 설치.     • Termux에서 apt update와 apt install termux-api 명령어 실행.   • 원격 액세스 설정:     • SSH를..

(LAB 07) Final Project Brainstorming and Interviews

Lab 07 요약: Final Project Brainstorming and Interviews Lab 07의 목표는 최종 프로젝트 주제 선정을 위한 브레인스토밍 및 팀 협업, 그리고 인터뷰를 통해 사용자 의견을 수집하여 프로젝트 아이디어를 구체화하는 것입니다. 이번 과제는 IoT 기술, 데이터 분석, 클라우드 서비스의 통합을 포함한 실질적인 문제 해결 솔루션을 설계하고, 팀의 역할 분담과 프로젝트 일정을 초안하는 데 중점을 둡니다.최종 프로젝트 요구 사항 1. Android 기반 IoT 구성:  • 최소 3대의 Android 휴대폰을 IoT 디바이스로 설정하여 센서, 카메라, 또는 마이크를 통해 데이터를 수집. 2. 추가 센서 활용:   • 최소 1개의 추가 센서를 사용하여 데이터를 수집.   • 추가..

(LAB 06) Hadoop and Spark

Lab 06 요약: Hadoop과 Spark를 활용한 빅데이터 처리 Lab 06에서는 Hadoop과 Spark를 사용해 대규모 데이터 처리와 분산 컴퓨팅 환경에서의 작업을 실습합니다. 실습은 두 부분으로 구성되며, 첫 번째는 Hadoop을 사용한 HDFS 설정과 MapReduce 작업, 두 번째는 Spark를 사용한 PySpark 프로그램 작성 및 비교 분석입니다.Part 1: Hadoop 설정 및 MapReduce 실습 1. Hadoop 클러스터 구성  • 인스턴스 구성:     • 1개의 NameNode와 3개의 DataNode로 구성된 클러스터 설정.     • 각 인스턴스는 Ubuntu Server 16.04 AMI를 사용.   • 최소 사양:     • 2 vCPU, 4GB RAM, 12GB 디..

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

Lab 05 요약: Fast, Reliable File Transfer with Custom TCP/IP Lab 05의 목표는 네트워크 조건(높은 지연 시간 및 패킷 손실률)에서 TCP 성능을 향상시키는 것입니다. 이를 위해 기존 TCP의 지수적 백오프 알고리즘을 제거하고, 수정된 TCP 스택을 테스트하며, 이를 통해 10Mbps 이상의 전송 성능을 달성해야 합니다. 실험은 AWS 및 VirtualBox 환경에서 수행됩니다.주요 실습 내용 1. TCP 성능 향상 배경  • 지수적 백오프 문제:     • TCP는 패킷 손실을 혼잡으로 간주하여 전송 속도를 줄임.     • 그러나 패킷 손실이 네트워크 불안정성(예: 위성 링크) 때문이라면 성능 저하가 과도함.   • 목표:     • TCP 성능을 향상시..

(LAB 04) Fast, Reliable File Transfer

Lab 04 요약: Fast, Reliable File Transfer Lab 04의 목표는 빠르고 신뢰할 수 있는 파일 전송 프로그램을 설계하고 구현하는 것입니다. 이 과제에서는 네트워크의 대기 시간, 손실률, 대역폭 제한 등의 어려운 조건에서 TCP보다 더 높은 성능을 보이는 파일 전송 유틸리티를 개발합니다. 최종 결과물은 명령줄 인터페이스를 통해 동작하며, 안정적이고 오류 없이 파일을 전송해야 한다. 이 랩은 기존 업무에서 사용했던 프로토콜을 차용했다.주요 요구 사항 1. 프로그램 설계  • IP 기반 파일 전송 유틸리티 구현.   • 전송 파일의 크기는 최소 1GB 이상이어야 함.   • 명령줄 인터페이스는 scp와 유사하게 설계. 2. 성능 테스트 시나리오   • Case 1:     • RTT..

(LAB 03) Network Measurement

Lab 03 요약: 네트워크 성능 측정 및 분석 Lab 03에서는 AWS 환경에서 네트워크 대역폭, 지연 시간, 패킷 손실 등이 네트워크 성능에 미치는 영향을 실험하고 분석합니다. 이를 위해 iperf, tc(netem), scp와 같은 도구를 활용하며, 다양한 네트워크 조건에서의 성능 차이를 이해하고 최적화 방법을 탐구합니다.주요 실습 단계 1. 대역폭 및 지연 시간 측정  • 도구: iperf, ping, tc   • 실험 절차:     1. Ping으로 RTT 측정: 클라이언트와 서버 간 라운드트립 시간을 측정.     2. UDP 대역폭 측정: iperf를 사용하여 최대 대역폭 측정 (-b 옵션 사용).     3. TCP 처리량 측정: iperf로 TCP 전송 속도 측정.   • 네트워크 조건 ..

(LAB 02) AWS Bring UP and Queuing

Lab 02 요약: AWS 네트워크 및 대기열 설정 Lab 02에서는 AWS 네트워크 구성, EC2 인스턴스 설정, 네트워크 트래픽 시뮬레이션을 통해 클라우드 네트워킹 및 대기열 관리의 기본 개념을 학습합니다. VPC, 서브넷, VyOS 라우터 구성, iperf를 사용한 네트워크 성능 분석을 다루며, 실습을 통해 네트워크 환경의 설정 및 최적화를 경험합니다.주요 단계  1. AWS VPC 및 네트워크 구성  • VPC 생성: 10.0.0.0/16 CIDR 블록을 사용하는 VPC 생성.   • 서브넷 생성:     • 클라이언트, 서버, VyOS 라우터, 공용 인터넷 서브넷으로 구성된 4개의 서브넷 생성.   • 인터넷 게이트웨이 설정:     • VPC에 인터넷 게이트웨이를 연결하고, 라우팅 테이블을 업..

(LAB 01) Network with VyOS, and simple Socket Program

Lab 01: Summary 과제 개요 Lab 01에서는 컴퓨터 네트워크와 Linux 환경을 중심으로 다양한 실습을 수행하여 클라우드 네트워킹 및 소켓 프로그래밍의 기본을 이해하는 것을 목표로 한다. 학생들은 단계별 과제를 통해 Linux 설치, 네트워크 구성, VyOS 설정, 그리고 소켓 프로그래밍까지 다룬다.주요 단계 1. Linux 설치  • VirtualBox를 사용한 Linux 설치:   • Virtual Machine(VM)에 Linux 설치.   • 최소 512MB 메모리와 1~2개의 프로세서를 구성.   • 가상 메모리 크기를 12GB 이상으로 설정.   • 필수 패키지 설치:     • gcc, g++, net-tools, vim, openssh-server, traceroute 등. 2..