온더넷 출판일 :2007년 7월호
옴니피크에서는 마우스의 우측 버튼을 통해 프로토콜 분석을 위한 다양한 기능을 제공한다. 화면에 표시된 항목 중 하나를 선택하고 마우스 우측 버튼을 클릭하면 간단히 패킷을 추출하거나 추출한 패킷을 다양한 방식으로 분석할 수 있는 여러 기능을 편리하게 사용할 수 있으므로 이를 잘 익혀두면 유용하다
나병윤 테라스코프 교육기술지원 팀장
연재 순서
1. 실시간 트래픽 통계 관찰 기능 소개 (2007년 4월호)
2. 패킷 캡처 환경 설정 (2007년 5월호)
3. 캡처 화면에 대한 이해 (2007년 6월호)
4. 패킷 분석에 유용한 기능들 (2007년 7월호)
5. 필터 정의 및 사용법 (2007년 8월호)
6. Options 설정 (2007년 9월호)
7. 부가 기능 소개 (2007년 10월호)
프로토콜 분석기인 옴니피크에는 마우스 클릭만으로 간단하게 패킷을 추출하거나 추출된 패킷을 시각적으로 분석할 수 있는 기능이 있다. 필자가 프로토콜 분석기의 활용법을 교육하면서 매번 강조하는 것 중 하나가 마우스 오른쪽 버튼이다. 프로토콜 분석기의 통계나 패킷 디코드 화면에 표시되는 버튼 메뉴는 극히 일부 기능일 뿐이며, 대부분의 편리한 기능은 모두 마우스 오른쪽 버튼을 클릭해야 나타나는 메뉴에 있기 때문이다.
옴니피크에서는 대부분 화면에 표시되는 주소나 프로토콜 등의 항목 중 하나를 선택하고 마우스 오른쪽 버튼을 클릭하면, 해당 항목과 관련된 다른 통계를 관찰하거나 패킷을 추출할 수 있는 기능들이 포함된 메뉴를 볼 수 있다.
예를 들어, 패킷의 헤더를 디코드해 표시하는 Packets 화면에서는 패킷을 선택적으로 추출, 분리해 텍스트로 저장하는 여러 가지 기능이 있다. 패킷에 대한 분석 내용을 보여주는 Expert 화면에도 선택한 주소, 커넥션, 프로토콜과 관련된 패킷만 추출하거나 선택한 커넥션과 관련된 패킷의 흐름을 시각적으로 표시하는 기능들이 있다. 또 캡처된 패킷에 대한 통계를 표시하는 Statistics 화면에서도 특정 주소나 프로토콜과 관련된 패킷만 추출하는 기능, 시간당 트래픽 발생 상태를 관찰하기 위한 그래프 생성 기능이 있다. Capture 창에 표시되는 다양한 화면에서 선택할 수 있는 편리한 기능은 모두 마우스 오른쪽 버튼을 클릭해야만 사용할 수 있다는 것을 기억하자.
Packets 화면의 Edit 메뉴
Packets 화면에서 특정 패턴이 포함된 패킷을 선택하거나 검색하기 위해서는 주 메뉴 가운데 Edit에서 Select나 Find Pattern을 사용한다. Edit > Select를 클릭하면 (화면 1)과 같이 Select 창이 나타난다.
화면 1. Select 창
Select 창에서는 기존에 정의된 필터를 적용해 관련된 패킷을 선택하거나 텍스트 혹은 16진수 값을 입력해 패킷을 선택할 수 있다. 물론 Packets 화면의 상단에 있는 필터 적용 버튼에서 필터를 선택할 수도 있으나, Select 화면에서는 하나의 필터가 아닌 다중 필터를 적용해 관련된 패킷을 선택할 수 있다.
Edit > Find Pattern을 선택하면, Find Pattern 창이 나타난다. 이 창에서는 문자 16진수 코드, 패킷의 헤더 값, 디코드된 텍스트 정보 등을 입력해 원하는 패킷을 검색할 수 있다.
Packets 화면에서 마우스 오른쪽 버튼 기능
(화면 2)는 Capture- Packets 화면에서 패킷을 선택하고 마우스 우측 버튼을 클릭해 나타나는 메뉴에서 실행할 수 있는 기능들을 보여준다.
화면 2. Capture- Packets 화면 우측 버튼 메뉴
메뉴에는 다양한 기능이 있으나 사용자에게 편리한 몇 가지 기능만 살펴보도록 하자.
먼저 Save Selected Packets…는 사용자가 패킷 목록에서 선택한 패킷을 파일로 저장하는 기능이다. 패킷을 선택할 때 Ctrl 키와 Shift 키를 이용해 여러 개의 패킷을 동시에 선택할 수 있다. 저장되는 형식은 옴니피크에서 읽을 수 있는 형식뿐만 아니라 패킷 목록 자체(Packet List), 디코드된 내용(Decoded packet), 16진수 데이터(Raw data)를 선택해 텍스트(csv, txt 등)로 저장할 수 있다. 패킷을 그대로 저장하면 프로토콜 분석기가 있어야 다시 볼 수 있지만, 패킷 내용을 보고서에 첨부하거나 분석기가 없는 상태에서 상호 검토를 해야 하는 경우가 있으므로 텍스트로 저장하는 경우도 종종 발생한다.
Copy Selected Packets to New Window는 선택한 패킷만 별도로 분리해 새로운 창에 표시하는 기능이다. 일정 시간 캡처된 모든 패킷 가운데 일부만 집중적으로 분석해야 한다면 이 기능을 사용해 원하는 패킷만 포함한 새로운 창을 만들어보자. 새로운 창에서는 사용자가 선택한 패킷을 기준으로 모든 시간이 다시 계산된다. 즉, 원래의 패킷 디코드 화면에서 표시되는 delta time이나 relative time이 선택한 패킷에 대한 시간으로 바뀌게 되는 것이다.
Select Related Packets은 현재 선택한 패킷에 포함된 주소, 프로토콜, 커넥션과 관련된 패킷만 자동으로 추출하는 유용한 기능이다. 예전에는 수많은 패킷 가운데 사용자가 원하는 패킷만 분리하기 위해서 필터를 만들어 적용해야 했으나, 옴니피크에서는 어느 화면에서든 사용자가 원하는 항목과 관련된 패킷을 자동으로 간편하게 추출할 수 있다. 이 기능은 Capture- Packets, Expert- Hierarchy, Flat, Application, VoIP Media, Visuals- Peer Map, Statistics- Nodes, Protocols 화면에 표시되는 모든 항목에서 동작한다.
Select Related Packets으로 특정 주소나 프로토콜과 관련된 패킷을 추출해보자. 먼저 화면에 표시 방법을 묻는 Selection Results 창이 나타난다.
●Hide Selected : 선택한 패킷을 화면에서 사라지게 한다. 물론 버퍼에서 지워지는 것은 아니며, 단지 분석하는 동안 보이지 않게 하는 것이다.
●Hide Unselected : 선택되지 않은 다른 패킷을 화면에 표시하지 않게 한다. 즉, 선택한 패킷만 화면에 표시되며, 다른 패킷은 사라진다. 여기서 중요한 것은 선택되지 않은 패킷을 보이지 않게 하는 순간 Delta time과 Relative time이 현재 선택된 패킷에 대해 다시 계산된다는 점이다. 숨겨진 다른 패킷을 다시 표시하 기 위해서는 Ctrl+U를 선택하거나, 상단의 주 메뉴 가운데 하나인 Edit 메뉴 에서 Unhide All Packets를 선택하자. 수많은 기능에 대한 핫키를 모두 기억할 수 없더 라도 Ctrl+U만은 기억하자.
●Copy : 선택한 패킷만 별도의 창으로 분리한다. 필요한 패킷을 추출해 분석하는 경우 별도의 창으로 분리하는 것이 더 편리하다.
Make Filter…는 선택한 패킷에 포함된 주소, 프로토콜, 포트 번호를 사용해 새로운 필터를 정의한다. 이 기능을 실행시키면 자동으로 주소, 프로토콜, 포트 번호가 입력되므로 사용자는 해당 필터의 이름만 입력하면 새로운 필터를 만들 수 있다.
Set Relative Packet은 선택한 패킷을 relative time의 시작으로 지정하는 것이다. 일반적으로 relative time은 처음 패킷을 기준으로 계산되지만, 사용자가 선택한 패킷을 기준으로 계산된 결과를 보려면 패킷을 선택한 후 이 기능을 적용하면 된다.
화면 3. Set Relative Packet 적용 결과
(화면 3)에서 10번 패킷에 Set Relative Packet을 적용시킨 결과, 이전에 캡처된 패킷에 대해서는 시간이 음수이며, 10번 이후 캡처된 패킷의 Relative Time이 다시 계산된 것을 확인할 수 있다.
Expert 화면 기능
(화면 4)는 Expert에 포함된 화면 가운데 Hierarchy 화면에서 우측 버튼을 클릭하면 선택할 수 있는 기능들이다. Flat, Application 화면에도 유사한 기능들이 있으며, Select Related Packets은 앞에서 설명한 것처럼 선택한 주소, 포트, 프로토콜과 관련된 패킷만 자동으로 추출한다.
사용자에게 가장 도움이 되는 기능은 가장 위에 있는 Visual Expert이다. Visual Expert 기능은 특정 커넥션(동일한 IP 주소와 동일한 포트로 통신하는 상태)을 선택해 마우스 좌측 버튼을 두 번 클릭하거나, 우측 버튼 메뉴에서 선택하면 실행된다.
화면 4. Expert 화면 우측 버튼 메뉴
Visual Expert 기능
특정 커넥션을 선택하고 Visual Expert를 실행시키면 PacketVisualizer, Payload, Graphs, What If, Compare, Summary 탭이 포함된 새로운 분석 창이 나타난다. 이들은 선택한 커넥션의 패킷 흐름을 시각적으로 보여주거나 다양한 비교 나 테스트를 위한 기능을 포함한다.
PacketVisualizer
PacketVisualizer 탭에서는 (화면 5)와 같이 선택한 커넥션의 양쪽 패킷 흐름을 모두 표시한다. 수평으로 한 줄이 패킷 하나를 의미하며 패킷이 전송되는 방향을 화살표로 나타낸다. 상단의 툴바에는 패킷 사이의 시간을 표시하기 위한 스케일 목록이 있다.
화면 5. PacketVisualizer 탭
목록에서 패킷 사이의 시간은 (화면 5)에서처럼 패킷 사이에 표시되며, 스케일은 좌측 상단에 있는 목록에서 선택한다. Summary 칼럼에서는 각 패킷의 크기, TCP 플래그, Seq/Ack 번호들이 표시된다. 6가지의 TCP 플래그는 각각 U(urgent), A(ack), P(Push), R(Reset), S(SYN), F(FIN)를 의미한다.
패킷에 포함된 SEQ/ACK 번호는 각각 S=nnnnn, nnnn=A로 표시되며, 마우스 우측 버튼 메뉴에서 Absolute SEQ/ACK Numbers를 선택하면 실제 번호로 표시된다. 그러나 Relative SEQ/ACK Numbers를 선택하면 처음 패킷의 번호가 0으로 시작하는 짧은 번호들을 볼 수 있다.
또 목록에 있는 다른 행들을 선택하면, SEQ/ACK 관련성을 추적하는데 도움을 주는 파란색 강조 표시가 나타난다. 한 패킷을 선택하면 해당 패킷이 어떤 패킷들에 대한 응답인지 파악할 수 있도록 상단에 파란색으로 강조돼 표시된다. 선택한 패킷에 대한 첫 번째 응답 패킷도 하단에 파란색으로 강조돼 표시된다.
화면에 있는 칼럼 제목을 클릭하면, Cumulative Bytes, Time, Size, Acked By, Ack For 등과 같이 추가할 수 있는 칼럼 목록이 나타난다. Cumulative Bytes는 누적되는 바이트 수를 의미하며, 클라이언트/서버를 구분해 각각 몇 바이트가 전송됐는지 누적된 숫자를 표시한다. Time은 패킷 디코드 창에서와 같이 Absolute, Relative, Delta Time 등을 나타낸다. 또 Acked By는 뒤에서 표시되는 패킷 가운데 몇 번 패킷이 해당 패킷에 대한 응답인지를 의미하며, Ack For는 해당 패킷이 몇 번 패킷에 대한 응답인지를 나타낸다.
Payload
Payload 탭은 헤더를 제외한 나머지 TCP 데이터를 합성해 표시한다. TCP 시퀀스 번호를 유지한 채 시퀀스 번호가 틀리거나 재전송된 패킷을 재합성한다. POP3, SMTP, HTTP와 같은 텍스트 프로토콜에 대해서 문자가 아닌 것들은 점으로 바뀌지만 대부분 읽을 수 있는 텍스트 형태로 구성된다. 클라이언트와 서버에 대한 툴바 아이콘은 Payload 탭에서 클라이언트/서버 데이터를 보이게 하거나 숨길 수 있다.
Graphs
Graphs 탭에서는 시간을 기준으로 (화면 6)과 같이 Throughput, Latency, Sequence, Tcptrace, TCP Window에 대한 그래프를 표시한다.
화면 6. Graphs 탭 화면
Throughput 그래프는 시간별 TCP Sequence Number를 기초로 해당 커넥션 흐름에 대한 평균 처리 속도를 표시한다. Throughput 그래프에는 선이 두 개 있다. 폭이 좁은 노란색 선은 1초당 처리속도를 보여주며, 빠르게 표시된다. 반면, 굵은 연두색 선은 10초당 평균 처리속도를 보여주며, 조금 천천히 표시된다.
1초와 10초 단위 선은 1초와 10초가 지난 후 데이터를 표시하므로 각각 해당 시간동안의 평균 처리속도가 된다. Throughput 그래프는 패킷이 있는 부분에서만 계산된다. 오랫동안 패킷이 없다면 수평선으로 표시되며, 데이터가 없는 ACK 패킷과 함께 많은 양의 데이터를 순간적으로 전송하면 톱니 모양의 그래프가 그려진다.
Latency 그래프는 특정 패킷, 요청 패킷, ACK 패킷 사이의 시간을 표시한다.
Sequence 그래프는 시간별로 TCP SEQ 번호를 표시함으로써 tcptrace 그래프에 있는 정보를 간단히 나타낸다. SEQ가 급격하게 증가하는 것은 높은 처리속도를 의미하며, 평평한 수평선은 TCP 데이터 처리가 없음을 의미한다. 하강하는 선은 시퀀스 번호가 틀렸거나 재전송된 데이터를 의미한다.
tcptrace 그래프는 TCP 흐름에 대한 포괄적인 관점을 제공하며, 현재 ACK된 데이터(연두색)와 사용할 수 있는 윈도우(노란색)를 두 선으로 보여준다. 이를 통해 클라이언트가 얼마나 데이터를 잘 전송받는지 평가할 수 있다.
흰색 수직 화살표는 전송된 데이터 패킷을 나타내며, 서버의 전송 상황을 보여준다. 클라이언트가 ACK를 전송하면 연두색 선이 급격하게 증가한다. 클라이언트가 ACK 번호를 증가시키지 않고 ACK를 전송하면, trctrace 그래프는 이런 상황을 작은 연두색 점으로 표시한다.
한편, 클라이언트가 창을 증가시키면 노란색 선이 급격하게 증가한다. 클라이언트가 창을 조절하지 못하고 ACK를 전송하면, tcptrace 그래프는 이 상황을 노란색 점으로 표시한다.
서버가 데이터를 전송하면 흰색 화살표가 나타난다. 각 화살표는 패킷의 SEQ 번호에서 시작해 패킷의 페이로드 크기만큼 증가하며, 페이로드가 없는 패킷은 작은 흰색 X자로 표시된다. Tcptrace 그래프는 모든 TCP 플래그를 보여준다.
TCP Window 그래프는 현재의 세션에서 확장, 축소되는 TCP 윈도우의 크기 변화를 보여준다. TCP 윈도우는 특정 TCP 세션에서 ACK되지 않은 양을 보여준다. 수신자가 전송자의 데이터를 정상적으로 처리하고 있다면 사용 가능한 윈도우의 크기는 그래프의 상단 근처인 64K에 접근해 있을 것이다. 수신자 버퍼에 데이터가 쌓이면 즉시 ACK를 전송할 수 없기 때문에 사용 가능한 윈도우는 밑으로 떨어지게 된다. 사용 가능한 윈도우의 크기가 지나치게 없다면 Expert는 이 이벤트를 등록하게 된다. 사용 가능한 윈도우가 0에 가까워지면 전송자는 전송을 중지하고 처리 속도는 떨어질 것이다. 적절하게 TCP 윈도우를 조절하는 것은 TCP 처리속도에 중요한 영향을 준다.
What If
What If 탭에서는 다양한 네트워크와 애플리케이션 파라미터를 수정해 현재 커넥션 흐름에 있는 처리속도, 네트워크 사용률, 트랜젝션 시간 등에 대한 영향을 평가할 수 있다.
화면 7. What If 탭 화면
What If 탭의 구성 :
탭의 상단에는 3가지 부류의 설정 항목이 있다.
●Protocol/Network 영역에서는 Avg send packet size, Avg receive packet size, Latency(ms)와 Contention(ms)에 대한 시간 간격을 입력할 수 있다.
●Application 영역에서는 Simultaneous users의 개수, Packets per transaction 개 수, Client processing(ms)과 Server processing(ms)에 필요한 시간을 입력할 수 있다.
●Packet send… to … receive ratio 설정
테이블에는 다음 칼럼들이 있다 :
●Client/Server(클라이언트와 서버에 대한 정보)
●Bits/sec, Ma. Pkts/sec
●Utilization(비율로 표시)
●Transaction Time(secs)
탭의 상단에서 항목의 내용을 수정하면 이 칼럼에 있는 수치들이 바뀌며, What if… 시나리오를 시험할 수 있다.
우측 버튼 메뉴 :
●Full Duplex : 클라이언트와 서버 항목을 테이블에서 별도로 표시한다.
●Half Duplex : 테이블의 한 줄에서 클라이언트와 서버 트랜젝션을 매칭시켜 표시 한다. (Client/Server 칼럼에서 각 줄에 Client/Server로 표시한다.)
●Client -> Server 또는 Server -> Client를 선택하면, 각 방향에 대한 커넥션 흐 름을 평가할 수 있다.
●표시되는 시간의 정밀도를 Milliseconds, Microseconds나 Nanoseconds로 설정한 다.
●Restore Original Values : What If 탭이 열렸을 때 계산된 초기값으로 바뀐다.
●Save What If Data… : 이 탭에 있는 데이터를 텍스트(Tab delimited)(*.txt)나 CSV(Comma delimited)(*.csv) 형식으로 저장한다.
Compare 탭
Visual Expert에서 특정 커넥션 흐름이 열리면 Compare 탭에서 열려 있는 다른 파일이나 캡처에서 동일한 흐름을 검색할 수 있으며, 두 개의 분리된 인스턴트를 흐름 별로 분리해 볼 수 있다.
좌측에는 현재 커넥션의 흐름을 보여준다. 제목 아래에 있는 드롭다운 목록을 사용해 다른 캡처 창이나 캡처 파일을 연다. Compare 탭은 매칭되는 흐름을 찾기 위해 선택된 파일이나 캡처 창을 검색하며, 매칭되는 커넥션 흐름을 찾으면 우측에 표시한다. 각 테이블은 패킷 목록처럼 커넥션의 흐름을 보여주며, 각 패킷당 한 줄로 표시되고 3개의 칼럼이 있다
●Packet(각 Capture 창이나 캡처 파일에 할당된 패킷 번호)
●Relative Time(첫 번째 패킷을 기준으로 계산된 시간)
●IPID
한 파일에는 패킷이 있지만 다른 파일에는 없는 경우 푸른색으로 강조 표시되며, 잃어버린 패킷이 어느 위치에서 나타나는지 연결선으로 보여준다. Compare 탭에서는 순서가 틀린 패킷을 추적할 수 있으며, 두 커넥션 흐름에 대해서 동기화를 위한 선을 그린다. 각 테이블의 상단에는 두 흐름 사이의 차이점에 대한 간략한 설명이 나타난다. Compare 탭은 패킷을 상호 매칭시키기 위해 스캔을 하며, 간단하게 잃어버린 패킷을 추적할 수 있다. 매우 큰 파일을 스캔할 경우에는 많은 시간이 걸릴 수도 있다.
Graph 만들기
Visual- Graphs 화면에는 기본으로 표시되는 그래프뿐만 아니라 수많은 그래프를 사용자가 추가할 수 있다. 즉, Statistics- Node에 표시되는 모든 주소, Protocols에 표시되는 모든 프로토콜, Summary에 표시되는 대부분의 아이템에 대해서 히스토리를 관찰할 수 있는 그래프를 만들 수 있는 것이다. 각 화면에서 원하는 아이템을 선택하고 우측 버튼을 클릭하면 메뉴가 나타나는데, 여기서 Graph…를 실행하면 선택한 아이템에 대한 히스토리 그래프가 Visual- Graphs 화면의 목록에 자동으로 추가된다
'컴퓨터와 인터넷' 카테고리의 다른 글
오피스SW, 뜨거운 '공짜전쟁' (0) | 2007.09.30 |
---|---|
유무선 통합의 현황과 미래 (0) | 2007.07.03 |
오픈소스가 한국 IT 산업의 제2발전 이끌 것 (0) | 2007.07.03 |
새로움을 만드는 혼합(Mash-Up) 서비스의 물결 (0) | 2007.06.25 |
차세대 DVD 勢싸움 다시 가열 (0) | 2007.05.25 |