Software Courses/Network

Transport : Multiplexing, Demultiplexing

김 정 환 2020. 12. 31. 16:39
반응형
본 내용은 한양대학교 이석복 교수님의 강의를 참고하여 정리하였습니다. 교재는 Pearson/Addison Wesley에서 출판한 Computer networking : a top-down approach입니다.

 

 

 

Multiplexing, Demultiplexing

    - Multiplexing : 여러 socket에서 데이터를 모아서 보내는 일

    - Demultiplexing : 수신된 세그먼트에서 header를 참조하여 각각의 socket으로 보내주는 일

    - TCP와 UDP에서 용어는 같지만 다른 과정이 수행

 

 

 

UDP Multiplexing, Demultiplexing

    - 한 개의 소켓에 여러 소켓이 연결 가능 1:N 관계

    - Port 번호만 보고 데이터 전송

    - Port 번호에 따라 고유한 socket이 존재

 

 

 

TCP Multiplexing, Demultiplexing

    - 한 소켓과 한 소켓이 연결 1:1 관계

    - 하나의 프로세스는 여러 소켓을 소유

    - 여러 소켓 나누는 과정 : 클라이언트에서 서버로 연결 요청이 오면 accept()이 끝나고 개별 소켓을 생성

    - Port 번호 뿐만 IP address까지 총 4개의 속성이 하나의 연결을 결정. 마치 데이터베이스에서 몇 개의 속성으로 기본키를 생성하는 것과 유사

    - 4개의 속성을 가지는 이유는? 여러 클라이언트가 동일한 서버에 TCP 통신을 하기 때문이다. 예를 들어, A, B, C 사람들이 naver에 접속하면 naver는 어느 한 컴퓨터에 있으므로 동일한 IP를 가질 것이고, 웹 서버이므로 80번 port번호를 가질 것입니다. 그렇다면 서버의 IP와 port 번호로만 1:1 TCP 연결이 되어 있는 소켓을 찾을 수 없습니다. 따라서 출발하는 컴퓨터의 IP와 port를 추가하여 고유한 소켓을 생성하고 둘을 1:1 연결합니다.

    - 예시 : 한 컴퓨터에 3개의 네이버 창의 띄우면, dest IP와 dest port 그리고 source IP는 동일하지만, source port가 다릅니다. 따라서 3개의 소켓이 생성됩니다.

반응형

'Software Courses > Network' 카테고리의 다른 글

Transport : RDT (Reliable Data Transfer)  (0) 2021.01.02
Transport : UDP  (0) 2020.12.31
Application : Socket programming  (0) 2020.12.31
Application : DNS  (0) 2020.12.30
Application : Proxy server  (0) 2020.12.30