오늘 첫출근해서 한 일.

1. Windows OS 깔았음 : 이제 제일 큼. ㅋㅋ

2. 같은 회사 사람들이랑 인사.

3. 업무 분석 시작.


업부 분석이라 해 봤자, 아직까지 본격적인 code review까지는 하지 못했고, 그냥 부서 회의에 들어 가서 분위기 파악하는 정도였습니다.

우리 부서에서 본격으로 해야 하는 일이 바로 Protocol Anaysis입니다. 가장 대표적인 예를 하나 들어 보자면

Unknown Protocol에 의해서 트래픽이 발생하는 경우 ISP 입장에서는 "과연 무엇때문에 트래픽이 늘어 났는가?"를 알고 싶어 한다는 것입니다.

거기에 대한 신속 정확한 분석을 할 수 있는 전체 시스템을 설계해야 하는 일이 제가 맡은 일중의 하나입니다.

일례로 수십G짜리 UDP만 모아 놓은 cap 파일을 가지고 분류(classification)을 하는 것입니다.

생각을 죽 해 보니 다음과 같은 처리 능력이 필요합니다.


1. cap 파일 자체는 그냥 왔다리 갔다리 하는 패킷을 잡은 raw data의 조합에 불과하다.

2. 이 cap 파일을 가지고 뭔가 2차 가공을 위한 정보의 산출을 해야 한다.


즉 cap 파일이 단순한 data라고 한다면 그 data 안에서 뭔가의 information을 추출해야 한다는 것입니다.

단순한 ISP 업체로부터의 요구에 의해 그때 그때 필요한 Application을 만든다는 것은 노가다에 가깝겠구요,

뭔가 1차 가공을 통해서 클라이언트가 원하는 information을 추출하기 위한 뭔가의 플로우, 시스템을 구축해야 한다는 느낌을 받았습니다.


일단 오늘 퇴근을 하면서 생각을 한 것.


1. Object를 설계한다. 이 Object들은 cap파일의 1차적인 스캔을 통해서 각각의 attribute들이 변경되게 된다.


2. Object라 함은 네트워크의 각 Layer에 대한 요소들을 class로 정의한 것들의 instance이다. 예를 들면

L2 : Mac

L3 : IPv4, IPv6

L4 : ICMP Session, TCP Session, UDP Session (Half Duplex / Full Duplex)

L5 or higher : HTTP, FTP, Gopher, Telnet, RTSP, VoIP, ... 등등 조낸 많음.


3. 각각의 Object의 정의(class interface)를 DB화하여 나중에 검색을 빠르게 할 수 있도록 한다.



L5 이상에 속하는 Object들의 정의는 수도 없을 터이고, L2 ~ L4 부터 Object들의 설계를 해야 할 것 같습니다.

참, 적고 나니 상당히 추상적이네... ㅋㅋ