본문 바로가기
컴퓨터공학/정보통신개론

7. 프로토콜 (2)

by meow0110 2024. 6. 23.

■ 패리티 비트 검사

- 가장 대표적이다.

- 홀수, 짝수 패리티 방식으로 나눠

 

■ 문자데이터의 1의 갯수 홀수 : 0  

■ 문자데이터의 1의 갯수 짝수 : 1  

 

■ 문자데이터의 1의 갯수 홀수 : 1

■ 문자데이터의 1의 갯수 짝수 : 0 

 

■왼쪽그림

1번째 줄 : 하얀색 칸의 1의 갯수가 3개다. 즉, 홀수이기에 마지막 패리티 비트는 0이 되서, 총 3개로 홀수다.

2번째 줄 : 하얀색 칸의 1의 갯수는 짝수다. 그래서 마지막에 1을 넣어주면 총 5개가 된다. 즉, 홀수로 만들어준다.

3번째 줄 : 하얀색 칸의 1이 총 2개이다. 짝수다. 그래서 마지막에 1을 넣어서 총 3개로 만든

 

■오른쪽그림

1번째 줄 : 하얀색 칸 1의 갯수가 3개이다. 홀수! 그래서 마지막에 1을 넣어서 짝수로 만들어준다.

2번째 줄 : 하얀색 칸의 1의 갯수가 4개이다. 짝수. 그대로 두면 되니, 마지막에는 0 을 만든다. 그래서 총 1이 4개 짝수다!

 

■ 짝수가 2개가 발생함. 두개가 동시에! 그러면 짝수를 맞춰서 뒤에 0을 했다. 그런데 둘다 에러라면? 체크업할 수가 없다. 이러한 단점을 보완한게 블록 합 검사이다.

 

■ 해당 그림에서는 모두 에러가 없는 상태다.  만약 위의 1,2,3,4 번호의 점선동그라미의 숫자를 다른 것으로 바꾸면 에러를 검출할 수 있게 된다. 즉, 위의 동그라미 숫자를 마음대로 바꾼다음, 가로와 세로에서 각각 홀수패리티를 검사하게 되면 문제가 있는지 없는지 알 수 있게 된다.

 

■ 1번 : 작은 동그라미 하나

가로에서 1이 3개다, 그리고 세로에서도 1이 총 3개다. 즉 가로(홀), 세로(홀)이다. 이상이 없다.

 

■ 3번 : 세로모양 동그라미.

문자5의 가로로 보면 1이 3개다. 홀수이므로 끝에는 0이다. 세로로 보면 1이 2개다. 그래서 마지막 패리티가 1이다. 총합3이다. 

 

■ 4번 : 이건 패리티 검사가 안됨 왜?

4번 동그라미는 총 4개의 비트에서 오류가 난다고 가정함. 근데 4개의 비트 모두가 망가지면? 어느 위치에서든, 가로 세로 모두 검사해도 모두가 틀려버리면, 에러를 알수가 없게 된다. 어디서 에러가 발생했는지도 모르기 때문. 즉, 에러범위가 넓을수록 에러검출이 불가능해진다.  

 

■ 순환 중복 검사

- 위의 블록 합 검사의 문제점을 보완하기 위해 등장

- 가장 일반적으로 많이 쓰이는 강력한 방법

- 나머지 값이 0이면 정상! 나머지가 존재하면? 오류!

- XOR 연산 : 서로 다르면 1, 서로 같으면 0이다.

XOR연산     결과
  0 0 0
  0 1 1
  1 0 1
  1 1 0

■ 처음 덧셈

1의 자리만 0과 1이다. 그래서 1이다.  나머지는 같으므로 0으로 처리

 

■ 2번째 뺄셈

덧셈과 같다. 같으면 0, 다르면 1로 처리!

 

■곱셈

덧셈과 마찬가지. 

 

■ 순환중복검사 만들기

마지막 비트데이터가 나올 때까지 계산한다.

 

■ 순환 중복 검사의 오류를 체크하는 방법. 

 

■ 왼쪽은 오류없음, 왜냐하면 나머지가 0000이다. 즉 나머지가 없기 때문

■ 오른쪽은 오류있음이다. 0000이 아니니까! 

 

 

 

 

■ 에러 발생시, 재전송 요청 방법 3가지

 

■ 송, 수신  2개의 시스템 모두에 오류 검출 기능이 있어야함.

 

■ 정지형 ARQ 개념

■ 정지형 ARQ 원리

 

■ 정지형 ARQ 도식화

 

■ b 데이터 에러 :

데이터0을 보냄. 근데 가다가 사라짐.  (수신 측에서는 기다리고는 있지만 응답은 안함.)

보내는 측에서는 ACK0가 안오고 있음 (어? 수신측에서 잘 받았다고 연락이 와야하는데?)

계속 시간이 지나면서 타임아웃 발생

송신측에서는 "아! 제대로 못받았구나. 다시 보내줘야겠네" 해서 데이터0을 다시 보냄.

 

■c ACK 에러

수신측에서 "나 잘받았어!"라는 ACK0를 안보냄

송신측에서는 "이녀석 제대로 안받았구나" 라고 생각하면서 타임아웃이 발생

송신측은 다시 데이터0을 보내게됨.

 

 

