[취업을 위한 CS 지식] 30강. 전송 계층 - TCP와 UDP
- TCP와 UDP는 전송 계층에서 가장 중요한 두 프로토콜이며, 각각의 목적과 특징을 가지고 있음 🚀
- TCP와 UDP의 주요 목적은 포트를 통해 특정 어플리케이션 프로세스를 식별하는 것임 🔑
- 포트 번호는 16비트로 표현되며, 0번부터 65,535번까지 할당 가능하며, 웰논 포트, 등록된 포트, 동적 포트로 나뉨 🗂️
- 웰논 포트는 가장 대중적으로 사용되는 어플리케이션을 위해 예약된 포트이며, 레지스터드 포트는 자주 사용될 법한 일반 어플리케이션에 할당됨 📚
- 동적 포트는 클라이언트가 자유롭게 사용할 수 있는 포트이며, 웹 브라우저가 대표적인 예시임 🌐
- NAT는 사설 IP 주소를 사용하는 호스트가 외부 네트워크와 통신하기 위해 공인 IP 주소로 변환하는 기술이며, NAPT는 포트 번호까지 활용하여 IP 주소 부족 문제를 완화함 💡
- TCP는 신뢰성 있는 연결형 통신을 제공하며, UDP는 신뢰성 없는 비연결형 통신을 제공함 🛡️
- TCP는 상태 관리, 흐름 제어, 오류 제어, 혼잡 제어 등의 기능을 제공하여 신뢰성을 보장함 ✅
- TCP 헤더에는 순서 번호, 확인 응답 번호, 제어 비트(ACK, SYN, FIN) 등의 정보가 포함되어 있음 ⚙️
- TCP 연결 수립 과정은 3-way handshake(SYN, SYN-ACK, ACK)를 통해 이루어지며, 연결 종료 과정은 FIN, ACK를 주고받으며 이루어짐🤝
- TCP는 오류 제어를 위해 재전송을 사용하며, 중복된 ACK 세그먼트나 타임아웃 발생 시 재전송을 수행함 🔄
- 흐름 제어는 수신 호스트가 처리할 수 있는 만큼만 데이터를 보내는 기법이며, 수신 윈도우 크기를 통해 조절함 🌊
- 혼잡 제어는 네트워크 혼잡을 감지하여 송수신량을 조절하는 기능이며, AIMD 알고리즘을 사용하여 혼잡 윈도우 크기를 조절함 🚦
- TCP는 상태 정보를 관리하는 스테이트풀 프로토콜이며, 연결 상태(CLOSED, LISTEN, ESTABLISHED 등)를 통해 통신 과정을 추적함 📊