[ETC] TCP 통신 테스트 방법

Dante·2023년 7월 19일
0

[시작]

대부분의 사람들은 A지사에서 사용하고 있는 PC1에서 B지사에서 운영중인 Server1로 통신이 원활하게 되는지 확인하려면 PING 프로그램을 이용해서 확인한다. PING 프로그램은 ICMP 프로토콜을 이용하며 ICMP Request(Type-8)를 보내면 ICMP Reply(Type-0)를 전달받고 이 결과로 정상적으로 양방향 통신이 되는 것을 확인할 수 있다.

하지만, Windows 시스템 경우 기본적으로 내장된 방화벽이 활성화 되어있어 ICMP 통신이 불가하고, 방화벽단에서 ICMP 통신을 Block 하는 경우가 많다. 이런 경우 PING 프로그램을 이용하여 정상적으로 통신이 되는지 확인하기 어렵다.
본 글에서는 ICMP 프로토콜을 이용하는 PING 프로그램이 아닌 TCP 프로토콜을 사용하는 다른 프로그램들을 사용하여 양방향 통신이 원활하게 되는지 확인하고자 한다.

[PsPing - Windows 전용]

PsPing 프로그램은 Microsoft사에서 제공해주는 프로그램이다. 해당 프로그램을 이용하면 TCP ping, 레이턴시, 대역폭을 확인할 수 있다.
[다운로드 주소: https://docs.microsoft.com/en-us/sysinternals/downloads/psping]
아래 그림과 같이 TCP 프로토콜을 이용하여 양방향 통신이 되는 것을 확인할 수 있다.

[tcping]

tcping도 psping과 같이 TCP 프로토콜을 사용하여 통신 되는 것을 확인할 수 있다.
[다운로드 주소: https://www.elifulkerson.com/projects/tcping.php]
아래 그림과 같이 TCP 프로토콜을 이용하여 양방향 통신이 되는 것을 확인할 수 있다. 기본적으로 TCP Port를 지정해주지 않으면, TCP 80 Port이 기본값으로 설정된다.

[netcat]

netcat(nc)이라는 프로그램도 존재하는데, 해당 프로그램은 바이러스로 인식하는 경우가 있어 Windows 시스템에서 사용하기 어렵다. 해당 프로그램은 Linux 시스템에서 테스트를 진행하고자 한다.
netcat 프로그램에서 Server IP와 Port를 지정해주면 아래와 같이 아무런 결과 없이 유지되는 것을 확인할 수 있다. 통신이 안될 경우 (Ncat: Connection timed out.) 메시지가 출력된다.

출력되는 내용을 확인하고 싶으면 아래 그림 같이 명령어를 실행하면 된다.(사실 HTTP 테스트는 curl 명령어로 해도 된다.)

netcat 프로그램은 아래와 같이 서버에서 리스닝 할 포트를 지정하고 클라이언트가 해당 포트로 접속하게 할 수 있게 가능하다.

[nmap]

nmap 프로그램은 보통 서버 정보나 Listening되어 있는 Port를 확인하고자 할 때 많이 이용한다. 해당 프로그램은 악의적인 목적으로 많이 사용되므로, 사용하는 것을 권장하지 않는다.
물론, 해당 프로그램도 "netcat"과 같이 Windows 시스템에서는 "Windows Defender"로 인해 차단되지만, Linux 시스템에서는 다운로드 받아서 사용할 수 있다.
아래와 같이 해당 호스트에 대한 open되어 있는 TCP Port를 확인할 수 있다.

profile
it's me.

1개의 댓글

comment-user-thumbnail
2023년 7월 19일

정말 좋은 글 감사합니다!

답글 달기