네트워크/라우팅,스위칭 관리

멀티플렉싱 & 디멀티플렉싱

Jaden Park 2021. 4. 22. 18:15

Mutiplexing & Demultiplexing

  • 전송 계층에서 제공하는 기본적인 기능
  • 하나의 머신에서 여러 개의 프로세스들이 존재하고 개별 프로세스들은 다른 머신과의 네트워크를 하기 위해선 하나의 통로를 거쳐야하는데 이 과정
  • sender 에서 여러 개의 프로세스가 각자의 소켓을 가지고 메시지를 보내게 된다면 TCP or UDP 를 통해서 이 과정에서 멀티플렉싱이 일어남
  • receiver 에서는 주로 디멀티플렉싱이 일어남

멀티플렉싱

  • 전송계층에서 도장을 찍어주듯이 헤더에 목적지에 대한 정보를 입력

디멀티플렉싱

  • 전송계층에서 세그먼트를 받아 윗 계층에 존재하는 여러 프로세스들에게 정확하게 전달해주기 위해서 헤더를 보고 어떤 프로세스에 전달해줘야되는지 확인하고 적절히 나눠주는 것

세그먼트는 payload와 header로 이루어져있음.
헤더에 반드시 포함되어야 하는 것이 Source port와 destination port 이다. (나의 포트와 목적지 포트번호)

Connectionless Demultiplexing

  • 디멀티플렉싱은 receiver측에서 일어나게 된다.
  • 소켓을 만들면 호스트 로컬 포트번호가 할당된다
  • UDP소켓에서는 반드시 목적지 IP 주소와 목적지 포트를 명시해주어야한다.
  • 호스트가 UDP 세그먼트를 받게되면(전송계층에서), 세그먼트에 적힌 목적지 포트를 확인하고 전달해준다.

Connection-oriented Demultiplexing

  • TCP 소켓은 4개의 속성으로 확인한다. (Source IP, Port) , (Dest IP, Port)
  • TCP는 전용소켓을 통해서 데이터를 주고받기 때문에 특정 프로세스에 매핑된 소켓을 찾을 수 있는 정보가 필요하다
  • 그 정보가 (목적지 아이피, 포트번호), (발신지 아이피, 포트번호) 4가지 정보이다.

그림처럼 하나의 어플리케이션에서 여러 개의 소켓을 가지고 여러 호스트들과 통신을 할 수도 있다. 이때는 프로세스fork 나, Thread 를 사용해서 각 프로세스, Thread가 하나의 소켓을 담당하도록 설계한다.

  • fork 란?
    • fork 는 원래 실행되던 프로세스의 복사본을 만드는 함수이다.
    • 최초의 프로세스를 부모 프로세스라고 하고 fork 되어서 만들어진 프로세스를 자식 프로세스라고 한다.

UDP : connectionless

  • hand-shaking 을 하지 않는다. 각 세그먼트는 독립적으로 동작한다. (마치, 퀵택배처럼)
  • 신뢰성을 보장하지 않는다. 메시지 간 순서 개념이 없다.

  • UDP 세그먼트의 구조를 보면, 연결유지를 위한 정보가 없다.
  • 따라서, 데이터 트레픽의 오버헤드가 적다.

Checksum

  • UDP 체크섬은 에러를 검출해주는 역할을 하는 필드

'네트워크 > 라우팅,스위칭 관리' 카테고리의 다른 글

Sisco Router Routing Protocol 설정 - Static  (0) 2021.04.26
시스코 IOS Software  (0) 2021.04.26
IPv4 데이터그램 단편화  (0) 2021.04.22
MTU  (0) 2021.04.22
3. TCP/IP  (0) 2021.04.20