[네트워크] 다중화와 역다중화 (Transport Layer)

Yu River·2024년 3월 20일
0

정보관리기술사

목록 보기
5/9

[1] 다중화와 역다중화

다중화

  • 캡슐화된 세그먼트들을 네트워크 계층으로 전달하는 작업
  • 출발지 호스트에서 소켓으로부터 데이터를 모아 헤더 정보를 더해 캡슐화 한다.
  • 애플리케이션 계층에서 메시지를 만들고 이들은 소켓을 통해 트랜스포트 계층으로 넘어간다.
  • 데이터는 세그먼트로 캡슐화 되고 각 세그먼트를 네트워크 계층으로 전달하는 작업이다.
  • 트랜스포트 계층 다중화에서의 두 가지 요구사항
    • 소켓은 유일한 식별자를 가진다.
    • 각 세그먼트는 세그먼트가 전달 될 적절한 소켓을 가리키는 특별한 필드를 가진다.
      • 특별한 필드 : 출발지 포트번호 필드 + 목적지 포트번호 필드
      • 각각의 포트 번호는 0~65535의 16비트 정수이다. 이 중에서 0~1023 까지의 포트번호를 잘 알려진 포트번호라고 하여 사용을 엄격하게 제한하고 있다.
        • 예를 들어 HTTP(포트번호 80), FTP(포트번호 21), SSL, HTTPS(443), SMTP(25, 587), SSH(22) 등과 같은 유명한 포트들이 있다.

역다중화

  • 네트워크 계층을 통해 도착한 데이터를 트랜스포트 계층 세그먼트의 데이터를 올바른 소켓으로 전달하는 작업
  • 트랜트포트 계층에 상대 프로세스로부터 수신된 세그먼트 필드 집합이 있으며 이들은 사전에 설정된 트랜스포트 프로토콜에 따라서 알맞게 검사를 받는다.
  • 그리고 검사가 완료된 세그먼트 집합은 올바른 소켓으로 전달된다.
  • 여러개로 분할되어서 오는 세그먼트들을 한데 모아서 소켓으로 전송시키는 과정이다.
  • 트랜스포트 계층에서 역다중화 서비스를 구현하는 방법
    • 호스트의 각 소켓은 포트 번호를 할당받는다.
    • 세그먼트가 호스트에 도착하면 트랜스포트 계층은 세그먼트 안의 목적지 포트 번호를 검사하고 상응하는 소켓으로 세그먼트를 보낸다.
    • 세그먼트의 데이터는 소켓을 통해 해당되는 프로세스로 전달된다.

[2] Transport Layer (전송 계층,4번 Layer)

1. 트랜스포트 계층과 애플리케이션 계층

트랜스포트 계층

  • 트랜스포트 계층 프로토콜은 서로 다른 호스트에서 동작하는 애플리케이션 프로세스들 간의 논리적인 통신을 제공한다.
    • 즉, 애플리케이션의 관점에서 프로세스들이 동작하는 호스트들이 직접 연결된 것처럼 보이도록 한다.
  • 트랜스포트 계층 프로토콜은 네트워크 라우터가 아닌 종단 시스템에서 구현된다.
    • 애플리케이션의 메시지를 분할하여 트랜스포트 계층 헤더를 추가해서 트랜스포트 계층 세그먼트(트랜스포트 계층 패킷)로 변환한다.
  • 트랜스포트 계층이 하위의 네트워크 계층으로부터 데이터를 수신하면 여러 프로세스들 중 하나에게 데이터를 전달해야 한다.
    • 이 때, 수신 측 호스트의 트랜스포트 계층은 실제로 데이터를 직접 프로세스로 전달하지 않는다.
    • 호스트가 가진 여러 개의 소켓들 중 적절한 한 개의 소켓으로 전달하는 역할을 한다.
      • 다중화 : 출발지 호스트에서 소켓으로부터 데이터를 모아 헤더 정보를 더해 캡슐화하여 캡슐화된 세그먼트들을 네트워크 계층으로 전달한다.
      • 역다중화 : 네트워크 계층을 통해 도착한 데이터를 트랜스포트 계층 세그먼트의 데이터를 올바른 소켓으로 전달하는 작업
  • 소켓은 유일한 식별자를 가지고 세그먼트는 각 세그먼트가 전달될 적절한 소켓을 가리키는 특별한 필드를 갖고 있어야 한다.

애플리케이션 계층

  • 애플리케이션의 한 부분으로서 프로세스는 소켓을 가지고 있다.
    • 소켓을 통해서 프로세스와 프로세스가 네트워크를 통해 데이터를 주고받을 수 있다.

