Wireshark로 네트워크 대기 시간 문제 해결

네트워크 지연 문제 해결 방법

네트워크 지연 시간은 네트워크 환경에서 출발지에서 목적지로 데이터나 요청을 전송하는 데 걸리는 시간 지연을 의미합니다. 이제 네트워크 지연 문제를 어떻게 해결할 수 있는지 자세히 알아보겠습니다.

웹 페이지를 열거나, 링크를 클릭하거나, 앱을 실행하거나, 온라인 게임을 하는 것과 같이 네트워크 사용을 필요로 하는 모든 동작을 ‘활동’이라고 합니다. 사용자의 활동은 요청이며, 웹 애플리케이션의 응답 시간은 이 요청에 반응하는 데 걸리는 시간입니다.

이 시간 지연에는 서버가 요청을 처리하는 데 필요한 시간도 포함됩니다. 따라서 이것은 요청을 보내고, 처리하고, 사용자에게 전달되어 해독되는 데 걸리는 전체 시간, 즉 왕복 시간으로 정의됩니다.

데이터 전송 지연이 비교적 짧을 때 “낮은 지연 시간”이라고 표현합니다. 반대로, 긴 지연 또는 과도한 지연 시간은 사용자 경험을 저해하므로 바람직하지 않습니다.

네트워크 지연 시간 개선 방법

네트워크를 분석하고 문제를 해결하는 데 도움이 되는 다양한 도구와 소프트웨어가 인터넷에 존재합니다. 그중 일부는 유료이고, 일부는 무료입니다. 하지만 실시간으로 데이터 패킷을 캡처하는 데 사용되는 오픈 소스 GPL 라이선스 애플리케이션인 와이어샤크라는 도구가 있습니다. 와이어샤크는 전 세계에서 가장 널리 사용되는 네트워크 프로토콜 분석기입니다.

이 도구는 네트워크 패킷을 캡처하고 자세히 표시하여 네트워크 트래픽을 현미경으로 들여다보듯 검사하고, 필터링 및 드릴다운을 통해 문제의 근본 원인을 찾아 네트워크 분석 및 보안을 개선하는 데 도움을 줍니다. 캡처한 패킷은 실시간 또는 오프라인 분석에 활용할 수 있습니다.

네트워크 지연의 주요 원인

네트워크 연결 속도가 느려지는 데는 다음과 같은 몇 가지 주요 원인이 있습니다.

  • 높은 지연 시간
  • 애플리케이션 의존성
  • 패킷 손실
  • 중개 장치
  • 비효율적인 윈도우 크기

이 글에서는 네트워크 지연의 각 원인과 와이어샤크를 사용하여 이러한 문제를 해결하는 방법을 자세히 살펴보겠습니다.

와이어샤크를 이용한 문제 분석

높은 지연 시간

높은 지연 시간은 데이터가 한 종점에서 다른 종점으로 전송되는 데 걸리는 시간을 의미합니다. 이는 네트워크 통신에 큰 영향을 미칩니다. 아래 그림은 지연 시간이 긴 경로에서 파일 다운로드의 왕복 시간을 보여주는 예시입니다. 왕복 지연 시간이 1초를 초과하는 경우가 종종 발생합니다.

  • 와이어샤크 통계로 이동합니다.
  • TCP 스트림 그래프 옵션을 선택합니다.
  • 왕복 시간 그래프를 선택하여 파일을 다운로드하는 데 걸리는 시간을 확인합니다.

와이어샤크는 경로의 왕복 시간을 계산하여 잘못된 TCP(Transmission Control Protocol) 통신이 네트워크 성능 저하의 원인인지 확인하는 데 사용됩니다. TCP는 온라인 서핑, 데이터 전송, 파일 전송 등 다양한 애플리케이션에서 사용됩니다. 특히 호스트가 Windows XP를 사용하는 경우, 높은 지연 시간 채널에서 성능을 높이기 위해 운영 체제를 조정할 수 있습니다.

애플리케이션 의존성

