◽ Wireshark

[WireShark] Port 모니터링, TCP : SYN, ACK, PSH, FIN, RST, URG 정리 (TCP 3 way-handshake)


TCP 3 way-hadnshake

  WireShark라는 프로그램은 오고가는 통신을 가로채서 보여주는 프로그램인데, 이 프로그램을 사용하려면 가장 기본적인 TCP 3 way-handshake 과정을 알아야 한다. 여기서 말하는 3 way-handshake는 두 지점 간에 세션을 연결하는 작업이며, 세션 종료에는 4 way-handshake 과정이다. 이러한 기본 개념을 알게되면 프로그램을 사용하는데 이해하기 훨씬 수월해진다.


 

 

 

 

 

1. 기본 개념 정리

 

  위키백과에 TCP 구성을 아주 자세히 설명을 하는데, 한 눈에 파악되는 그림은 좀 아니다. 그래서 바로 아래 그림을 만들었다.

그림1
그림2

각 명칭은 아래의 도표를 참고.

설명  
SYN Synchronization, 동기화
:연결 요청 플래그
TCP 교환 과정의 첫번째 패킷, 세션 연결을 위해 임의적 시퀀스 번호를 보냄.
ACK Acknowledgement, 응답
첫번째 패킷을 받았다는 걸 알려주는 패킷, 성공/실패을 판단하여 다음 패킷을 전송.
RST Reset, 재 연결 종료 비 정상적인 세션 연결 끊기, 즉시 연결 끊는 행위.
PSH Push OSI 7계층인 Application 계층으로 전송하는 Flag
URG Urgent, 긴급 데이터 유효한 것인지 나타낸다.
(예를 들면 명령 수행 도중 Ctrl+C를 눌러 인터럽트 하는 행위)
FIN Finish, 연결 종료 요청 세션 종료 시킬 때 사용.

 

 

 

 

 

 

2. 3way hanshaking 과정 순서

위의 TCP헤더가 한꺼번에 오는 것이 아니라 일련의 과정을 거친다. 그 과정은 단순하게 표현 하면 아래와 같다.

 

[step1] : Client는 SYN_SENT 상태

  Client에서 SYN 패킷을 보내 Server의 SYN-ACK 응답을 기다린다.

 

[step2] : Server는 SYN_RECEIVED 상태

  Server에서는 요청을 수락한 뒤, ACK와 SYN를 보낸다. 그리고 Server에서는 Client가 다시 ACK 응답하기를 기다린다.

 

[step3] : Server는 ESTABLISHED 상태

  Client에서 Server로부터 응답을 받은 뒤, 다시 ACK를 보낸 후 연결이 성립된다. 이 이후 데이터가 오가게 된다.

 

 

 

 

 

 

 

3. 모니터링 간단한 실험.

  기본 개념을 알았으면 이제 이것을 응용하는 프로그램에서 어떻게 사용되는지 알아야한다. 그리고 나타나는 화면에서 나오는 내용이 어떠한 내용을 담고 있는지 알려면 위의 개념을 알아야 알아볼 수가 있다.

 

 

간단한 테스트로

cmd창을 열고 "nslookup www.naver.com"를 실행하여 

 

 

 

 

이때,  WireShark의 필터값에 조건을 넣어준다.

 

 

 

아래와 같이 TCP 3 way-handshaking 과정을 볼 수 있다.

 

 

 

 

 

 

 

 

다음글은 바이너리 문자들을 어떻게 해석하는지 알아볼 것이다.

 


https://mindgear.tistory.com/206

https://ko.wikipedia.org/wiki/%EC%A0%84%EC%86%A1_%EC%A0%9C%EC%96%B4_%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C

https://sleepyeyes.tistory.com/4

https://mindnet.tistory.com/entry/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EC%89%BD%EA%B2%8C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-22%ED%8E%B8-TCP-3-WayHandshake-4-WayHandshake 


'◽ Wireshark' 카테고리의 다른 글

[WireShark] Protocol에 더 많은 port 추가하기  (0) 2022.04.13

푸터바