2019년 4월 23일 화요일

[시험] 네트워크 (6)

하위 계층의 이해 (2)

오류제어, 흐름제어의 원리와 동작 방식을 이해한다.
통신 프로토콜에서 윈도우의 개념과 동작 방식을 이해한다.

  • 프레임
긍정 응답 프레임 : ACK 프레임
전송 데이터가 올바르게 도착했음을 알리는 용도

부정 응답 프레임 : NAK프레임
전송 데이터가 깨져서 도착했음을 알리는 용도
송신단에서 NAK 프레임을 회신 받으면 보내고자 하는 데이터를 재전송하여 오류를 복구한다.

정보 프레임: I 프레임
상위계층이 전송을 요구한 데이터를 송신하는 용도
순서번호, 송수신 호스트 정보등이 포함됨.

  • 프로토콜 기법
- ENQ/ACK 기법
송신단에서 ENQ 프레임을 전송하여 연결의 초기화를 진행 후 데이터를 쭉 전송하고 수신단에서는 데이터 전송이 제대로 되면 ACK신호로 회신한다. 데이터 전송을 마치면 송신단에서 EOT 프레임을 보내어 통신을 종료한다. 

  • 폴링기법
하나의 스테이션을 주 스테이션(여기는 일종의 서버)으로 지정하고 나머지는 종속 스테이션(이쪽이 단말기)으로 구성됨. 

- select 모드에서는 일종의 서버가 되는 메인 스테이션에서 데이터를 전송하고자 할때 사용하는 모드. 즉, 특정한 종속 스테이션으로 데이터를 보낼때 사용하는 모드 
- poll 모드는 메인 스테이션이 다수의 종속 스테이션에게 보낼 데이터가 있는지 여부를 확인 하여 데이터 전송이 이루어지도록 하는 모드이다.
메인에서 폴 프레임을 종속, 단말기로 보내는데 전송할 데이터가 없으면 NAK를 회신 받고, 전송할 데이터가 있으면 ACK를 보낸다. 

  • 오류제어가 없는 프로토콜 - 흐름제어 사용
송신단에서 수신단으로만 데이터를 전송하고, 전송오류가 없는 물리매체를 사용한다고 가정했을때.

정지-대기 프로토콜1
- 수신 버퍼의 갯수가 유한하므로 흐름제어가 필요하다. 즉, 송신단의 전송속도를 제어한다.
- 수신단에서 송신단의 전송 시점을 지정하기 위한 ACK 프레임이 필요하다. 
ACK프레임은 송신단에 긍정 응답을 회신하고, 다음 프레임을 전송하도록 지시하는 흐름제어의 역할도 수행. 
- 데이터 중복 수신 우려가 있고 순서 번호 기능이 필요하다.
-구조가 간단하고 성능이 좋지만 ACK프레임이 수신되어야지만 다음 데이터를 보내기 때문에 효율은 떨어진다. 

  • 오류제어, 흐름제어 모두 사용하는 프로토콜 
송신단에서 수신단으로만 데이터를 전송한다고 가정
- 오류제어와 흐름제어가 모두 필요하고, 프레임 변형 오류를 해결 하기 위한 수신 호스트의 NAK기능이 요구됨, 프레임 분실 오류를 해결하기 위한 송신단의 타임아웃 기능이 필요 

-NAK가 없는 경우 (부정 응답 프레임이 없을때)
정보 프레임을 분실했을때는 타임아웃 기능으로 오류 복구 / ACK신호 분실 시 마찬가지로 타임아웃 기능으로 오류 복구
정보 프레임이 변형 되었을때도 마찬가지로 타임아웃 기능으로 오류를 복구한다.

-NAK가 있을 경우
데이터 프레임 변형의 경우 NAK 응답으로 오류를 복구 
>>부정 응답을 받았다--> 송신단에서 데이터 재전송

  • 슬라이딩 윈도우 프로토콜 
