6. 애플리케이션 성능 관리
상태바
6. 애플리케이션 성능 관리
  • 승인 2006.01.12 00:00
  • 댓글 0
이 기사를 공유합니다

Tech Guide / 스니퍼 활용 가이드
김근혜
피지피넷 스니퍼 분석 기술 지원부 차장
kgsun@pgpnet.com

연재순서
1. 네트워크 분석 바이블 I
2. 네트워크 분석 바이블 II
3. 네트워크 분석 바이블 III
4. TCP/IP 트러블슈팅 I
5. TCP/IP 트러블슈팅 II
6. 애플리케이션 성능 관리(이번호)

이번 호에서는 OSI 7계층 중 커넥션 계층(Connection Layer)에서의 유해 트래픽 분석 방법과 OSI 7계층에서의 애플리케이션 계층에서 제공하는 응답시간 분석방법에 대해 알아보도록 한다.<편집자>

스니퍼 활용으로 애플리케이션 성능 관리 효과 극대화

TCP/IP 프로토콜 충분한 이해 필수 … 분석자 패킷 분석 능력 중요

지난 호까지 설명했던 레이어 2 엑스퍼트(Expert) 기능은 DLC 계층에서의 패킷 분석을 심도 있게 하고자 하는 사용자들이 필수적으로 알아야 하는 기능이다. 지금부터는 실제 TCP/IP 통신에 해당하는 3계층부터 살펴보자.

네트워크 레이어 분석
네트워크 레이어는 OSI 7계층 가운데 네트워크 계층에 해당하며, IP나 IPX, ICMP 프로토콜을 분석한다. 따라서 ICMP 패킷과 관련된 내용, IP 라우팅과 관련된 내용이 포함돼 있다. ICMP 패킷은 네트워크 상태나 장비 접속 상태 및 경로 설정 상태를 검사하기 위해 주로 사용되는 프로토콜이며, 이 프로토콜에 해당하는 패킷에는 타입(Type) 및 코드(Code)에 해당하는 헤더 필드가 정의돼 있다.
장비의 운영 체제나 사용자가 입력하는 핑(Ping)과 같은 명령어는 ICMP 패킷의 타입과 코드를 해석해 네트워크 및 장비 접속 상태를 검사하도록 설계돼 있다. 우선 IP 헤더(Header)에 대해 살펴보자.

■ 버전(Version) : 4비트
- 버전 넘버로 현재 IPv4를 나타냄.
■ IHL(Internet Header Length) : 32비트
- IP 헤더의 길이 측정. 이 부분은 TCP 헤더와 같은 상위 계층 정보가 그 데이터그램 내에서 시작하는 곳의 계측 제공.
■ ToS(Type of Services) : 8비트
- 데이터가 어떻게 다뤄질 것인가를 표시하는 것으로, 특정한 패킷에 우선 순위 배정, 가장 우선적인 전송, 지정된 시간 내 전송, 특정 응용 프로그램을 위한 대역폭 배정 등의 QoS 서비스를 제공하는 용도로 사용.
■ 전체 길이(Total Length) : 16비트
- IP 데이터 그램의 길이를 측정한다(헤더+데이터).
■ 아이덴티피케이션(Identification, 16비트)
- IP 데이터그램을 유일하게 구별하는 숫자 값으로 다중 링크를 지원하는 라우팅 영역에서의 IP 데이터그램이 다른 경로를 통해서 중복돼 들어오는 경우를 검사하거나 프레그먼테이션(Fragmentation)이 일어나 패킷에 대한 재조립에 사용.
■ 플래그(Flags)
- 전송 매체들의 MTU 차이로 인해 프레그먼테이션이 일어났을 때 프레그먼테이션이 발생한 IP 데이터그램의 일부인지, 프레그먼테이션의 마지막 패킷인지, 프레그먼테이션 패킷이 아닌지를 지정.
■ 프래그먼트 옵셋(Fragment Offset)
- 프레그먼테이션이 일어나 IP 데이터그램(패킷)의 시작 부분에서 얼마만큼 떨어져 있는가에 대한 위치 지정.
- 라우터에서 프레그먼테이션이 일어나면 인접 라우터에서 재조립을 하는 것이 아니라 마지막 엔드 노드에서 재조립 수행.
■ TTL(Time-to-Live)
- 인터넷 속에서 생존할 수 있는 최대 시간으로, TTL=0이면 데이터그램은 파괴됨. 최대 255초로 지정돼 있음.
■ 프로토콜(8비트)
- 사용중인 상위 계층 프로토콜을 식별함


