본 내용은 한양대학교 이석복 교수님의 강의를 참고하여 정리하였습니다. 교재는 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 |