양방향 통신을 지원, 오류제어와 흐름제어 기능을 모두 지원함
- 기본적인 절차는 송신단에서 정보 프레임을 (데이터 + 순서번호 + 오류 검출코드)를 순서 번호에 따라 순차적으로 전송한다. 
일반적으로 수신단에서 위의 정보 프레임을 수신하면 응답으로는 다음에 수신하기를 바라는 순서번호를 회신하게 된다.  송신단에서는 자신이 보낸 데이터를 버퍼에 저장하고있는데 이를 송신 윈도우라고 한다. 이 송신 윈도우에서 '대기'하게 되는데 이 프레임은 아직 ACK를 받지 못한 프레임이다.
수신단에서도 마찬가지로 수신한 정보를 보관하기 위해 내부 버퍼인 수신 윈도우를 유지할수 있다. 이 수신 윈도우의 크기는 프로토콜 동작 방식에 따라 크기가 달라진다.
선택적 재전송 방식에서는 송신 윈도우와 크기가 같다. 선택적 재전송에서는  프레임의 도착이 비 순서적으로 이루어져도 크기가 같기 때문에 송신 윈도우와 크기가 같고, 고백N 방식에서는 크기가 1인데, 바로전에 수신된 데이터 다음의 데이터를 기다리기때문에 크기가 1이다.

- 윈도우라는 것은 송 수신단 양쪽에 만들어진 버퍼의 크기를 말한다. 

- 연속형 전송
ACK 프레임을 받지 않고 여러 프레임을 연속적으로 전송한다. 전송한 데이터 각각에 대해서 ACK 프레임을 받지 않고 전송받은 마지막 데이터에 대해서만 ACK 프레임을 받는다. 이렇게 되면 그 전송 프레임의 하위 프레임들은 제대로 전송한 꼴이 되기 때문이다.
다만 오류가 적은 환경에서 효율적이다. 
오류가 발생했을 때 고백N 방식에서는 오류가 발생한 프레임 이후의 모든 프레임을 재전송하고, 선택적 재전송 방식에서는 오류가 발생한 프레임에 대해서만 재전송을 하게 된다.

  • 오류제어 기법
데이터 링크 계층에서 오류제어 기법은 주로 오류 검출 과정재전송 과정을 포함한다.
ARQ(Automatic Repeat reQuest)라고 하여 데이터 전송시 프레임이 손상 되었거나 분실 되었을 때 재전송이 수행되는 재전송과정이다. 
정지 - 대기 흐름제어에서는 정지 - 대기 ARQ로 구현하고, 슬라이딩 윈도우 흐름제어에서는 GBn ARQ, SR ARQ로 구현한다.

- 정지-대기 ARQ 재전송 절차는 송신단에서 ACK를 받을 때 까지 프레임의 복사본을 유지한다. 식별을 하기 위해 데이터 프레임과 ACK 프레임에 0,1로 번호를 매긴다. 
오류가 발생하면 수신단에서 NAK프레임을 회신하고 송신단에서 버퍼에 저장된 프레임의 복사본을 재전송한다. 또한 송신단에는 타이머가 있어서 정해진 시간에 ACK가 오지 않으면 데이터를 재전송한다. 

- GBn ARQ 절차는 수신단으로 데이터를 쭉 전송하다가 중간에 데이터가 손상된경우 수신단에서 NAK를 보낸다. 수신단에서는 손상이 발생된 이후의 데이터를 폐기한다. NAK를 받은 송신단에서는 손상된 데이터 부터 재전송하게 된다.  
또한 데이터 프레임을 분실한 경우 수신단에서는 분실한 데이터 이후의 데이터를 폐기하고 송신단에서는 분실한 데이터에 대한 NAK를 받는다. 분실된 데이터 부터 재전송을 하게 된다. 
ACK 프레임을 분실한경우에는 ACK 프레임을 받기 전 데이터 부터 재전송을 하게 된다. 

- SR ARQ
손상되거나 잃어 버린 프레임에 대해서만 재전송을 하게된다. 
수신단에서는 비순서적으로 도착한 데이터 프레임을 재정렬한다. 이때 재정렬까지 도착한 프레임들을 저장한 버퍼가 필요하다. 

* 오류제어 기법의 비교 

- 정지대기 ARQ : 구조가 간단하여 구현이 쉬우나 비효율적이어서 활용도가 낮다
- GBn ARQ : 구조가 간단하고 효율성이 향상되어 가장 많이 사용한다. 하지만 데이터 전송 시 중간에 오류가 발생하면 다시 처음 부터 전송을 해야한다.
- SR ARQ : 가장 효율적이나 구조가 복잡하여 유지보수 비용이 증가 따라서 필요한 경우에만 사용. 




댓글 없음:

댓글 쓰기