<그림 2>와 <그림 3>은 IP 헤더에 대한 분석을 통해 볼 수 있는 스니퍼 스테이션 레이어 엑스퍼트(Sniffer Station Layer Expert) 화면 내용이다. 이 스테이션 레이어 분석을 통해 각 IP별 트래픽 사용현황과 발생되는 네트워크 상의 이상 징후에 대해 확인할 수 있다.
■ 스테이션 요약(Station Summary)
- Net Station : 각 스테이션의 네트워크 주소
- DLC Station : 해당 스테이션의 DLC 주소
- Rx Frames : 해당 스테이션이 수신한 프레임 개수
- Tx Frames : 해당 스테이션이 송신한 프레임 개수
- Rx Bytes : 해당 스테이션이 수신한 바이트 수
- Tx Bytes : 해당 스테이션이 송신한 바이트 수
- Connections : 해당 스테이션에 대해 검출되는 커넥션 개수
- Diag/Symp : 해당 스테이션 상에서 발생한 알람 이벤트 개수
- Last Diag/Symp : 해당 네트워크 스테이션 상에서 발생한 마지막 알람
- Duration : 해당 네트워크 스테이션이 활동한 시간
- Protocol : 해당 네트워크 스테이션이 활동한 토폴로지 종류
- First Frame : 해당 스테이션에서 프레임이 처음 검출된 시간
- Last Frame : 해당 스테이션에서 가장 최근에 프레임이 검출된 시간
- Attributes : 스테이션들의 특수 기능을 알 수 있다면 이곳에 표시

커넥션 레이어 분석
커넥션 레이어는 OSI 7계층 트랜스포트(Transport) 계층에 해당하며, TCP나 UDP 같은 프로토콜을 분석한다. 이 계층에서는 포트 번호 및 전송 방식을 기본으로 패킷을 분석하며, 대부분의 네트워크에서 가장 많은 분석 대상(objects)을 포함하고 있다.
먼저 이 계층을 분석하기 위해 꼭 알고 있어야 할 TCP 헤더와 UDP 헤더에 대해 살펴보자. 모든 신뢰성을 중요시하는 애플리케이션들은 TCP로 개발돼 있으며, 데이터 전송속도에 민감한 애플리케이션들은 UDP 헤더로 개발됐다. 따라서 실제 헤더를 보더라도 그만큼 TCP가 복잡하다.


■ Sequence Number Field
- TCP 세그먼트 표시를 위한 번호
- 각각의 TCP 수신 측을 확인하기 위해 부여됨
- 데이터 송수신 과정동안에 상대방에서 전송된 이전 패킷의 ACK 번호와 일치
- 전송되는 패킷에 포함된 데이터 크기만큼 번호 증가
- 패킷 내부에 데이터가 포함돼 있지 않는 경우에는 다음 패킷도 동일한 번호 사용
■ Next expected Seq. number
- 스니퍼에서 패킷 내부에 포함된 데이터 크기에 따라서 다음 패킷에 부여되는 Seq. number를 계산한 값
- Seq. number와의 차이값이 해당 패킷에 포함된 실제 데이터의 크기
■ Acknowledgment Number Field
- 이 필드에 있는 번호는 상대방 측에서 다음에 전송되는 패킷에 부여할 Seq. number다.
■ URG flag
- TCP 헤더 내에 있는 urgent pointer에 값이 있음.
- 해당 패킷이 긴급한 데이터를 포함하고 있음.
■ ACK flag
- 이미 전송된 패킷에 대한 Acknowledgement 패킷
■ PSH flag(push)
- 해당 패킷을 수신하는 TCP 스택은 전송된 패킷을 버퍼에 누적하지 않고 상위 계층으로 곧바로 전달.
- 고속 처리가 필요하거나 단일 패킷만 사용하는 애플리케이션에서 사용됨.
- 최근에는 애플리케이션 계층까지의 처리 시간이 오래 걸리지 않기 때문에 이 비트는 무시.
■ RST flag(reset)
- 커넥션을 초기화
- 서버쪽으로 TCP SYN 패킷을 보내는 클라이언트에게 해당 TCP 포트에서는 어떤 작업도 수행되지 않고 있다는 응답을 하기 위해서 설정.
- 해킹 확인.
■ SYN flag
- 커넥션 초기화 및 sequence number 동기화.
- MSS(Maximum Segment Size) 조절.
■ FIN flag
- 송신측에서 모든 데이터 전송이 끝났음을 의미.
- TCP 커넥션 중지.

댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.