[네트워크] 성능 분석 명령어, 프로토콜 표준화
애플리케이션 코드상으로는 전혀 문제가 없지만, 사용자가 서비스로부터 데이터를 가져오지 못하는 상황이 발생되기도 한다. 이는 네트워크 병목 현상일 가능성이 있다.
네트워크 병목 현상의 주된 원인
- 네트워크 대역폭
- 네트워크 토폴로지
- 서버 CPU, 메모리 사용량
- 비효율적인 네트워크 구성
이러한 경우 네트워크 관련 테스트와 네트워크와 무관한 테스트를 통해 '네트워크로부터 발생한 문제점'인 것을 확인한 후에 네트워크 성능 분석을 해봐야 한다.
사용되는 명령어
ping
ping(Packet INternet Groper)은 네트워크 상태를 확인하려는 대상 노드를 향해 일정 크기의 패킷을 전송하는 명령어이다.
해당 노드의 패킷 수신 상태와 도달하기까지 시간 등을 알 수 있으며 해당 노드까지 네트워크가 잘 연결되어 있는지 확인할 수 있다.
ping은 TCP/IP 프로토콜 중에 ICMP 프로토콜을 통해 동작하며, 이 때문에 ICMP 프로토콜을 지원하지 않는 기기를 대상으로는 실행할 수 없거나 네트워크 정책상 ICMP나 tracerouter를 차단하는 대상의 경우 ping 테스팅은 불가능하다.
netstat
접속되어 있는 서비스들의 네트워크 상태를 표시하는 데 사용되며 네트워크 접속, 라우팅 테이블, 네트워크 프로토콜 등 리스트를 보여준다. 주로 서비스의 포트가 열려 있는지 확인할 때 쓴다.
nslookup
DNS에 관련된 내용을 확인하기 위해 쓰는 명령어이다. 특정 도메인에 매핑된 IP를 확인하기 위해 사용한다.
tracert
리눅스에서는 traceroute라는 명령어로 구동된다.
목적지 노드까지 네트워크 경로를 확인할 때 사용하는 명령어이다. 목적지 노드까지 구간들 중 어느 구간에서 응답 시간이 느려지는지 등을 확인할 수 있다.
ftp 를 통해 대형 파일을 전송하여 테스팅하거나 tcpdump를 통해 노드로 오고 가는 패킷을 캡처하는 등의 명령어가 있으며 네트워크 분석 프로그램으로는 wireshark, netmon이 있다.
네트워크 프로토콜 표준화
네트워크 프로토콜이란?
다른 장치끼리 데이터를 주고받기 위해 설정된 공통된 인터페이스
프로토콜은 기업이나 개인이 발표해서 정하는 것이 아니라 IEEE 또는 IETF라는 표준화 단체가 프로토콜을 정한다.
예시)
(1) IEEE802.3 유선 LAN 프로토콜, 유선으로 LAN을 구축할 때 쓰이는 프로토콜
이 프로토콜을 통해 만든 기업이 다른 장치라도 서로 데이터를 수신할 수 있다.
(2) HTTP 프로토콜, 노드들은 웹 서비스를 기반으로 데이터를 주고받을 수 있다.