ACK   Acknowledgement   확인 응답

(2023-05-20)

Positive Acknowledgement, 긍정 확인응답, NACK, NAK, Negative Acknowledgement, 부정 확인응답, SACK, Selective Acknowledgement, 선택 확인응답, TCP 확인응답


1. 확인응답 (Acknowledgement) 이란?

  ㅇ 송신 메세지가 정상 수신되었음을, 수신측에서 송신측으로 확인응답하는 것
     - 용도  :  오류제어흐름제어를 위해 사용
     - 방법  :  통상, 데이터 프레임 안에 포함시켜 응답함  ☞ 피기백 방식 참조


2. 확인응답 종류

  ㅇ ACK 신호 (긍정 확인응답)
     - 수신측에서 메세지에러없이 정상적으로 수신했거나, 송신해도 된다는 것을
       송신측에 알리기 위한 제어신호

     - ACK 특징
        . ACK 신호 사용은 패킷교환망에서 서비스의 신뢰성에 도움을 주나, 
        . 과도한 부하를 주게되어 망의 신뢰성이 높아질수록 사용하지 않는 경향이 있으며, 
        . 이 경우 종단측은 에러검사 등에 있어 더 많은 책임을 부여 받게됨
  
     - ACK 신호 형식
        . 통상적으로 별도의 패킷 또는 다음 패킷에 속하는 1비트짜리 플래그일 수도 있음 

  ㅇ NACK 또는 NAK 신호 (부정 확인응답)
     - 부정 확인응답은 정상적으로 수신되지 않았음을 송신측에 알리는 메세지이나, 
       실제적으로는 잘 쓰이지 않고 있음

     * 보통은, 송신측이 순서번호타이머를 갖추고 있기 때문에,
        . 일정 시간이 지나도 ACK가 오지 않으면, 오류로 간주하여 해당 메세지를 재전송하게 됨


3. TCP 확인응답TCP 확인응답의 주요 특징
     - 명확한 확인응답을 위해,                                    ☞ TCP 헤더 참조
        . 확인응답 번호를, 다음에 기대되는 순서 번호로 함
     - 신뢰적 전송 등을 위해,                                     ☞ TCP 타이머 참조
        . 송신측은 매 세그먼트 전송때 마다, 부정 확인응답(NACK)의 일종(시간 버젼)인,
        . 재전송 타이머를 가동
     - 전송의 효율성 등을 위한 흐름제어로써,                      ☞ 윈도우 흐름제어 참조
        . 슬라이딩 윈도우 방식에 의한 확인응답을 함


  ※ 한편, TCP에서 과다한 확인응답 방지를 위해,
     - 누적 확인응답, 선택적 확인응답 실시

  ㅇ 누적 확인응답 (CACK, Cumulative Acknowledgement)
     - 현재까지 수신된 바이트들을 단 하나의 ACK로 일괄 확인응답 하는 것
        . TCP에서는, TCP 헤더의 32 비트 ACK 필드에서 이를 구현 
     - 중간 세그먼트손실이면, 수신측은 그 뒤 세그먼트는 보관하고,
        . 현재까지 수신된 세그먼트 중 연속된 세그먼트로써 마지막 만 누적 확인응답 함
     - 만일, 비 연속적으로 수신된 세그먼트(여러 중간 손실)이면,
        . 처음 중간 손실부터 다시 재전송 시작되는 등 심각한 성능 저하 발생

  ㅇ 선택적 확인응답 (SACK, Selective Acknowledgement)
     - 여러 세그먼트손실세그먼트 만 선택적으로 확인응답하는 방식
        . TCP에서는, TCP 옵션으로 구현됨
           .. TCP 연결설정 과정에서 송수신간에 SACK 사용 합의하고, 
           .. TCP 세그먼트에 SACK 범위 목록을 포함시킴
     - (표준) RFC 2018 `TCP selective acknowledgment options` (1996)

재전송 기반
   1. ARQ (검출후 재전송 방식)   2. ACK/NACK (확인응답)   3. 정지대기방식 (Idle ARQ)   4. 연속적 AQR (GBN)  
TCP 흐름/혼잡 제어
   1. TCP 혼잡제어   2. Slow Start   3. Silly Windown Syndrome   4. TCP 타이머   5. RTT 예측   6. 확인응답   7. TCP 재전송  
TCP 오류제어
   1. 오류제어   2. TCP 체크섬   3. 확인응답   4. TCP 재전송  


Copyrightⓒ written by 차재복 (Cha Jae Bok)               기술용어해설 후원
"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"