포스트

컴퓨터 네트워크 #20


목차 - 전송계층 프로토콜

  1. 연결 지향 수송 프로토콜

연결 지향 수송 프로토콜(전송계층 프로토콜)

기본적으로 두 가지의 수송 서비스 유형이 있는데, 하나가 연결 지향 서비스비연결(or데이터그램) 서비스이다.

연결 지향 서비스는 사용자 사이의 논리적 연결 설정, 유지, 종료를 제공하고, 제공하는 서비스가 신뢰성이 있다.

신뢰성이 있다는 말은 목적지에 데이터가 잘 도착했는지 체크하는 기능이 있다는 것을 의미한다.

연결형/비인결형 수송 서비스 제공은 네트워크 계층의 연결형/비연결형 서비스와 유사하다.

이런 네트워크에 있어서 수송 프로토콜은 인터넷 환경이라기 보다는, 한 네트워크에 부착되어 있는 두 시스템의 종단간 프로토콜로서 사용된다.

포트(프로세스 고유 주소)
전송 서비스 접근점(Transport Service Access Point : TSAP)
두 포트 사이에 전송 계층 연결 하나가 설정된다.

이런 신뢰성 있는 순차적 네트워킹 서비스는 매우 단순한 수송 프로토콜을 가능하게 한다.

우리는 단순한 프로토콜의 다음 네가지 논점(주소지정, 다중화 , 흐름제어, 연결 설정)을 이해해야 한다.

  1. 주소지정

    한 사용자는 동일한 수송 프로토콜을 이요하여 다른 사용자와 연결 설정이나 데이터 수송을 원한다.

    목적지 사용자를 사용자 식별자, 수송개체 식별자, 호스트 주소, 네트워크 번호에 대하여 명시해야 한다.

    TCP 에서 소켓은 포트+호스트 를 의미한다.


  2. 다중화

    수송 프로토콜과 상위계층 프로토콜 사이에서 수송 프로토콜은 다중화/ 역다중화 기능을 수행한다.

    다중화란 목적지가 동일한 호스트이면 데이터를 하나의 가상 회선에 실어 전송하는 것을 말한다.

    상방향의 경우 가상 회선 연결 개수가 감소해 연결 설정에 소요되는 시간이 단축되고, 하방향의 경우 데이터 마다 트래픽 특성이 다르기 때문에 개별 가상 회선을 사용하는 것이 통신에 효율적이다.

    Desktop View


  3. 흐름제어

    여기서는 신용기법에 대해서만 다룬다.

    수송 프로토콜에서의 흐름 제어는 링크 계층보다 상당히 복잡하다.

    이는 여러가지 이유가 있는데 대체적으로 전송지연이 길고 전송 지연시간이 매우 가변적이기 때문이다.

    전송 지연의 가변성은 시간만료 메커니즘을 사용하기 힘들게 한다.

    하나의 수송 개체가 다른 수송 개체와의 연결에서 세그먼트 전송률을 억제하려고 하는데, 이는 다음과 같은 이유 때문이다.

    • 수신 수송 개체의 사용자가 데이터의 흐름에 보조를 맞출 수 없다.
    • 수신 수송 개체 자체가 세그먼트 흐름에 보조를 맞출 수 없다.

    수송 개체는 버퍼공간을 통해서 들어오는 세그먼트를 저장하고 내보내는데, 버퍼가 가득 채워지게 되면, 수송 개체는 세그먼트의 흐름을 중지하거나 느리게 하는 절차를 수행해야 한다.

    수송 개체는 이러한 흐름 제어 요구에 대해 다음과 같은 방법으로 대처한다.

    • 아무것도 하지 않음
    • 더 이상 세그먼트를 받지 않음
    • 고정된 슬라이딩 윈도 프로토콜 사용
    • 신용 기법 사용

    우리는 여기서 신용 기법에 대해 알아본다.

    신용 기법에서 전송되는 개별적인 데이터 옥텟은 각각 유일한 순서 번호를 가진다.

    데이터 뿐만 아니라 전송되는 각 세그먼트는 헤더에 흐름제어와 관련된 세부분을 포함하는데 바로 순서번호(SN : Sequence number), 확인응답 번호(AN : acknowledgment number), 윈도(W : window) 이다.

    수송 개체가 세그먼트를 전송할 때, 세그먼트의 데이터 부분에 첫 번째 옥텟의 순서 번호순서 번호(SN) 에 기록한다.

    나머지 데이터는 첫 번째를 기준으로 이어서 번호가 매겨진다.

    수송 개체는 들어오는 세그먼트에 대해(AN = i, W = j)를 포함하는 반환 세그먼트로 회신한다.

    반환 세그먼트는 다음과 같이 해석된다.

    • 순서 번호 SN = i -1 까지의 모든 옥텟은 확인 되었다. 다음으로 기대하는 옥텟은 순서번호 i를 갖는다.
    • W = j 옥텟만큼의 추가 윈도우를 전송할 수 있도록 허락한다. i부터 j-1까지의 순서 번호를 가진 세그먼트를 전송할 수 있다.

    위를 그림으로 보면 다음과 같다.

    Desktop View

    진행순서는 아래와 같다.

    1. A200개의 데이터 옥텟을 전송할 수 있다.(가정)
    2. A는 처음에 3개의 세그먼트로 600개의 옥텟을 보내고, 윈도우 크기를 줄인다 (1601-2400)
    3. B는 3개의 세그먼트를 받은 후 , 1400옥텟의 신용 중 600옥텟을 수신하였고 800의 신용이 남아있다.
    4. 만약 B가 이 연결에서 1000옥텟을 받을 준비가 되어있다면(가정), B는 1600까지의 모든 옥텟들의 수신을 회신하고, 1000옥텟의 신용을 발송한다.
    5. A는 B의 메시지(1000 옥텟의 신용)을 받기전에 이미 2개의 세그먼트 ( 1601-2000 )을 전송했다.
    6. 그러므로 A의 남은 신용은 600옥텟이다.
    7. A는 교환이 진행되면서, 전송할 때마다 윈도우의 후미 경계를 전진시키고, 신용을 부여 받을 때마다 선두 경계를 전진시킨다.

    이 매커니즘에 대한, 전송과 수신측의 일반화는 다음 그림과 같다.

    Desktop View

    (a)는 전송 순서 공간, (b)는 수신 순서 공간이다.


  4. 연결 설정/해제

    1. 일반적인 연결 설정

      Desktop View

      1. A가 B에게 연결 설정을 요구한다.

      2. B가 연결 설정을 허락하는 경우 : 연결 설정 수락 신호인 Conn_Ack 을 보낸다.

      3. B가 연결 설정을 허락하지 않는 경우 (연결 거부) : A에게 신호를 보내지 않는다.

      → 전송 계층의 연결 설정은 양자간의 합의가 필요하다.


    2. 3단계 연결설정

      Desktop View

      오류에 대비해 A는 Conn_Ack 에 대해, 응답 신호인 Conn_Ack_Ack 을 보낸다. 이 신호는 데이터를 전송하는 것으로 대체 될 수 있다.


    3. 동의 없는 연결 해제

      Desktop View

      위와 같은 연결 해제는 데이터가 전송중에 연결 해제 요청이 들어오면, 데이터 전송이 완료되지 못하고 연결이 끊어져 버린다.


    4. 점진적 연결 해제

      Desktop View

      하나의 연결에 2개의 단방향 연결을 지원함으로써 연결이 해제되더라도, 전송중이었던 데이터는 전송이 완료가 가능하게 한다.

      대신 개별적 해제 절차가 필요하다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.