2010년 5월 11일 화요일

TCP Flow Control 시뮬레이션 및 비주얼 출력

패킷 인사이드를 자주 방문해 주시는 홍홍 님이 문의하였던 TCP Congestion Protocol 과
관련하여 유용한 도구를 하나 소개해 보고자 한다. 자바로 만들어진 것으로 이름은
TCP Simulator 이다.  자세한 정보는 다음 사이트에서 얻을 수 있다.


실행은 어렵지 않게 할 수 있다.

c:\>java Window_SimGUI 를 수행하면 아래와 같은 다소 복잡한 화면을 볼 수 있다. 크게 보면
왼쪽과 오른쪽 호ㅡ트로 구분되어 있고. 가운데 있는 화면은 패킷의 움직임의 흐름과 Delay/Loss 정보 및
다양한 이벤트 정보를 보여준다.

일단, Simulator -> Load Simulator 에서 원하는 형태를 선택하여 시작할 수 있다. 나의 경우는
왼쪽은 Client, 오른쪽은 서버로 구성하고, Fast Recovery 선택를 선택하였다.

Fast Recovery 는 리시버가 손실된 세그먼트가 도착하면 바로 중복된 ACK 를 보내게 된다.
ACK 는 샌더에게 보낸 세그먼트가 손실된 세그먼트라는 것을 알려주게 된다. 즉,
보내는 샌더 측면에서 보면 중복된 ACK 는 다양한 네트워크 문제에 의해 발생될 수 있다.

아래 화면을 자세히 들여다 보면 왼쪽 호스트에서 PUSH SEND 를 하였고, 푸른색의 바 타입 이미지가
전송이 되는 부분이다. 그 아래의 이미지는 리시버가 받아서 다시 샌더에게 보내고 있다. 여기서는
일부로 Delay 및 Loss 상황을 만들어 주면서 Fast Recovery 가 동작함을 볼 수 있다. Left Host 의 TCP Events 를 보면 Reno in Fast Recovery: Additional Dup ACK received 가 발생했음을 보여준다.


다양한 이벤트가 있으니, TCP Congestion Protocol 을 공부하는 분들에겐 유용한 시뮬레이터가 될 것이다.

[참고정보]
1. TCP Congestion Protocol
http://www.ietf.org/rfc/rfc2581.txt

댓글 1개:

  1. 아....정말 감사합니다. 유용하게 쓰겠습니다.

    네트워크 분석도구는....필요할만한 도구는 다 나와 있는거 같네요...ㅎ

    답글삭제