■ 연속형 ARQ의 개념

-연속해서 데이터 프레임 전송방식

 

 

 

■ 연속형 ARQ의 원리

 

■ 묵시적인 방법 : 타임아웃이 발생한 경우

■ 명시적인 방법 : NAK를 받았을 경우

 

■ 살펴볼 것

I (2)은 보내짐. 근데 수신측에서는 ACK 2를 못보냄. 

그래서 시간이 지나고(타임아웃) 나서, 다시 I (2)를 보냄.

 

■ 즉, 첫번째 정지형은 하나 보내고 확인, 하나 보내고 확인 이라면, 연속형은 일단 줄줄이 보냄. 그리고나서 문제가 발생한 부분에 대해서는 후에 추가적으로 보내는 방법이라 생각하면 된다.

 

■ NAK가 발생한 경우다.

I (2)를 보냈으나 답이 없음. 그래서 NAK2를 보냄. "나 2번데이터 못받았어!"

바로 I(2)를 쏴줌. 

 

 

■ 선택적 재전송 ARQ 의 종류

크게, 묵시적, 명시적으로 나뉨

 

■선택적 재전송 ARQ도 연속형 데이터 전송방식을 따른다.

 

 

■ 연속형  ARQ처럼 일단 연속적으로 보낸다.

■ 순서번호를 갖는 ACK 신호를 받아야 한다.

 

■ 0,1,2 데이터를 쭉쭉 연속적으로 보냄

■ I(1)이 도착안함. 그래서 수신측에서 ACK1을 안보냄. 

■ 어? 0,1,2 데이터를 보냈는데, ACK 응답에서 1번이 빠져있네? (ACK1이 없음)

■ 아! 데이터1이 안보내졌구나 판단.

■ I (1)을 재전송함

 

■수신된 프레임은 버퍼에 저장 : 1번 빼고 0,2,3 에 대해서는 버퍼에 저장한다는 뜻.

■에러 프레임 수신 후 버퍼를 지운다 : 1이 제대로 왔으니 0,1,2,3이 순서대로 잘 왔네? 상위계층으로 보내고 버퍼에서는 지움. 

 

■ 수신측 : 야! 왜 순서가 0 2 3으로 보내? 이거 이상해! 1번 어딨어? 하면서 NAK 를 보냄.

■ I (1)을 보냈으나 에러 발생

■ 수신측 : 어? 1번 데이터 어딨어? 원래 순서대로면 0,1,2,3인데,  왜 0다음에 2번이야? 1번 어딨어? 이상해!

■ 수신측 : 야! I(1) 데이터 안보낸거 같아! 라면서 NAK1를 보냄. 

■ 송신측 : 미안! 바로 1번 보내줄게 

 

 

 

 

■ 학습정리

1. 프로토콜의 기본 개념

프로토콜

  • 정확한 정보를 전송하기 위해서 각 계층간에 필요한 통신 규약들의 집합

통신프로토콜

  • 통신을 하려는 상대방과 미리 합의한 통신 규약

프로토콜 계층화

  • 네트워크 기능간에 표준화된 인터페이스 제공

프리미티브

  • 상위계층과 하위계층간의 통신 프로토콜에서 서비스가 제공되는 경우 명령 형태와 데이터 형태로 송수신 정보를 교환, 요구(Request), 지시(Indication), 응답(Response), 확인(Confirm) 등의 인터페이스 제공

SAP(Service Access Point)

  • 프리미티브를 통해서 서비스되는 송수신 정보를 상호 교환하기 위해서 각 계층과 계층 사이에 존재하는 논리적인 서비스 접근점

 

2. 프로토콜의 기능

  • 단편화와 재합성(Fragmentation and Reassembly)
  • 캡슐화(Encapsulation)
  • 연결 제어(Connection Control)
  • 흐름 제어(Flow Control)
  • 동기화(Synchronization)
  • 순서 결정(Sequencing)
  • 주소 지정(Addressing)
  • 다중화(Multiplexing)

3. 오류검출

  • 데이터 링크 계층의 역할 중에서 데이터를 전송할 때 발생할 수 있는 모든 오류에 대한 제어 작업으로 필수적으로 행해짐
  • 데이터를 전송 할 때 발생하는 오류에 대한 검출에 사용하는 대표적인 방법으로는 패리티 비트 검사, 블록 합 검사, 순환 중복 검사 방법 등이 있음

 

4. 오류제어

  • 데이터를 전송하는 도중에 전송하는 프레임에 에러가 발생하거나 도착한 프레임에 대해서 에러를 검출한 경우 송신측에게 에러 발생한 데이터 프레임을 다시 전송해 주도록 요청하여 이를 해결하는 방법
  • 정지형 ARQ(정지-대기ARQ), 연속형 ARQ(고-백-앤 ARQ), 선택적 재전송 ARQ

 

'컴퓨터공학 > 정보통신개론' 카테고리의 다른 글

8. 흐름제어, HDLC 프로토콜  (0) 2024.06.24
7. 프로토콜 (1)  (0) 2024.06.23
6. 데이터의 부호화  (0) 2024.06.12
5. 데이터전송 방식  (1) 2024.06.12
4. 물리 계층의 표준 인터페이스  (0) 2024.06.01