일부 애플리케이션은 다른 애플리케이션, 프로세스 또는 호스트와의 통신에 의존합니다. 예를 들어 데이터베이스 애플리케이션이 데이터베이스 항목을 가져오기 위해 다른 서버에 연결해야 한다고 가정해 봅시다. 이 경우 다른 서버의 성능 저하로 인해 로컬 애플리케이션의 로드 시간이 느려질 수 있습니다.

예를 들어, 대상 서버가 여러 다른 웹사이트를 참조하는 웹 브라우징 경험을 생각해 보세요. www.espn.com의 메인 페이지를 로드하기 위해서는 우선 광고 및 콘텐츠를 제공하는 16개의 호스트를 방문해야 합니다.

위 그림에서 와이어샤크의 HTTP 부하 분산 창에는 www.espn.com 홈페이지에서 사용하는 모든 서버 목록이 표시되어 있습니다.

패킷 손실

네트워크에서 가장 흔하게 발견되는 문제 중 하나는 패킷 손실입니다. 패킷 손실은 데이터 패킷이 발신자에서 수신자로 인터넷을 통해 올바르게 전송되지 않을 때 발생합니다. 사용자가 웹사이트를 방문하여 사이트의 일부 요소를 다운로드하기 시작하면 누락된 패킷으로 인해 재전송이 필요하게 되며, 이는 웹 파일 다운로드 속도를 저하시키고 전체 다운로드 프로세스를 느리게 만듭니다.

또한 애플리케이션이 TCP를 사용하는 경우, 누락된 패킷은 특히 부정적인 영향을 미칩니다. TCP 연결에서 손실된 패킷을 감지하면 네트워크 문제를 보상하기 위해 처리 속도가 자동으로 느려집니다.

이는 다음 패킷이 삭제될 때까지 보다 안정적인 속도로 점차적으로 개선되어 데이터 처리량이 크게 감소하는 결과를 낳습니다. 그렇지 않으면 네트워크를 통해 쉽게 전송되어야 할 대용량 파일 다운로드가 패킷 손실로 인해 큰 어려움을 겪게 됩니다.

패킷이 손실되면 어떻게 될까요? 프로그램이 TCP를 통해 작동하는 경우 패킷 손실은 두 가지 형태로 나타날 수 있습니다. 한 가지 예로, 수신기는 시퀀스 번호를 기반으로 패킷을 모니터링하고 누락된 패킷을 감지합니다. 클라이언트는 누락된 패킷에 대해 세 번의 요청(중복 승인)을 만들어 재전송합니다. 송신자가 수신자가 데이터 패킷 수신을 확인하지 않은 것을 감지하면 송신자는 시간 초과되어 데이터 패킷을 재전송합니다.

와이어샤크는 네트워크 정체가 발생했음을 나타내며, 여러 번의 승인으로 인해 발생하는 트래픽을 색상으로 구분하여 재전송을 표시합니다. 중복 확인 횟수가 많으면 네트워크에서 패킷 손실과 상당한 지연이 발생했음을 의미합니다.

네트워크 속도를 개선하려면 패킷 손실이 정확히 어디에서 발생하는지 파악하는 것이 중요합니다. 패킷 손실이 발생하면 더 이상 패킷 손실이 관찰되지 않을 때까지 와이어샤크를 경로를 따라 이동시켜 문제의 위치를 파악합니다.

중개 장치

네트워크 트래픽을 관리하는 장치에는 스위치, 라우터, 방화벽 등이 있습니다. 이러한 장치는 패킷을 전달하는 데 관여하므로 패킷 손실이 발생하면 이들을 잠재적인 원인으로 조사해야 합니다.

이러한 연결 장치로 인해 경로에 지연 시간이 추가될 수 있습니다. 예를 들어, 트래픽 우선 순위 설정이 활성화된 경우, 우선 순위가 낮은 스트림에 추가 지연 시간이 적용되는 것을 확인할 수 있습니다.

비효율적인 윈도우 크기

