애플리케이션 코드상에는 전혀 문제가 없는데 사용자가 서비스로부터 데이터를 가져오지 못하는 상황이 발생되기도 한다.
이는 네트워크 병목 현상일 가능성이 있다. 네트워크 병목 현상의 주된 원인은 다음과 같다.
이러할 때는 네트워크 관련 테스트와 네트워크와 무관한 테스트를 통해 네트워크 문제인지를 파악해야한다.
이 때 사용되는 명령어들을 알아보자.
ping(Packet INternet Groper)은 네트워크 상태를 확인하려는 대상 노드를 향해 일정 크기의 패킷을 전송하는 명령어다.
이를 통해 해당 노드의 패킷 수신 상태와 도달하기까지의 시간 등을 알 수 있으며 해당 노드까지 네트워크가 잘 연결되어 있는지 확인할 수 있다.
실행 명령어 → ping [IP 주소 or 도메인 주소]
위 사진은 ping [www.google.com](http://www.google.com) -c 5
명령어를 구동한 모습이다. -c 5
옵션을 넣어 총 다섯번의 패킷을 보내고 받는 모습을 볼 수 있다.
접속되어 있는 서비스들의 네트워크 상태를 표시하는 데 사용되며 네트워크 접속, 라우팅 테이블, 네트워크 프로토콜 등의 리스트를 보여준다.
주로 서비스의 포스트가 열려있는지 확인할 때 사용한다.
실행 명령어 → netstat
DNS에 관련된 내용을 확인하기 위한 명령어로 특정 도메인에 매핑된 IP를 확인하기 위해 사용한다.
실행 명령어 → nslookup
위 사진은 google.com
의 DNS를 확인하는 모습이다.
윈도우에서는 tracert, 리눅스에서는 traceroute라는 명령어로 구동된다.
목적지 노드까지 네트워크 경로를 확인할 때 사용하는 명령어로, 목적지 노드까지 구간들 중 어느 구간에서 응답 시간이 느려지는지 등을 확인할 수 있다.
실행 명령어 → tracert(traceroute) [IP 주소 or 도메인 주소]
위 사진은 구글 사이트에 도달하기까지의 경로 추적을 하는 모습이다.
출처: 면접을 위한 CS 전공지식 노트 - 주홍철 지음