네트워크 성능 분석 명령어
✏️ 네트워크 성능 분석 명령어
애플리케이션 코드상에는 전혀 문제가 없는데 사용자가 서비스로부터 데이터를 가져오지 못하는 상황이 발생되기도 하며, 이는 네트워크 병목 현상일 가능성이 있습니다. 네트워크 병목 현상의 주된 원인을 아래와 같습니다.
1️⃣ 네트워크 대역폭
2️⃣ 네트워크 토폴로지
3️⃣ 서버 CPU, 메모리 사용량
4️⃣ 비효율적인 네트워크 구성
이때는 네트워크 관련 테스트와 네트워크와 무관한 테스트를 통해 네트워크로부터 발생한 문제점인 것을 확인한 후 네트워크 성능 분석을 해야 합니다. 이때 사용되는 명령어들을 알아보겠습니다.
🔴 Ping
Ping(Packet INternet Groper)은 네트워크 상태를 확인하려는 대상 노드를 향해 일정 크기의 패킷을 전송하는 명령어입니다. 이를 통해 해당 노드의 패킷 수신 상태와 도달하기까지 시간 등을 알 수 있으며 해당 노드까지 네트워크가 잘 연결되어 있는지 확인할 수 있습니다.
Ping은 TCP/IP 프로토콜 중에 ICMP 프로토콜을 통해 동작하며, 이 때문에 ICMP 프로토콜을 지원하지 않는 기기를 상대로는 실행할 수 없거나 네트워크 정책상 ICMP나 Traceroute를 차단하는 대상의 경우 Ping 테스팅은 불가능합니다.
💡 TCP/IP 프로토콜
TCP/IP는 인터넷에서 데이터 통신을 위해 사용되는 주요 프로토콜 스택입니다.
이 이름은 두 개의 주요 프로토콜인 TCP와 IP를 합친 것이며, 이 둘을 중심으로 여러 다른 프로토콜들도 포함됩니다. TCP/IP는 인터넷의 기본 통신 규약으로 사용되며, 네트워크 간의 통신을 가능하게 합니다.
💡 ICMP 프로토콜
ICMP(Internet Control Message Protocol)는 IP와 밀접하게 연관된 네트워킹 프로토콜 중 하나로, 주로 오류 메시지 전송이나 운영 진단에 사용됩니다.
$ ping [IP 주소 또는 도메인 주소]
🔴 Netstat
netstat 명령어는 접속되어 있는 서비스들의 네트워크 상태를 표시하는 데 사용되며 네트워크 접속, 라우팅 테이블, 네트워크 프로토콜 등 리스트를 보여줍니다. 주로 서비스의 포트가 열려 있는지 확인할 때 사용합니다.
$ netstat
🔴 Nslookup
nslookup은 DNS에 관련된 내용을 확인하기 위해 사용하는 명령어입니다. 특정 도메인에 매핑된 IP를 확인하기 위해 사용합니다.
$ nslookup
🔴 Traceroute
traceroute는 목적지 노드까지 네트워크 경로를 확인할 때 사용하는 명령어입니다. 목적지 노드까지 구간들 중 어느 구간에서 응답 시간이 느려지는지 등을 확인할 수 있습니다.
$ traceroute [IP 주소 또는 도메인 주소]