cs

network - 데이터링크 계층에서의 흐름제어

joepasss 2022. 7. 19. 16:21

정의 및 특성


  네트워크의 프로토콜에서 흐름제어란 수신기로부터 확인응답을 기다리기 전에 얼마나 많은 데이터가 전송될 수 있는지를 송신기에 알려주는 일련의 절차를 의미한다.

  슬라이딩 윈도우가 의미하는 윈도우의 이동은 흐름제어 기능을 상징적으로 표현하는 것으로, 수신기가 연속적으로 수신할 수 있는 정보 프레임의 개수를 윈도우의 크기로 지정하여 송신기의 데이터 전송속도를 제어하는 것을 말한다.

 

  즉 송신기로부터 수신기로 데이터를 전송함에 있어 데이터의 흐름이 수신기에 부담을 주어서는 안 된다는 것이다. 다시 말해 어떤 수신장치든 들어오는 데이터를 처리할 수 있을 정도의 제한 속도와 데이터를 수용할 수 있는 메모리 용량이 한정되어 있다는 것이다. 따라서 수신장치는 송신장치가 보내는 데이터양의 수용 정보를 송신장치에 알릴 수 있어야 하고 송신장치로 하여금 적은 수의 프레임을 보내게 하거나 일시적으로 멈추도록 요구할 수 있어야 한다.

 

  프레임이 도착하면 각 프레임 단위별로 한 번에 그 해당 프레임에 대하여 확인응답이 될 수 있어야 한다. 만약 손상된 프레임이 도착하면 수신기는 오류 메시지를 보낸다.

  슬라이딩 윈도우 프로토콜은 대부분의 통신 프로토콜에서 사용하는 방식으로 두 단말기 간의 데이터 전송을 위한 일반적인 통신 프로토콜로 오류제어와 흐름제어 기능을 함께 지원한다

 

흐름제어 순서

  정보 프레임을 전송하는 송신기는 보내려는 데이터뿐 아니라 프레임의 순서번호, 오류 검출 코드 등을 프레임에 표기한 후 정해진 순서번호에 따라 순차적으로 송신한다.

 

  정보 프레임을 받은 송신기는 해당 프레임의 순서번호에 근거하여 송신기에게 응답 프레임을 회신해야 한다. 일반적으로 응답 프레임의 내용에 포함되는 순서번호는 정상적으로 수신한 프레임의 번호를 기재하지 않고 다음에 수신하기를 기대하는 프레임 번호를 표기한다. 따라서 긍정응답 프레임에 기록된 순서번호 이전까지의 프레임은 모두 제대로 수신했다는 의미가 된다.

 

  수신기는 수신한 정보 프레임을 보관하기 위해 내부 버퍼인 수신 윈도우를 유지할 수 있다. 수신 윈도우에는 개념적으로 수신을 기대하는 프레임의 순서번호가 들어가기 때문에 프로토콜의 작동 방식에 따라 크기가 달라질 수 있다. 선택적 재전송 방식에서는 프레임의 도착이 비순서적으로 이루어져도 처리가 가능하기 때문에 수신 윈도우의 크기가 송신 윈도우의 크기와 동일하다. 그러나 Go Back N 방식에서는 수신기가 항상 이전에 수신한 프레임 바로 다음 프레임만 기다리기 때문에 수신 윈도우의 크기가 1이면 된다.

 

 

정지 & 대기 (stop and wait) 흐름제어


  흐름제어에 있어 정지/대기 방식에서 송신기는 각 프레임을 보낸 후에 확인응답을 기다린다. 확인응답을 받았을 때만 다음 프레임을 보내기 때문이다. 보내고 기다리기를 반복하는 과정은 송신기가 전송 종료 프레임을 보낼 때 까지 반복해서 이루어진다.

 

  정지 / 대기의 장점은 아주 단순하다는 것이다. 다음 프레임이 전송되기 전에 각 프레임은 검사되고 확인된다. 반면 느린 속도로 인한 비효율성이 단점이다. 각 프레임은 수신기에 전달되고 확인응답이 되돌아와야만 그 다음 프레임이 전송될 수 있다. 장치 간의 거리가 멀 경우 각 프레임 사이에서 긍정응답을 기다리는 시간이 길어 전송 시간이 증가하게 된다.

 

작동 과정

  송신 측으로부터 데이터를 수신 측에 전송했을 경우 에러 검사 수행 후 에러가 없으면 긍정응답(ACK)를 송신 측에 전송해 주는 과정을 반복 시행한다. 여기서 부정응답(NAK)을 수신 측으로부터 받았다면 송신 측은 재전송을 통해 에러를 복구할 수 있다.

 

 