트랜스포트 계층과 애플리케이션 계층

  • 트랜스포트와 애플리케이션 계층 사이에 소켓(초록 네모 박스)이 있고 소켓과 프로세스가 연결되어 있다.
  • 트랜스포트 계층은 메시지를 직접 프로세스로 전달하지 않고 중간 매개자인 소켓에게 전달한다.
  • 이때 애플리케이션이 메시지를 받을 다양한 소켓을 가지고 있기에 구분값이 필요하다.
    • 각 소켓은 TCP 소켓인지 UDP 소켓인지를 구분하는 식별자를 가지게 된다.
  • 역다중화와 다중화 작업은 한 계층의 프로토콜이 상위 계층의 프로토콜에 의해 사용될 때마다 필요한 작업이다.

2. 트랜스포트 계층과 네트워크 계층

예시 : 편지를 보내는 일

  • “조이"라는 개구리는 가족들의 우편물을 모아서 집으로 찾아오는 집배원에게 편지를 전해준다.
  • 고양이네 집에 편지가 도착하면 “헤이”라는 고양이는 우편물을 가족들에게 나눠 준다.
    • 봉투 안의 편지 = 애플리케이션 메시지
    • 가족들 = 프로세스
    • 집 = 호스트(종단 시스템)
    • “조이", “헤이" = 트랜스포트 계층 프로토콜
    • 우편 서비스과 집배원 = 네트워크 계층 프로토콜 (집배원은 소켓)
  • 트랜스포트 계층
    • 종단 시스템의 애플리케이션 프로세스에서 네트워크 계층(네트워크의 경계 지점)까지 메시지를 운반
    • 네트워크 계층에서 애플리케이션 프로세스로 메시지를 운반하는 역할을 한다.
  • 다중화 : 조이가 가족들의 우편물을 모아서 집배원에게 넘겨줄 때
  • 역다중화 : 헤이가 우편물을 가족들에게 직접 나눠주는 것

3. 인터넷 트랜스포트 계층

UDP와 TCP

  • TCP/IP 네트워크에서 네트워크는 2가지 유형의 트랜스포트 계층 프로토콜을 제공한다.
  • 헤더에 오류 검출 필드를 포함해 무결성 검사를 제공한다.

UDP

  • 비신뢰적이고 비연결형 서비스
  • 프로세스 간 데이터 전달과 오류 검출이라는 최소한의 서비스를 제공
  • 허용하는 한 어떤 속도로도 데이터를 전송할 수 있다.
  • UDP 소켓은 포트 번호를 기반으로 연결한다.
  • 다중화와 역다중화
    • UDP 소켓이 생성될 때, 트랜스포트 계층은 포트 번호를 소켓에게 할당한다.
      • 송신 호스트는 애플리케이션 메세지와 함께 헤더에 출발지 포트 번호와 목적지 포트 번호를 담아 트랜스포트 계층 세그먼트로 캡슐화한다.
    • 네트워크 계층으로 전달되어 IP 데이터 그램으로 캡슐화되고 수신 호스트로 전달한다.
    • 수신 호스트의 트랜스포트 계층은 세그먼트 안의 목적지 포트 번호를 검사하고 올바른 소켓에 전달한다.
    • UDP 소켓은 목적지의 IP주소와 목적지 포트 번호로 식별된다.
      • 목적지 IP 주소는 네트워크 계층에서 알아낸다.
      • 출발지 포트 번호는 복귀 주소로 사용하기 위해 보내졌다.
      • 즉, UDP 세그먼트들의 출발지의 IP주소와 포트번호와는 상관없이 목적지 IP 주소와 목적지 포트 번호가 같다면 동일한 목적지 소켓을 통해 동일한 프로세스로 향한다.

TCP

  • 신뢰적이고 연결지향형 서비스
  • 흐름제어, 혼잡 제어, 순서번호, 확인응답, 타이머를 사용해 신뢰적인 데이터 전달을 제공
  • TCP 소켓은 포트번호와 IP 주소를 기반으로 연결한다.
  • TCP 소켓은 출발지 IP 주소, 출발지 포트 번호, 목적지 IP 주소, 목적지 포트 번호에 의해 식별된다.
    • 즉, TCP 세그먼트들은 출발지가 다르면 서로 다른 목적지 소켓을 통해 프로세스로 전달된다.

IP

  • 최선형 전달 서비스이다.
  • 즉 IP는 호스트 간에 세그먼트 전달을 보장하지는 않는다.(비신뢰적 서비스)
  • TCP는 IP의 호스트 간의 비신뢰적인 서비스를 프로세스 사이의 신뢰적인 데이터 전송 서비스로 만들어준다.

profile
도광양회(韜光養晦) ‘빛을 감추고 어둠속에서 힘을 기른다’

0개의 댓글