다중화와 역다중화

2024. 10. 3. 15:21·전공 공부/컴퓨터네트워크
728x90

다중화와 역다중화란?

다중화(Multiplexing)는 하나의 전송 매체에 여러 신호를 함께 결합하여 전송하는 기법입니다. 예를 들어, 여러 명이 한꺼번에 데이터를 전송하려면 각각의 신호를 결합해 하나의 통신 채널을 통해 보내는 것이 더 효율적입니다. 이 방식은 네트워크 리소스를 더욱 효율적으로 사용하기 위해 만들어졌습니다. 다중화는 네트워크나 전송 계층에서 주로 사용되며, 송신 측에서 여러 프로세스의 데이터를 하나의 세그먼트로 묶어 전송할 수 있게 합니다.

반면, 역다중화(Demultiplexing)는 수신 측에서 다중화된 신호를 다시 분리하여 각각의 프로세스나 애플리케이션에 전달하는 과정입니다. 다중화된 데이터를 수신한 후, 이를 적절한 프로세스로 나눠야 하므로, 각 데이터에는 이를 구분할 수 있는 포트 번호나 IP 주소 같은 식별자가 필요합니다.


다중화와 역다중화의 동작 원리

  • 송신 측 다중화는 네트워크 계층으로 데이터를 전달하기 전, 여러 애플리케이션으로부터 데이터를 받아 트랜스포트 헤더를 추가하여 하나의 세그먼트로 묶는 과정입니다.
  • 수신 측 역다중화는 네트워크 계층에서 받은 세그먼트를 적절한 소켓으로 전달하기 위해 IP 주소와 포트 번호를 확인해 데이터를 적합한 애플리케이션으로 분리합니다. 이 과정에서 사용되는 헤더 정보는 포트 번호(UDP의 경우) 또는 IP 주소와 포트 번호(TCP의 경우)입니다.

UDP와 TCP에서의 차이

  • UDP: 포트 번호를 기반으로만 역다중화가 이루어집니다. 즉, 수신 측은 포트 번호만 확인하여 데이터를 적절한 소켓으로 전달합니다.
  • TCP: 4개의 요소(발신지 IP 주소, 발신지 포트 번호, 목적지 IP 주소, 목적지 포트 번호)를 기반으로 역다중화가 이루어집니다. 이로 인해, TCP는 더 정밀한 통신 관리가 가능하며, 각 소켓은 연결된 클라이언트와 1:1 매칭됩니다.

다중화와 역다중화의 역할

이 두 과정은 데이터 전송의 효율성을 극대화하는 데 필수적인 역할을 합니다. 다중화를 통해 여러 프로세스의 데이터를 하나의 세그먼트로 전송함으로써 네트워크 리소스를 절약할 수 있고, 역다중화를 통해 수신된 데이터를 정확한 프로세스로 나누어주는 기능을 수행합니다.

728x90

'전공 공부 > 컴퓨터네트워크' 카테고리의 다른 글

신뢰기반 데이터 전송의 원리  (1) 2024.10.03
비연결형 트랜스포트 : UDP  (1) 2024.10.03
트랜스포트 계층  (3) 2024.10.03
전자 메일 시스템 완전 정복: SMTP, POP3, IMAP 이해하기  (1) 2024.09.24
P2P 파일 분배와 비디오 스트리밍: 효율적인 데이터 전달의 비밀📁  (4) 2024.09.24
'전공 공부/컴퓨터네트워크' 카테고리의 다른 글
  • 신뢰기반 데이터 전송의 원리
  • 비연결형 트랜스포트 : UDP
  • 트랜스포트 계층
  • 전자 메일 시스템 완전 정복: SMTP, POP3, IMAP 이해하기
튼튼발자
튼튼발자
프론트엔드 개발자입니다. 헬스를 가끔해서인지 몸이 튼튼한거 같습니다. 그래서 튼튼한 개발자 => 튼튼발자입니다. 프론트엔드 및 관련 개발 내용 블로그 글로 정리해서 올려둡니다.
    250x250
  • 튼튼발자
    튼튼발자
    튼튼발자
  • 전체
    오늘
    어제
    • 분류 전체보기 (192)
      • 튼튼발자의 끄적끄적 (10)
      • 웹개발 (94)
        • HTML (5)
        • CSS (2)
        • JavaScript (40)
        • TypeScript (5)
        • REACT (22)
        • Next.js (13)
        • GIt (7)
      • 기타 (3)
        • 일상 (3)
      • 프로젝트 (27)
        • Componique: UI 컴포넌트 라이브러리 (18)
        • GitHub Profile Viewer (8)
        • 잇핏 (1)
      • 프론트엔드 개발자로 취업준비 (1)
        • 기술 면접 (7)
        • 코딩 테스트 준비하기 (0)
        • 자기소개서&지원서&이력서 (0)
      • 컴퓨터과학 (12)
        • 운영체제 (6)
        • 알고리즘 (6)
      • 전공 공부 (37)
        • AI(인공지능) (2)
        • 컴퓨터네트워크 (19)
        • 네트워크프로그래밍 (3)
        • SW소프트웨어응용설계 (7)
        • 클라우드컴퓨팅 (3)
        • 웹서비스프로그래밍 (3)
      • PT (0)
      • 취준일기 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    트랜스포트계층
    ui컴포넌트
    tailwind
    JavaScript
    데이터전송
    웹개발
    프로그래밍
    NextJs
    TCP
    JS
    프론트엔드개발
    자바스크립트
    리액트
    코딩
    github
    네트워크
    react
    componique
    프론트엔드
    상태관리
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
튼튼발자
다중화와 역다중화
상단으로

티스토리툴바