OneDay Network
Wireshark 응용계층(Application layer) 분석 본문
1.1 응용 계층(Application layer) 정의
응용계층은 OSI 7 Layer에서 최상위 계층으로서, 사용자의 인터페이스를 제공하는 계층이다.
1.2 응용 계층(Application layer) 프로토콜 분석
가. HTTP(HyperText Transfer Protocol)
[그림 1] Centos7 Apache Server (192.168.32.130) Status
웹 서버와 클라이언트의 통신 과정을 보기 위해 Centos7에 apache server를 구축하였다.
[그림 2] PC(192.168.85.130)를 통해 웹사이트 접속
PC에서 미리 구축해 놓은 웹사이트에 접속을 하였다. 그러자 “Apache Web Server”라는 문장이 브라우저 상에 보였다. 이렇게 클라이언트가 페이지를 로드 할 수 있었던 것은 HTTP를 사용하여 통신하였기 때문이다. 따라서 서버와 클라이언트의 통신 과정을 보기 위해 Wireshark를 통해 스니핑 하였다.
[그림 3] HTTP Request, response
TCP의 3-way-hand shake과정은 위에서 설명하였기 때문에 생략하였다.
현재 3-way-hand shake이 지나고 서버와 클라이언트 사이에 세션이 성립 되었고, 그 뒤에 클라이언트와 서버는 정보를 주고 받는다. [그림 2]를 보면 클라이언트는 서버에 GET이라는 HTTP 메소드(Method)를 통해 요청하였고, 서버는 이에 대해 응답을 하였다.
[그림 4] HTTP Request 패킷
HTTP Request 패킷을 보면 많은 필드들이 존재한다. 먼저 Host필드는 요청하는 호스트에 대한 정보를 포함한다. Apache Server에게 요청해야 서버에서 응답이 오기 때문에 Server의 IP인 192.168.32.130으로 설정 되어있다. 다음 필드는 User-Agent이다. 이는 클라이언트의 브라우저 정보를 나타내어 준다. 다음 Accept 필드는 클라이언트가 해석 가능한 타입을 지정하는 필드이다. Accept-Encoding 필드는 클라이언트에서 해석 가능한 압축 방식을 나타내는 필드이다. connection필드에 Keep Alive라고 설정되어있다. HTTP는 연결을 유지 하지 않고 매번 끊고 새로 연결하는 프로토콜이다. 따라서 Keep Alive라는 설정을 통해 설정된 일정한 시간까지 요청 및 접속이 없더라도 연결을 끊지 않고 연결을 유지하는 것을 말한다.
[그림 5] HTTP Response패킷
또한, HTTP Response패킷을 보면 많은 필드들이 존재한다. 먼저 Date는 말 그대로 메시지가 생성된 날짜를 표시하는 필드이다. Server는 서버의 정보를 나타내는 필드이다. [그림 2]를 보면 운영체제는 Centos7이고 서버는 apache 서버의 2.4.6버전을 사용하고 있다.
[그림 6] HTTP Body
HTTP Body는 요청에 대한 응답을 body필드에 포함하여 전송한다.
여기서의 Body는 웹 페이지(html)에 대한 요청이기 때문에 위에서 웹 브라우저를 통해 접속했을 때 보이는 html코드가 Body부분에 오게 된다.
'Network' 카테고리의 다른 글
광대역 인터넷 연결 유형 및 케이블 종류 (0) | 2019.04.01 |
---|---|
DDOS 공격 (0) | 2019.03.12 |
Wireshark 전송계층(Transport layer) 분석 (0) | 2019.03.08 |
Wireshark 네트워크 계층(Network layer) 분석 (0) | 2019.03.07 |
Wireshark 데이터링크 계층(Data link layer) 분석 (1) | 2019.03.06 |