지니의 따듯한 공간

Encapsulation / Demultiplexing 본문

Network/Network Analysis

Encapsulation / Demultiplexing

Jineer 2019. 3. 12. 20:12

TCP/IP Model 에서 Client간의 데이터의 전달이 어떻게 이루어지는지

Encapsulation (캡슐화) 및 Demultiplexing (역 다중화) 실습을 통해 알아보자 !


EC_DM.exe



위의 실행파일을 다운 받아 실행하면 위와 같은 화면이 나온다.

메세지 창, 즉 메세지를 보내는 Client -> TCP/IP 모델의 4계층 Application layer 에 해당한다.



간단한 텍스트와 함께 위의 Encapsulation (=캡슐화) 버튼을 눌러보자 !

하단의 패킷 분석창을 통해 11byte 크기의 패킷이 담긴 것을 알 수있다. 

( 위 화면은 캡슐화를 누르고 난 후의 화면이다. )

[다음] 버튼을 누르면 캡슐화 ( 헤더에 현재 계층의 프로토콜을 및 정보를 담은 ) 후  다음 계층으로 보낸다.

 


- Transport layer -

캡슐화 된 정보가 3계층 Transport layer로 넘어 온 걸 확인 할 수있다.

마찬가지로 TCP헤더에 넣을 값을 입력하고 캡슐화를 Click !!

빨간색의 숫자가 지금 추가한 패킷의 정보를 나타낸다.

Source Port = 송신 포트번호

Destination Port = 수신 포트번호

금방 입력한 포트번호 및 3계층의 데이터가 들어간 것을 알수있다. (색깔 별로 표시)

위의 숫자는 기본적으로 HEX 16진수로 적혀있으므로

port 번호는 기본적으로 2byte란걸 알 수있다.

 16진수 숫자 하나 = 4bit 

캡슐화가 완료 됐다면 [다음] 버튼을 눌러 2계층으로 보내자!



- Network layer -

캡슐화된 패킷이 잘 도착했다.

전 단계에서 전송계층의 해당 프로토콜인 포트번호를 입력했다면!

이번에는 Network 계층에서 헤더에 담을 IP주소를 입력한 후 캡슐화를 Click !!

마찬가지로 Source = 송신 IP주소 / Destination = 수신 IP 주소

캡슐화 됬다면 [다음]버튼을 눌러서 1계층으로 보내자 !




- Network Access layer -

1계층은 OSI 7계층의 Data Link layer / Physical layer 계층으로 구성 되어있다. 

먼저 Data link 계층에서 수신지의 Mac 주소를 입력해 Physical계층의 전기적 신호로 이어진다.

위 화면에 보이듯 송, 수신지의 MAC주소를 입력 후 캡슐화 Click !!

추가된 패킷 정보 (빨간색 글자)를 보면 MAC Address는 6byte로 구성되어 있는 걸 알수있다.

헤더에 꾹꾹 담았다면 [다음] 버튼을 눌러서 수신측으로 보내자!





지금까지 잘 도착한 헤더내용을 보면 송,수신지의 논리적 주소와 물리적 주소

프로세스를 식별할 포트번호 등등이 자세히 나와있다.

이 헤더 정보를 통해 수신측으로 정보가 전달 된다.



전송이 완료되면 송신측에서 보낸 캡슐화가 잘 되어있는 데이터가 수신측의 Network Access layer 에 도착했다 !

이제 부터 수신척의 각 계층의 역할은 Demultiplexing (역 다중화) 캡슐화 되있는 정보를 하나씩 풀어서 분석하는 역할이 남았다.

전달 받은 패킷을 분석하여 위의 정보를 잘 입력해야지만 역다중화를 통해 다음 계층으로 보낼 수 있다.

마지막으로 전달 된 헤더의 패킷 (빨간줄,파란줄)을 통해 MAC주소를 알아내서 입력하자 !

그리고 Demultiplexing Click !!



Demultiplexing가 잘 되었다면, 보시는거와 같이 하단에 mac주소의 패킷 사이즈가 사라진걸 볼 수있다.

언캡슐화가 잘 됐다면 [다음] 버튼을 눌러서 상위 계층으로 보내자!

데이터의 최종 목적지는 수신측의 최상위 계층인 Application layer (사용자 계층)이다 !



- Network layer -

마찬가지로 위 화면에서 전달받은 패킷을 분석해 (16진수를 10진수로)

해당 계층에 맞는 프로토콜을 입력 해 주어야 한다.

보라색 = Source IP Address (송신지)

연두색 = Destination IP Address (수신지) 




16진수 <-> 10진수의 변환이 암산으로 잘 안되는 분들을 위해 !

우리에겐 프로그래머용 계산기가 있다 ㅎ.ㅎ


그렇게 10진수로 변환하여 입력 해 주시고 -

언캡슐화 = 역 다중화가 잘 됐다면 [다음] 버튼으로 상위 계층으로 이동하자 !


캡슐화 할때 봤었던 것 처럼 패킷의 길이만 보고 이 계층에서 분석해야 할 패킷을 파악하는 것이 좋다.

색깔 별로 포트 번호및 시퀀스를 입력 한 후 Demultiplexing Click !



!! 뚜둔 언캡슐화가 성공적으로 되었다. 이제 남은 패킷은 송신지의 Application layer에서 입력한 메세지 뿐이다.

헤더가 없으니 [다음] 버튼을 눌러서 바로 패킷을 분석하자 !


송신자가 보낸 '안녕하세요!' 라는 메세지가 잘 도착 되었다 !



이렇게 하여 송신지에서 보낸 메세지가 수신지의 클라이언트에게 도착하기 까지

TCP / IP Model의 계층들 속에서 이러한 과정 [ 캡슐화 / 역 다중화 ]을 통해 통신이 되는 것을 알 수 있었다.

다음에는 각 계층 별 프로토콜의 역할들에 대해서 자세히 알아보는 시간을 가져보자 !





'Network > Network Analysis' 카테고리의 다른 글

IPv6 주소 체계  (0) 2019.04.15
데이터그램 (Datagram) 이란?  (0) 2019.04.09
Ethernet II 프레임 형식  (0) 2019.04.02
IEEE 표준 이더넷  (0) 2019.04.02
[ Windows ] Telnet , FTP 연결  (0) 2019.03.26
Comments