애플리케션 코드 상에는 문제가 전혀 없는데 사용자가 서비스로부터 데이터를 가져오지 못하는 상황이 발생하기도 하며, 이는 네트워크 병못 현상일 가능성이 있습니다.
네트워크 병목 현상의 주된 원인은 다음과 같습니다.
이때는 네트워크 관련 테스트와 네트워크와 무관한 테스트를 통해 '네트워크로부터 발생한 문제점'인 것을 확인한 후 네트워크 성능 분석을 해봐야 합니다.
이때 사용되는 명령어들을 알아보겠습니다.
네트워크 상태를 확인하려는 대상 노드를 향해 일정 크기의 패킷을 전송하는 명령어입니다.
이를 통해 해당 노드의 패킷 수신 상태와 도달하기까지 시간 등을 알 수 있으며 해당 노드까지 네트워크가 잘 연결되어 있는지 확인할 수 있습니다.
ping [IP 주소 또는 도메인 주소]
로 실행합니다.
ping –t (ip주소)
무한정 핑을 날림(ctrl+c 입력시 종료되며 ping 통계를 표시)
ping –n (숫자)(ip주소)
핑을 n개만 날림
ping –a (ip주소)
ip주소를 호스트이름으로 바꿔서 핑을 날린다.
접속되어 있는 서비스들의 네트워크 상태를 표시하는데 사용됩니다.
네트워크 접속, 라우팅 테이블, 네트워크 프로토콜 등 리스트를 보여줍니다. 주로 서비스의 포트가 열려 있는지 확인할 때 사용합니다.
DNS에 관련된 내용을 확인하기 위해 쓰는 명령어입니다.
특정 도메인에 매핑된 IP를 확인하기 위해 사용됩니다.
DNS : 아이피를 도메인 네임으로, 도메인네임을 아이피로 변환해주는 서비스
목적지 노드까지 네트워크 경로를 확인할 때 사용하는 명령어입니다.
목적지 노드까지 구간들 중 어느 구간에서 응답 시간이 느려지는지 등을 확인할 수 있습니다.
윈도우 : tracert
, 리눅스 : traceroute
노드로 오고가는 패킷을 캡쳐하는 명령어입니다.
네트워크 분석 프로그램으로는 wireshark, netmon이 있습니다.