다중화와 역다중화란?

Dmori_2562·2022년 10월 19일
1

Transport-layer(전송 계층)


다중화와 역다중화를 알기 위해서는 먼저 소켓부터 알아야한다!

소켓이란?

  • 소켓은 데이터가 네트워크에서 프로세스로 이동할 때 문의 역할!

  • 각각의 프로세스는 하나 또는 그 이상의 소켓을 가지고 있다.

전송 계층에서 호스트는 데이터를 직접 받지 않고, 소켓을 통해서 받는다!


다중화와 역다중화에 대해서

다중화와 역다중화

다중화

  • 송신 측에서 이루어진다.

  • 여러 소켓의 데이터를 처리

  • 전송 계층 헤더를 추가(추후에 역다중화에서 쓰인다)

역다중화

  • 수신 측에서 이루어진다.

  • 헤더 정보를 사용하여 수신된 세그먼트를 올바른 소켓으로 전송


다중화의 필요 조건

  • 소켓은 특별한 식별자를 가지고 있다.

  • 각 세그먼트는 소켓의 식별자를 가리키는 특별한 필드를 지녀야한다.

  • 소스 포트 번호 필드
  • 도착 포트 번호 필드

포트 번호: 16비트의 숫자로 되어있고, 0~65535의 범위의 숫자이다.

IP 주소 또한 소켓 식별자를 가리킬 때 사용된다.


실제 예제

clientSocket = socket(AF_INET, SOCK_DGRAM)

호스트는 위와 같이 UDP 소켓을 만든다.

소켓을 만들 때, 전송 계층은 자동으로 포트 번호(1024 ~ 65535)를 지정해준다.

clinetSocket.bind(('', 19157))

위와 같이 포트 번호(19157)를 직접 지정해줄 수도 있다.


UDP에서의 다중화 및 역다중화

UDP 소켓의 식별

  • UDP 소켓은 대상 IP 주소대상 포트 번호로 구성된 2개의 튜플에 의해 완전히 식별된다.
  • IP 주소와 포트 번호가 동일한 패킷: 동일한 목적지를 향해 전송!
  • 소스 포트 번호는 "반송 주소"의 일부로서 기능한다.

예제

recvfrom()

파이썬 코드에서 서버는 위의 코드를 통해 client 측의 포트 번호를 받아낸다.


TCP에서의 다중화 및 역다중화

TCP 소켓의 식별

  • TCP 소켓은 소스 IP 주소, 소스 포트 번호, 대상 IP 주소, 대상 포트 번호로 구성된 4개의 튜플에 의해 완전히 식별된다.
profile
어제보다 더 나은 오늘의 나를 위해 달려나가는 중입니다!

0개의 댓글