Microsoft 운영 체제 외에도 TCP/IP 네트워킹에는 다음과 같은 다양한 종류의 “윈도우”가 존재합니다.

  • 슬라이딩 윈도우
  • 수신 윈도우
  • 혼잡 제어 윈도우

이러한 윈도우들은 함께 네트워크의 TCP 기반 통신 성능을 결정합니다. 이제 각각의 윈도우와 그것이 네트워크 대역폭에 미치는 영향을 자세히 살펴보겠습니다.

슬라이딩 윈도우

슬라이딩 윈도우는 데이터가 성공적으로 승인되면 네트워크를 통해 다음 TCP 세그먼트를 브로드캐스트하는 데 사용됩니다. 발신자는 전송된 데이터 조각에 대한 승인을 받으면 슬라이딩 윈도우를 확장하여 더 많은 양의 데이터를 전송할 수 있게 됩니다. 패킷이 손실되면 네트워크가 회선에서 증가된 데이터 양을 처리할 수 없기 때문에 슬라이딩 윈도우가 축소됩니다.

수신 윈도우

TCP 스택의 수신 윈도우는 버퍼 공간입니다. 데이터가 수신되면 애플리케이션이 데이터를 가져갈 때까지 이 버퍼 공간에 저장됩니다. 애플리케이션이 수신 속도를 따라가지 못하면 수신 윈도우가 가득 차서 “제로 윈도우” 상황이 발생할 수 있습니다. 제로 윈도우 상태가 발생하면 호스트로의 모든 데이터 전송이 중단되어 처리 속도가 0으로 떨어지게 됩니다. Window Scaling(RFC 1323) 기술을 사용하여 수신 윈도우 크기를 늘림으로써 제로 윈도우 시나리오 발생 가능성을 줄일 수 있습니다.

위 그림은 제로 윈도우 상황으로 인해 네트워크 통신에 32초의 지연이 발생하는 것을 보여줍니다.

혼잡 윈도우

혼잡 윈도우는 네트워크가 처리할 수 있는 최대 데이터 양을 정의합니다. 발신자의 패킷 전송 속도, 네트워크 패킷 손실률 및 수신자의 윈도우 크기가 이 수치에 영향을 미칩니다. 혼잡 윈도우는 전송이 완료되거나 네트워크 상태에 의해 설정된 “상한선”에 도달할 때까지 정상적인 네트워크 통신 중에 꾸준히 증가합니다. 각각의 새로운 연결은 윈도우 크기 협상 절차를 다시 시작합니다.

건강한 네트워크를 위한 팁

  • 와이어샤크를 사용하여 성능 저하의 원인을 빠르고 효율적으로 식별하는 방법을 학습합니다.
  • 네트워크 경로 지연 시간의 원인을 파악하고, 가능하다면 허용 가능한 수준으로 줄입니다.
  • 패킷 손실의 원인을 찾아서 해결합니다.
  • 데이터 전송 윈도우 크기를 검토하고, 필요하다면 줄입니다.
  • 중개 장치의 성능을 검토하여 지연 시간을 증가시키거나 패킷을 삭제하는지 확인합니다.
  • 더 많은 양의 데이터를 전달하고 수신 윈도우에서 데이터를 가져올 수 있도록 앱을 최적화합니다.

마무리

지금까지 네트워크 성능 문제의 주요 원인을 살펴보았지만, 놓치지 말아야 할 중요한 요소 중 하나는 네트워크 통신 동작에 대한 이해 부족입니다. 와이어샤크는 X-ray와 같이 네트워크를 투시하는 데 필요한 가시성을 제공하며, CAT 스캔이 인체 내부를 상세하게 보여주듯이, 와이어샤크는 네트워크 문제를 정확하고 빠르게 진단할 수 있게 해줍니다. 따라서 와이어샤크는 네트워크 문제를 진단하는 데 필수적인 도구입니다.

이제 와이어샤크를 사용하여 다양한 필터와 도구를 활용하여 네트워크 성능을 분석하고 문제를 해결해 보십시오. 👍