본문 바로가기

C.E/Computer network

데이터 링크 제어

TCP/IP Flow control

- stop and wait flow control

- sliding window flow control

 

 

 

데이터 링크층에서 하는 일에 대해 짧게 적어 보겠습니다.

두 장치간에 서로 정보를 주고 받을 때 데이터를 어떻게 정확히 보내고 받고, 오류를 제어 할 수 있는가에 관한것 입니다.

 

한 장치에서 다른 장치로 전선을 통해 전송된 신호가 다른 장치에 정확히 수신되지 않는다면 이건 전력낭비에 지나지 않습니다.

OSI 모델의 물리층에서는 전송(transmission)은 하지만 통신(communication)은 하지 않습니다.

 

데이터 링크층의 기능은 크게 3가지가 있습니다.  회선원칙,흐름제어,오류제어

 

여기선 흐름제어에 대해 설명하겠습니다.

 

대부분의 프로토콜에서 흐름제어란 수신장치로 부터의 확인응답을 기다리기 전에 얼마나 많은 데이터가 전송될 수 있는지를

송신장치에 알려주는 절차들 입니다. 데이터의 흐름이 수신장치를 압도할 정도가 되어서는 안 되니까 말이죠....

어떤 수신장치든 들어오는 데이터를 처리할 수 있는 제한속도와 들어오는 데이터를 저장할 수 있는 한정된 양의 메모리를

갖고 있습니다.

수신장치는 그 한계에 도달하기 전에 송신장치에게 알릴 수 있어야 하고 전송 장치로 하여금 적은 수의 프레임을 보내게

하거나 일시적으로 멈추도록 요구할 수 있어야 됩니다. 들어오는 데이터는 사용하기 전에 검사되고 처리되어야 하는데

이러한 처리율은 보통의 전송률보다 느립니다. 그래서 수신장치는 버퍼(buffer)라 불리는 메모리 블록을 가지고 있어서

들어오는 데이터를 처리될 때까지 저장합니다.

 

흐름제어(Flow control) 에는 2가지가 있습니다.

 

1. Stop-and wait 정지-대기

이방식은 송신측에서 각 프레임을 보낸 후에 확인 응답을 각각 기다리는 방식입니다. 확인응답을 받았을 때에만 다음 프레임을

보낼 수 있습니다. 보내고 기다리기를 번갈아 하는 이 과정은 송신측에서 전송종료(EOT)프레임을 보낼 때까지 반복합니다.

 

예를 들면 3개의 프레임이 있다고 할때.

 

송신                                  수신

1번 프레임 전송 ->

                                <- ACK

2번 프레임 전송 ->

                                <- ACK

3번 프레임 전송 ->

                                <- ACK

 

송신측에선 한 프레임을 보내고 다음 프레임을 보내기 전에 확인응답을 기다리게 됩니다.(Wait time)

 

 

2,Sliding window 슬라이딩 윈도우

이방식은 송신측에서 확인응답을 요구하기 전에 여러 프레임을 전송하는 것입니다.

프레임들을 계속해서 보낼 수 있으므로 이는 회선이 한 번에 여러 프레임을 운송하여 용량이 효율적으로 이용될 수 있음을

의미 합니다. 수신측에서는 여러 개의 데이터 프레임을 수령한 것에 대한 응답으로 1개의 ACK를 사용하므로 단지 몇몇

프레임에 대해서만 확인응답을 하게됩니다.

 

슬라이딩 윈도우는 송신기와 수신기의 가상의 상자를 의미 합니다. 프레임들은 0 에서 n-1 까지의 수를 가지도록 번호가

매겨져 있습니다. 예를 들어 n=8 이라면 프레임들은 0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7,........ 식으로 번호가 매겨 집니다.

이때 윈도우는 전체 모듈(8프레임)을 덮어쌀 수 없고 한 프레임 적게 덮어 싸게 됩니다.

 6  7  0  1  2  3  4  5  6  7  0  1

 

                |<-                        Window                        ->| 

프레임에 번호가 n-1(n=8로 가정)로 매겨 졌을경우 위 그림처럼 되는 것입니다. 

 

수신측은 ACK를 보낼 때, ACK는 수신하고자 하는 다음 프레임의 번호를 포함하게 됩니다. 만약 프레임 4로 끝난 프레임열을

받은 다음엔 확인응답으로 숫자 5를 포함하는 ACK를 보냅니다. 송신측은 5가 있는 ACK를 보고 4까지의 모든 프레임이 수신되었음을 알게 됩니다.

 

위 그림에서 송신측에서 프레임을 전송할때 0번 프레임을 전송하고 나면 윈도우의 크기는 한칸 오른쪽으로 이동하여

윈도우의 크기가 w일경우 w-1이 됩니다..전송을 계속 할경우 오른쪽으로 계속 줄어들게 됩니다.

이과정을 진행하는 중에 ACK가 도착하면 윈도우는 ACK에 의해 확인응답된 프레임들의 수와 같은 수의 새로운 프레임들을

허락하여 오른쪽 제일 끝부분이 확장되게 됩니다.

 

이처럼 데이터 링크층에서의 흐름제어는 프레임에 대한 송신 수신에 대한 확인응답 식으로 이루어 집니다.

 

 

짤막하게 오류제어에 대해서 몇글자만 적겠습니다.

 

데이터 링크층에서의 오류정정은 쉽게 구현 됩니다. 데이터 전송도중 오류가 검출되면 부정응답이 되돌아 오고 특정

프레임이 재전송됩니다.ㅋㅋ 

이 과정을 자동반복요청(ARQ:automatic repeat request)라고 부릅니다.

앞에서 설명한 흐름제어의 2가지 방식 stop-and-wait,Sliding window에 대한 각각의 오류 제어방식은

stop-and-wait ARQ 방식

Sliding window ARQ 방식 (Go-back-n, Selective-reject) 

이렇게 있습니다.

 

 

 

 

 

F.http://cafe.naver.com/nymph217/64

'C.E > Computer network' 카테고리의 다른 글

Fragmentation(단편화)  (0) 2014.06.06
프로토콜의 주요요소 3가지  (0) 2014.04.24