티스토리 뷰

반응형

ACK ?

기본적으로 ACK은 TCP Header에 포함되어있는 4Byte크기의 정수 데이터이다.


TCP 통신에서 ACK은 패킷 도착여부를 확인 하기위해 사용된다.

 위 사진과 같이 수신한 패킷의 Sequence Number와 Data의 크기에 따라 ACK 번호가 결정되게 되는데 결정할 때 사용하는 공식은 "SEQ + (Data Size)" 이다.

 그러나 여기서 반드시 기억해야 할 점은 Data Size가 0이라면 같은 ACK을 반복하게 된다. 이 것을 방지해서 받은 패킷의 Data Size가 0이라면 Sequnce 번호에 1을 더한 값을 ACK으로 설정한 후 패킷을 전달하게 된다.

                                    ( 물론 위 그림은 A가 B에게 패킷을 전달하는 과정이고, 원래는 양방향으로

                                      전달하기 때문에 서로 SEQ, ACK, Data Size를 지속적으로 전달하게 된다. )

 

 그래서 A는 데이터를 보낸 후 B한테 까지 정상적으로 데이터가 도착했으면 받아야 할 ACK 값인 1461을 받지 못하면 TCP의 에러제어에 의해서 패킷을 재전송 하게된다.

                                    ( 이 때 재전송 하기위해 A는 보낸 패킷을 ACK을 받을 때 까지 보관한다.)

 

 그리고 마지막으로 A는 다음 SEQ 번호를 가장 최근에 받은 ACK 번호를 사용해서 다음 패킷을 전송한다.

 


 한마디로 B가 A에게 ACK:1461을 전송하는 것의 의미는 "너가 보낸 패킷의 내 대답은 1461이야. 그리고 너 다음 패킷 보낼 때는 Sequence번호를 1461을 사용해서 보내도록 해!" 이다.

반응형

'Network > 패킷분석' 카테고리의 다른 글

[XCZ.KR] PROB13(Network)  (0) 2019.06.27
[패킷분석] IP 패킷 Fragments  (0) 2019.06.14
[패킷분석] TCP 통신 - 윈도우 제어 방식  (0) 2019.06.14
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함