본문 바로가기

Computer Science/네트워크

[네트워크] 데이터링크와 전송제어 기법(1)

데이터링크는 물리계층위에 잇는 신뢰성있는 전송을 맡아주는 데이터링크다.

 

3가지 제어에 대한 기능 회선제어, 흐름 제어, 오류제어를 알아보자.

 

데이터링크란? 데이터링크 제어 프로토콜이 적용되는 스테이션 사이의 회선 (line)

크게 2가지 전송이 있다.

차선을 보면 외길인 경우

단방향 (simplex) 전송 : 링크에서의 데이터 흐름이 한쪽 방향만 허용되는 경우

 

차선의 갯수를 따라 반이중과 전이중을 나눌 있다.

양방향 (duplex) 링크 양방향으로 전송 수신이 가능한 링크

 

-반이중 (half duplex) 전송 링크 : 양방향 전송이 가능하지만 , 동시 전송이 허용되지 않음

양쪽으로 있지만 한번에 하나의 차선만 있다.

 

-전이중 (full duplex) 전송 링크 : 양방향으로 동시전송이 허용

양방향 동시에 차선을 있다.

 

회선 제어란?

반이중 전송 링크에서 개의 스테이션이 동시에 신호를 전송하는 경우 발생하는 신호 간의 충돌 현상이 발생하지 않도록 제어하는 규칙

 

충돌이 나지 않도록 만드는것이 회선제어

 

데이터링크는 -> 회선제어, 흐림제어(수신 시스템이 받아 저리하는 속도 만큼만 보내는  ), 오류제어(오류가 난경우 재전송을 요구하고 100%메세지를 받으려고)

 

회선제어

반이중 전송링크에서 동시에 보내면 오류가 난다.

 

 

이를 해결하기 위해 ENQ/ACK 기법 (Enquiry/Acknowledgement)

물어보고 확인을 받으면서 충돌을 제어하는 기법

 

전용 전송 링크로 구성된 스테이션 사이에서 주로 사용되는 기법

스테이션만 쓰는 전용 링크에서 일어난다.

 

A 스테이션이 ENQ 프레임(물어보기) 전송하여 연결의 초기화를 진행

B 스테이션은 ACK(답장) 전송하여 데이터 수신 준비되었음을 알림

전송이 완료되면 EOT(End of Transmission) 프레임 전송 그림 [4 -1]

 

 

 

폴링 기법

하나의 스테이션을 스테이션으로 지정하고 나머지는 종속 스테이션 으로 구성된 링크에서 사용되는 기법

여러 스테이션이 있고 주스테이션의 명령에 의해 종속 스테이션이 움직인다.

 

 

선택 (select) 모드

스테이션이 데이터를 전송하고자 사용하는 모드로 스테이션이 링크에 대한 제어 권한을 가짐 . 그림 4 2]

SEL 메세지를 보낸다.

스테이션C 메세지 보낼태니 받아라 하고 SEL메세지를 잘받았으니 ACK 메세지로 응답을 한다.

데이터를 스테이션 C 보내고 다시 ACK 응답을 한다.

 

 

(poll) 모드

종속스테이션이 데이터를 보내고 싶어할 있다.

 

A스테이션에 ' 보낼 데이터 있니?' 하고 폴을 보낸다. 없다면 NAK 보낸다. 보낼 데이터가 있다면 데이터를 보낸다.

 

스테이션이 다수의 종속 스테이션에게 보낼 데이터가 있는지의 여부를 확인하여 데이터 전송을 하는 모드 ->다중점 (multipoint) 폴링 절차(하나씩 물어본다는 )

 

스테이션에서 프레임을 전송하면 전송할 데이터가 없는 종속 스테이션은 NAK , 전송할 데이터가 있는 종속 스테이션은 ACK 보냄 . 그림 4 3]

 

충돌 제어(회선제어) 2가지 기법을 살펴봤다

 

 

 

흐름제어를 살펴보자 2가지가 있다.

흐름제어란?

물의 양이 너무 많으면 넘치게 된다. 수신시스템에서 오버플로우가 나서 버려지게 것이다.

전송 스테이션으로 부터 전송 데이터의 양을 제한하기 위해서 사용되는 절차

 

정지- 대기 흐름제어 기법

위에서 메세지를 보내고 확인 받고 보내고 확인받고를 반복하는 느낌

 

전송 측이 프레임을 전송한 데이터 프레임에 대한 ACK 기다려서 , 이에 대한 ACK 프레임이 도착하면 후에 다음 프레임을 전송하는 기법

 

EOT(end of translate) 프레임이 전송되면 데이터 전송이 종료 [그림 4 4]

장점 :정지 대기 기법은 구조가간단

단점 : 하나의 프레임을 보내고ACK 프레임이 수신되어야만 다음 프레임을 전송할 있기 때문에 효율성은 떨어짐

 

 

슬라이딩 윈도우 흐름제어 기법

전송한 프레임에 대한 ACK 프레임을 수신하지 않더라도 , 여러 개의 프레임을 연속적으로 전송하도록 허용하여 전송 대기 기법의 효율성을 개선한 방법

 

윈도우 (window)' ? 전송 수신 스테이션 양쪽에서 만들어진 버퍼(buffer) 크기

 

데이터를 전송하기 전에 버퍼에 담아놓고 보내는데 담아놓는 것이 버퍼이다. 즉, 남은 버퍼의 크기

 

 

 

