둘셋 개발!

[네트워크] Protocol Functions 1 본문

네트워크

[네트워크] Protocol Functions 1

23 2022. 6. 3. 11:08

Protocol Function 이란?

여러 protocol(통신규약) 에서 두루 사용되는 특정 매커니즘을 말함

 

EX ) 

error control, flow control, framentation ..

(오류 제어, 흐름제어,..)


Error control

PDU가 정상적으로 전달 되지 않을 때 protocol entity의 동작

 

error control의 동작은 두가지로 나눠볼 수 있다.

첫번째는 Detect로 송신 측에서 오류가 난 상황을 인지 하는 것이고 , 두번째는 react로 오류 상황에서의 송신측의 동작을 말한다.

detect와 react의 종류를 그림으로 나타내면 다음과 같다.


1. Explicit Ack - detect

수신측에서 Pdu를 온전히 잘 받았는지 ack를 통해 송신측에게 알려주는 것

 

  1) Positice Ack

       :  정상 수신된 pdu에 대한 ack를 보냄

       - 지금까지 수신한 pdu의 다음 sequence number을 알려줌

2) Negative Ack

     : 미수신 Pdu를 알려줌

      


2. Implicit timer - detect

ack에 대한 기한을 두고, 기한을 넘기면 action을 취함

 

- Activity timer

  : timer 시간을 충분히 크게 두고 reaction을 감지하면 멈추고 pdu를 수신함

 

 

- timer interval 을 얼마나 잡아야 할까?

적당히 잡아야 함

 너무 짧으면 time-out이 빈번하게 일어나서 불필요한 reaction 발생

 너무 길면 reaction이 너무 늦어지면서 불필요한 deadlock 구간 발생

 


3. CRC - detect

데이터 전송 시 오류가 났는지 판단하기 위해 데이터에 code를 덧붙이는 방식

: cyclic redundancy check

 

  - crc 방법

p(x) = 110011 

g(x) = 110

 

여기서 p(x)는 보내고자 하는 데이터이고 g(x)는 오류검출을 위한 데이터이다.

g(x)를 다항식으로 나타내면 최고차항이 2이므로 parity bit는 00으로 한다

 

info bit인 p(x) 110011 뒤에 parity bit를 붙여 11001100을 수신측에게 전송한다.

 

그러면 수신측에서는 오류검출을 위해 11001100을 g(x)로 나눈다.

0으로 떨어지면 오류가 발생하지 않은 것이고, 그렇지 않으면 오류가 발생한다고 판단한다.


4. ARQ - react

automatic repeat request 의 약자로, 오류가 발생하면 재전송하는 기법이다

 

- arq 종류

 1) stop and wait

    : 송신측이 하나의 데이터를 보내면 그에 대한 ack를 수신측이 보낼 때까지 기다린다.

출처 : https://velog.io/tags/stop-and-wait

 

2) Go back N

 : 데이터를 계속 보내다가 나중에 n번째 데이터가 손실되었다는 것을 알았을 때 n번째로 돌아가서 다시 n번째 부터 데이터를 보내는 것

  : 재전송 수신까지 시간이 오래 걸림

 

 

3) Selective repeat

  : 손실된 n번째 데이터만 재전송함

  : 재전송 수신까지 시간이 덜 걸림

 

 


5. FEC - reack

송신측이 보낸 데이터가 잘못됐을 경우 (수신은 됐지만 데이터가 이상함) 수신측이 Coding theory(자가 치유) 하는 기법 

송신측이 redundant data(뻥튀기)해서 보내면 수신측이 재전송을 받지 않고 스스로 오류를 정정할 수 있음

 

 - real-time traffic에 유리함