반응형
멀티플렉싱과 디멀티플렉싱은 호스트 간 통신을 애플리케이션 간 통신으로 확장하는 핵심 기능이다.
✅ 다중화 (Multiplexing)
: 애플리케이션 프로세스의 데이터를 모아 세그먼트로 생성하여 네트워크 계층에 전달하는 과정
Transport 계층의 다중화는 하나의 네트워크 인터페이스를 공유하면서도 각 애플리케이션의 데이터를 정확히 분리하여 처리할 수 있게 해 준다.
📍UDP의 다중화
UDP 소켓 = 목적지 IP + 목적지 포트 번호
- 클라이언트가 UDP 소켓 생성 시, 트랜스포트 계층이 임의 포트 자동 할당
- 서버는 bind()를 통해 고정 포트에 소켓을 바인딩
- 세그먼트 전송 시:
- 트랜스포트 계층이 출발지/목적지 포트 번호를 포함해 세그먼트 생성
- 수신 측은 세그먼트의 목적지 포트 번호를 기준으로 소켓을 찾아 데이터 전달
📍TCP의 다중화
TCP 소켓 = (출발지 IP, 출발지 포트, 목적지 IP, 목적지 포트) -> 4-tuple
- 클라이언트는 connect()를 통해 랜덤 포트에서 서버 포트로 연결 요청
- 서버는 환영 소켓으로 연결 요청 대기 (예: 포트 12000)
- 서버는 요청을 수락하고, 4개의 값으로 구성된 새 연결 소켓 생성
- 이후 도착하는 TCP 세그먼트는 4-tuple을 기준으로 해당 연결 소켓으로 전달됨
✅ 역다중화 (Demultiplexing)
: 수신된 세그먼트를 포트 번호 기반으로 올바른 애플리케이션 소켓으로 전달하는 과정
하나의 호스트는 네트워크 인터페이스를 통해 다양한 세그먼트를 수신한다.
이때 트랜스포트 계층은 포트 번호를 사용해 세그먼트를 적절한 애플리케이션 소켓으로 라우팅 한다.
✅ UDP vs TCP 다중화/역다중화 비교
| UDP | TCP | |
| 연결 방식 | 비연결형 (connectionless) | 연결형 (connection-oriented) |
| 소켓 식별 | 목적지 IP + 목적지 포트 | 출발지 IP + 출발지 포트 + 목적지 IP + 목적지 포트 |
| 다중 연결 | 동일 포트로 여러 클라이언트가 접속해도 동일 소켓 사용 | 각각의 연결은 별도 소켓에 매핑됨 |
| 회신 처리 | 출발지 포트를 회신용으로 사용 | 연결 자체가 양방향 채널 |
반응형
'⚙️ CS > 네트워크' 카테고리의 다른 글
| [네트워크] 포워딩과 라우팅 (1) | 2025.05.27 |
|---|---|
| [네트워크] 로드 밸런싱 (Load Balancing) (0) | 2025.05.27 |
| [네트워크] DHCP (1) | 2025.05.20 |
| [네트워크] SOP와 CORS & REST (3) | 2025.05.20 |