전송 윈도우 : ACK 확인 없이 전송할 있는 프레임

윈도우 사이즈를 계속 모니터링 하면서 관리를 하고 있다.

ex) 윈도우가 5개다라고 하면 상대 한태 확인을 받지않고 5 프레임을 한꺼번에 보낼 있다는 뜻이다.

 

 

프레임이 전송된 윈도우의 왼쪽 경계가 오른쪽을 향하여 이동하여 결과 윈도우의 크기가 줄어듬 그림[4 -5]

 

윈도우의 크기를 W 하고 , 3 개의 프레임이 전송된다고 가정하면 윈도우에 남아있는 프레임의 수는 (W 3)

 

ACK 프레임이 도착하면 전송 윈도우는 ACK 프레임 도착된 프레임의 따른 프레임의 수만 오른쪽 경계가 오른쪽으로 이동하여 윈도우 크기가 늘어남

프레임이 0~7까지 8개가 있다.

전송 윈도우 크기 = 확인 없이 한꺼번에 보낼 있는

 

윈도우가 오른쪽으로 슬라이딩 하게 되는데

ACK 프레임을 받게 되면 오른쪽이 늘어나게 된다.

 

언제 윈도우가 줄어드냐면 보내고 나서

버퍼에 012 보내면 윈도우가 줄어든다.

버퍼에 012 쳐리됬다는 ACK 오면 윈도우에 다시 012만큼의 양이 늘어난다.

 

앞쪽(오른쪽) 윈도우는 언제 늘어나는가? 확인을(ACK) 받고나면

뒤쪽(왼쪽) 윈도우는 언제 늘어나는가? 내가 보내고 나면 

 

 

수신 윈도우 : 수신될 있는 프레임

ACK 프레임을 전송한 ( 받을 있다는 의미) 오른쪽 경계를 오른쪽으로 이동 -> 윈도우 크기가 커짐

수신 윈도우는 내가 수신할 있는 프레임

 

앞에 윈도우는 ACK보내고 나면 내가 확인해 준거니깐 받을 있는 양이 늘어난다.

 

전송측에서 데이터를 보내고 나면 버퍼에 찬다. 그래서 수신 윈도우 크기가 작아진다.

 

즉, 버퍼가 늘어나면 윈도우는 줄어들고 버퍼가 줄어들면 윈도우는 늘어난.

위쪽이 송신 아래쪽이 수신측

 

검은색 막대기가 버퍼를 가리킨다. 버퍼가 7칸이다(6,7,0,1,2,3,4).

검은 막대기 부터 윈도우 까지의 길이

 

0,1,2,3,4 버퍼 확인 없이 그냥 보낼 있는 수이다.

 

0 보다 왼쪽은 모두 보낸 것들이다.

 

6,7, 이미 보냈는지 확인이 안된 것들 ACK 명령이 올때까지 송신츨 버퍼에 가지고 있는다.

 

만약 받으면 검은색 바가 7오른쪽에 있을 것이고 윈도우도 1오른쪽에 있을 것이다.

버퍼는 7 이니깐

 

어떻게 오른쪽으로 윈도우가 확장될 있을까? ACK 받으면 윈도우가 열린다.(전에 보낸것이 처리 됐다는 뜻이니깐)

 

메시지를 보내면 버퍼가 찬다. 7 다음에 0 버퍼에 들어갈 차례인데 0 버퍼에들어가면 윈도우는 줄어든다.

 

 

수신측에서 내가 확인 하지 않고도 0,1,2,3,4 프레임을 받을 있다.

내가 확인을 해주면 버퍼가 비니깐 오른쪽으로 윈도우가 늘어난다.

6 확인 했다면 검은색 바가 6 오른쪽으로 가고 윈도우는 5까지 늘어난다.

 

 

슬라이딩 윈도우 예시

처음에 A B 버퍼가 7개이고 비워져 있다는걸 있다. 윈도우가 가득 찻으니깐

0,1,2 확인없이 보냈다.

 

송신의 버퍼는 3개를 보냈기 때문에 윈도우 뒤에가 줄어든다.

수신의 버퍼는 3개를 받았기 때문에 윈도우 뒤에가 줄어든다.

 

수신측에서 버퍼에 있는 0,1,2 받고 나면 처리를 하고 버퍼를 오른쪽으로 땡기고 윈도우의  크기를 다시 늘린다.

 

RR(recieve ready)3 = ACK 메세지

3 받을 준비 됐어 라는 의미

 

송신 에서 RR을 받으면 수신 측 받았구나 생각해서 버퍼를 오른쪽으로 땡기고 윈도우를 늘린다.

 

이제 3,4,5,6,7,0,1 한꺼번에 보낼 있는 상황이다.

3,4,5,6 보냈다.

 

3 보냈고 4 보내기 전에 그림이다. RR4 보낸 의미는 수신측에서 보낼 여건이 되면 보낸다.

 

RR4 보냈으니 송신 에서 버퍼 바를 한칸 오른쪽으로 가게하고 윈도우도 오른쪽으로 가게한다.

 

4,5,6을 보냈으니 수신 측 윈도우가 4칸이 줄어든다.

 

수신 측은RR4 받게 되면 확인을 하나 받은 것이니 오른쪽으로 한칸 움직이고 윈도우도 늘린다.

 

송신 측은4,5,6 번을 받았기 때문에 윈도우가 줄어든다.

728x90