Go Back N


  연속 ARQ(continuous ARQ)의 한 변형, 한 스테이션의 윈도우 크기로 결정된 일련의 프레임을 전송한다. 수신 스테이션은 어느 한 프레임에서 에러를 발견하면 그 프레임에 대한 부정응답(NAK)을 보낸다. 그리고 에러가 난 프레임이 고쳐질 때 까지 이후의 프레임은 수신하지 않는다.

 

  송신 스테이션은 NAK 수신시 에러가 난 프레임과 그 다음의 모든 프레임들을 다시 재전송해야 한다.

 

 

  Go Back N ARQ 방식에서는 각각의 프레임에 대해서 확인 메시지를 보낼 필요는 없다. 이 것은 슬라이딩 윈도우 프로토콜에서 처럼 프레임 0, 1, 2, 3을 전송하고 ACK0 을 보낸 후 프레임 1, 2에 대해서는 응답을 보내지 않았지만, 3번 프레임이 도달한 후 ACK3을 보내면 송신 측은 프레임 3과 이전의 프레임이 제대로 수신되었다고 생각할 수 있기 때문이다.

 

선택적 재전송(selective repeat)


  Go Back N 방식의 문제점은 수신기가 올바르게 수신한 정보 프레임도 오류로 처리되어 재전송된다는 것이다. 이 문제점을 해결하려면 특정 프레임만 재전송하고 제대로 수신한 것은 정상적으로 처리하여 재전송되지 않도록 해야 한다.

  이처럼 오류가 발생한 프레임만 선택적으로 복구하는 방식을 선택적 재전송이라 한다.

 

 

  선택적 재전송 방식은 앞선 정보 프레임에 대한 처리가 이루어지지 않더라도 오류 없이 수신된 모든 정보 프레임을 수신 윈도우에 보관하기 때문에, 수신 윈도우의 크기가 송신 윈도우의 크기와 같다.

 

슬라이딩 윈도우


  슬라이딩 윈도우 방식은 한 번에 여러 개의 프레임을 전송함으로써 전송효율을 높일 수 있다. 슬라이딩 윈도우 프로토콜은 송신 측에서 수신할 수 있는 프레임의 갯수를 같은 윈도우로 표시하는 송신용 윈도우와 수신용 윈도우를 가져야 한다.

 

  송신 측에서 전송한 프레임에 대해 수신 측에서는 확인 메시지를 이용하여 송신 측 윈도우의 크기를 조절함으로써 전송속도를 제한하는 방식이다. 결국 송신 측은 수신 측으로부터 확인 메시지를 받지 않더라도 윈도우로 표시된 한도까지는 계속 프레임을 전송할 수 있으므로 전송효율을 높일 수 있다. 송신 측은 보낼 프레임의 순서번호 목록을 유지하고 수신 측은 받을 프레임의 순서번호 목록을 유지한다. 이들 각 목록은 프레임의 한 윈도우라 표현할 수 있고 윈도우의 크기는 프레임의 순서번호에 할당된 비트 수에 의존한다. (할당된 공간의 크기가 n이면 윈도우의 크기는 2n-1이 된다.)

 

피기배킹 (piggybacking)


  양 방향 전송 기능을 갖는 채널 방식에서는 고정된 송수신기의 구분 없이 양 방향으로 동시에 정보 프레임과 응답 프레임을 교차하여 전송할 수 있다. 이때 ACK와 NAK 프레임으로 구성된 응답 프레임의 목적은 상대방이 다음에 전송할 프레임을 지정하기 위함이므로, 반드시 응답 프레임만을 사용해 응답 기능을 수행해야 하는 것은 아니다.

 

  정보 프레임의 구조를 적당히 조정해 재정의하면 정보 프레임을 전송하면서 응답 기능까지 함께 수행할 수 있다. 이런 방식으로 프로토콜을 작성하면 응답 프레임의 전송 횟수를 줄이는 효과가 있어 전송효율을 높일 수 있다. 이를 피기배킹이라 한다

 

  피기배킹을 사용하는 프토콜에서는 원래 정보 프레임 내용에 포함되는 데이터와 해당 데이터의 순서번호는 물론이고, 현재까지 제대로 수신한 프레임의 순서번호까지 포함할 수 있다. 결국 피기배킹을 사용하는 프로토콜의 정보 프레임 구조에는 응답용 순서번호를 보관하는 필드가 추가되어야 한다.

 

 

  응답 프레임을 전송할 시점에서 전송할 정보 프레임이 있으면 피기배킹 방식을 사용할 수 있지만, 정보 프레임이 없으면 응답 프레임만 전송해야 하는 데 이 때 응답 프레임의 회신을 잠시 늦춰 나중에 피기배킹 방식으로 전송하는 것도 가능하다. 이때 기다리는 시간이 전체 시스템 성능에 영향을 미친다.