도메인주ㅗ=소: 몇비트인지 모르겟지만, 그걸 다외우긴 힘드니깐, 의미없는 비트라서
한줄이 패킷하나
캐쉬, 패킷이 발생하지않음
패킷(Packet)이란?
"인터넷을 통해 데이터를 주고받을 때 사용하는 '데이터의 작은 포장 단위' 또는 '택배 상자'"
인터넷으로 무언가 요청하고 응답받는 통신 행위가 일어날 때마다 패킷이 발생(생성)됩니다.
캐시(Cache)란 "자주 사용하는 데이터를 매번 멀리까지 가서 가져오기 귀찮으니, 내 컴퓨터에 잠시 복사해두는 임시 저장 공간" 입니다.
1. 실습 목표
인터넷을 통해 전송되는 패킷을 '와이어샤크(Wireshark)'라는 프로그램을 사용하여 캡처하고, 관찰 및 분석하는 방법을 익힙니다.
2. 와이어샤크(Wireshark) 설치
- 프로그램 확인: Windows 검색창에서 'wireshark'를 입력하여 파란색 상어 지느러미 아이콘이 나타나면 이미 설치된 것입니다.
- 설치 과정:
- 구글에서 '와이어샤크'를 검색하여 공식 사이트에 접속합니다.
- 자신의 운영체제에 맞는 버전(Windows 64-bit 인스톨러)을 다운로드합니다.
- 설치 과정에서는 특별한 설정 변경 없이 'Next'를 계속 클릭하면 됩니다.
- 패킷 캡처에 필요한 Npcap 라이브러리가 설치되는데, 라이선스에 동의하고 기본 설정을 유지합니다. (Wi-Fi 캡처 옵션은 선택하지 않아도 무방합니다.)
- USB 캡처 라이브러리(USBPcap)는 실습과 무관하므로 체크하지 않은 상태로 둡니다.
- 설치가 완료되면 'Finish'를 누릅니다.
3. 와이어샤크 기본 사용법
가. 인터페이스 선택
- 와이어샤크를 실행하면 컴퓨터에 설치된 여러 네트워크 인터페이스 목록이 나타납니다.
- 실제 인터넷 연결에 사용되는 '이더넷(Ethernet)' 인터페이스를 찾아야 합니다.
- 자신의 실제 IP 주소를 확인하여 해당 IP가 할당된 인터페이스를 찾아야 합니다.
- IP 주소 확인 방법 1: 네이버 검색창에 'IP 주소 확인'을 입력합니다. (가끔 부정확할 수 있습니다.)
- IP 주소 확인 방법 2 (가장 정확): 명령 프롬프트(cmd) 창에서 ipconfig 명령어를 입력하여 '이더넷 어댑터' 섹션의 IPv4 주소를 확인합니다.
- 확인된 IP 주소를 가진 인터페이스를 와이어샤크 목록에서 찾아 더블클릭하거나, 클릭 후 상단의 파란색 상어 지느러미 아이콘을 누르면 패킷 캡처가 시작됩니다.
나. 캡처 시작 및 중지
- 캡처 시작: 인터페이스를 선택하거나, 캡처 중지 후 다시 파란색 상어 지느러미 아이콘을 누릅니다.
- 캡처 중지: 상단의 빨간색 네모 아이콘을 누릅니다.
4. 와이어샤크 화면 구성
와이어샤크는 세 개의 창으로 구성되어 있습니다.
가. 패킷 목록 창 (Packet List Pane - 상단)
캡처된 패킷의 요약 정보를 한 줄씩 보여줍니다.
- No.: 캡처된 순서 번호.
- Time: 캡처 시작 시점으로부터 경과 시간.
- Source: 송신자 주소 (IP 주소 또는 MAC 주소).
- Destination: 수신자 주소 (IP 주소 또는 MAC 주소).
- Protocol: 해당 패킷과 관련된 프로토콜 중 가장 상위 계층의 프로토콜 (예: TCP, HTTP, DNS).
- Length: 패킷의 전체 크기 (바이트).
- Info: 해당 패킷의 핵심 정보 요약. (실습 초기에는 힌트가 될 수 있으므로 나중에 보는 것이 좋습니다.)
나. 패킷 상세 정보 창 (Packet Details Pane - 중간)
목록 창에서 선택한 패킷의 모든 계층별 헤더 정보를 자세히 보여줍니다.
- 계층 구조: 패킷은 여러 프로토콜 계층으로 구성되며, 각 계층의 헤더 정보를 펼쳐서 필드 값을 확인할 수 있습니다.
- Frame: 전체 패킷에 대한 물리적 정보.
- Ethernet II: 데이터 링크 계층 헤더. 송/수신 MAC 주소(Source/Destination)와 상위 프로토콜을 알려주는 타입(Type) 정보가 포함됩니다.
- Internet Protocol Version 4 (IPv4): 네트워크 계층 헤더. 송/수신 IP 주소 정보가 포함됩니다.
- Transmission Control Protocol (TCP): 전송 계층 헤더. 포트 번호, 순서 번호 등의 정보가 포함됩니다.
- Hypertext Transfer Protocol (HTTP): 응용 계층 정보.
- 정보 해석: 와이어샤크는 편의를 위해 코드 값을 해석해서 보여줍니다.
- MAC 주소: 80:b0:29:7c:f0:ab와 같은 실제 값과 함께, 앞 24비트를 분석하여 제조업체 정보(예: Samsung)를 함께 표시해 줍니다.
- Ethernet Type: 0x0800과 같은 16진수 코드 값이 어떤 상위 프로토콜(예: IPv4)을 의미하는지 해석해서 보여줍니다.
다. 패킷 바이트 창 (Packet Bytes Pane - 하단)
선택한 패킷의 실제 데이터(Raw Data)를 16진수와 아스키(ASCII) 문자로 보여줍니다. 중간 창에서 특정 헤더나 필드를 선택하면 해당 부분이 하단 창에 하이라이트됩니다.
5. 실습 내용: 웹 페이지 접속 패킷 분석
가. 실험 개요
- 목표: 크롬 브라우저를 이용해 미국 매사추세츠 대학교(UMass)에 있는 웹 서버('gaia.cs.umass.edu')에 접속하여 특정 파일을 요청하고 응답받는 과정에서 발생하는 패킷을 캡처하고 분석합니다.
- 사용 프로토콜: 월드 와이드 웹(WWW) 서비스는 클라이언트-서버 모델을 따르며, **HTTP(Hypertext Transfer Protocol)**라는 응용 계층 프로토콜을 사용합니다.
- URL: http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file3.html
- http: 사용할 프로토콜.
- gaia.cs.umass.edu: 접속할 서버의 도메인 네임 (IP 주소의 별명).
- /wireshark-labs/.../HTTP-wireshark-file3.html: 서버에 요청할 파일의 경로와 이름.
나. 실험 절차
- (매우 중요) 브라우저 캐시 삭제: 정확한 패킷 캡처를 위해 이전에 접속했던 기록을 삭제해야 합니다. 크롬에서 오른쪽 상단 점 3개 > 인터넷 사용 기록 삭제를 통해 캐시된 이미지 및 파일을 삭제합니다.
- 와이어샤크 캡처 시작: 와이어샤크에서 패킷 캡처를 시작합니다.
- URL 접속: 크롬 주소창에 위 URL을 붙여넣고 엔터를 쳐서 페이지에 접속합니다.
- 와이어샤크 캡처 중지: 웹 페이지 내용이 화면에 표시되면, 필요한 패킷이 모두 수신된 것이므로 와이어샤크 캡처를 중지합니다.
다. 분석할 패킷 찾기
수천 개의 캡처된 패킷 중에서 필요한 패킷을 효율적으로 찾아야 합니다.
- 필터/정렬 사용: 패킷 목록 창의 'Protocol' 컬럼을 클릭하여 프로토콜 이름순으로 정렬합니다. HTTP 프로토콜을 사용하는 패킷들만 집중적으로 확인합니다.
- 요청(Request) 패킷 찾기:
- Source 주소가 내 PC의 IP 주소인 패킷을 찾습니다.
- Info 컬럼에 GET /wireshark-labs/...와 같이, 내가 요청한 파일 이름이 포함된 패킷이 "파일 주세요"라고 요청한 패킷입니다. (문제 1~4번 해당)
- 응답(Response) 패킷 찾기:
- Source 주소가 서버의 IP 주소(gaia.cs.umass.edu)인 패킷을 찾습니다.
- Info 컬럼에 HTTP/1.1 200 OK 라고 표시된 패킷이 "파일 여기 있다"라고 응답하는 첫 번째 패킷입니다. (문제 5~8번 해당)
6. 문제 풀이 핵심 포인트 및 주의사항
가. 문제 1~4번 (요청 패킷 분석)
- 이더넷 주소(MAC 주소)의 이해: 내가 보낸 요청 패킷의 이더넷 헤더를 분석할 때,
- Source MAC address: 내 PC의 MAC 주소입니다.
- Destination MAC address: 절대 미국 서버의 MAC 주소가 아닙니다. 패킷이 인터넷으로 나가기 위해 가장 먼저 거쳐야 할 관문인 내부 네트워크의 라우터(게이트웨이)의 MAC 주소입니다. 우리는 내 PC와 직접 연결된 로컬 네트워크 구간의 패킷만 볼 수 있습니다.
나. 문제 5~8번 (응답 패킷 분석)
- 과도한 친절(Reassembled TCP) 피하기: 서버가 보내준 파일의 크기가 커서 여러 개의 패킷으로 나뉘어 도착한 경우, 와이어샤크는 이 패킷들을 자동으로 하나로 합쳐서(Reassembled) 보여주는 친절한 기능을 제공합니다.
- 문제점: 이렇게 합쳐진 패킷 정보에는 각 패킷의 고유한 헤더 정보(이더넷, IP, TCP 헤더)가 표시되지 않아 문제 풀이가 불가능합니다.
- 해결책: 200 OK 응답 패킷이 여러 개로 나뉘었다면, 그중 가장 첫 번째 순서의 패킷을 직접 찾아서 선택해야 합니다. 그러면 재조립되기 전의 원본 헤더 정보를 모두 확인할 수 있습니다.
- 이더넷 주소의 이해: 서버로부터 받은 응답 패킷의 이더넷 헤더를 분석할 때,
- Source MAC address: 내부 네트워크 라우터의 MAC 주소입니다.
- Destination MAC address: 내 PC의 MAC 주소입니다.
다. 기타 중요 사항
- HTTP vs HTTPS: 만약 HTTP 패킷이 전혀 캡처되지 않는다면, 주소창의 주소가 https://로 시작하는지 확인해야 합니다. s가 붙은 HTTPS는 암호화된 통신이라 와이어샤크가 내용을 분석할 수 없습니다. 이 경우, 주소에서 s를 직접 지우고 http://로 접속해야 합니다.
아
1_4번은 내가 가이아 서버로 가는거고
(요청하는건가)
5~8은 요청한걸 돌려주기 위해 가이아가 나에게 오는건가
IP 주소 = 최종 목적지 주소
MAC 주소 = 배달원의 '바로 다음' 전달 주소
- 각 단계마다 '바로 다음' 전달 주소는 계속 바뀐다는 것입니다. (집 → 공항, 공항 → LA 공항, LA 공항 → 김철수 집)
- MAC 주소가 바로 이런 역할을 합니다. 네트워크의 '물리적인' 주소이며, 랜카드(네트워크 부품)가 공장에서 생산될 때 부여되는 고유한 번호라 절대 변하지 않습니다.
MAC 주소는 내 컴퓨터가 연결된 바로 그 로컬 네트워크(같은 공유기나 스위치에 연결된 장비들) 안에서, 바로 다음 장비에게 데이터를 전달하기 위해 사용됩니다. (Hop-by-Hop, 한 단계씩 통신)
GET은 '가져오다'라는 의미의 요청 명령어입니다.)
(200 OK는 '요청이 성공적으로 처리되었다'는 의미의 응답 코드입니다.)
- 웹 서버의 역할:
- 웹 서버는 본질적으로 **"파일을 보관하고 있다가 요청이 오면 내어주는 프로그램"**입니다.
- 서버 컴퓨터의 특정 폴더(디렉토리) 안에 수많은 파일들(HTML 문서, 이미지, 동영상 등)을 저장해 둡니다.
- URL의 의미 (파일 경로 지정):
- 우리가 웹 브라우저 주소창에 입력하는 URL은 사실 서버에게 **"어떤 폴더 밑에 있는 어떤 파일을 달라"**고 구체적으로 알려주는 명령문과 같습니다.
- 실습에서 사용한 URL을 분해해보면 다음과 같습니다.
http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file3.html- http://: HTTP 프로토콜을 사용해서 통신하겠다.
- gaia.cs.umass.edu: 이 도메인 네임을 가진 컴퓨터(서버)에게 요청하겠다.
- /wireshark-labs/HTTP-wireshark-file3.html:
- 그 서버 안에 있는 wireshark-labs 라는 폴더(디렉토리)로 들어가서,
- HTTP-wireshark-file3.html 이라는 이름의 파일을 주세요. 라는 뜻입니다.
- 실습 과정 요약:
- 우리가 크롬에서 URL을 입력하고 엔터를 치는 행위는, 와이어샤크가 캡처한 요청(GET) 패킷을 만드는 과정입니다.
- gaia 서버는 이 요청 패킷을 받고 URL을 분석해서, 자신의 하드디스크에 있는 wireshark-labs 폴더로 찾아가 HTTP-wireshark-file3.html 파일을 읽습니다.
- 그리고 그 파일의 내용을 응답(200 OK) 패킷에 담아 우리에게 보내줍니다.
- 크롬 브라우저는 이 응답 패킷에 담겨 온 파일 내용을 해석해서 우리가 보는 화면에 예쁘게 그려주는 것입니다.
MAC 주소는 '바로 지금' 배송을 담당하는 배달원의 주소입니다.
미국 아마존 창고에서 제 한국 집으로 택배가 온다고 상상해 보세요.
- 미국 내 배송: 아마존 창고 직원이 택배를 트럭 운전사에게 넘깁니다.
- 이때 '배송을 시작한 사람'은 트럭 운전사입니다.
- 국가 간 배송: 트럭이 공항에 도착하면, 택배는 항공기 조종사에게 인계됩니다.
- 이제 태평양을 건너는 동안 '배송을 책임지는 사람'은 항공기 조종사입니다.
- 한국 내 배송: 인천공항에 도착한 택배는 우체국 택배 기사님에게 전달됩니다.
- 인천에서 저희 집까지 '배송을 책임지는 사람'은 우체국 택배 기사님입니다.
- 최종 도착: 마침내 저희 집 문 앞에서 초인종을 누르는 사람은 누구일까요? 바로 우체국 택배 기사님입니다. 미국 아마존 창고 직원이나 항공기 조종사가 직접 오지 않습니다.
이것을 네트워크에 그대로 적용해 보겠습니다.
- 택배 상자 안의 송장 (IP 주소): 송장에는 "보내는 사람: 미국 아마존", "받는 사람: 한국의 나" 라고 적혀있고, 이 내용은 절대 바뀌지 않습니다. (Source IP: 가이아 서버, Destination IP: 내 PC)
- 각 단계의 배달원 (MAC 주소): 각 배송 단계마다 배달원은 계속 바뀝니다.
우리가 와이어샤크로 보는 것은 바로 4번 단계, 즉 최종 도착 단계입니다.
우리가 와이어샤크에서 보는 Source MAC 주소는 인터넷 저 멀리 어딘가에 있는 장비의 주소가 아니라, 내 컴퓨터와 직접 연결된 로컬 네트워크 상에서 '마지막으로' 그 패킷을 나에게 전달해준 장비(대부분의 경우 라우터)의 주소인 것입니다.
<아, 그래서 미국의 가이아<이걸 볼수없다고 한게 그 뜻이엇던걸까
와이어샤크는 '내 컴퓨터의 인터페이스'라는 창문을 통해서만 네트워크 세상을 봅니다.
조금 더 풀어서 설명해 드리겠습니다.
- 와이어샤크의 위치: 와이어샤크는 인터넷 어딘가를 떠다니는 프로그램이 아니라, 바로 지금 사용하고 계신 '내 PC' 위에서 실행되는 소프트웨어입니다.
- 와이어샤크의 감시 대상: 이 프로그램은 내 PC에 장착된 네트워크 인터페이스 카드(NIC), 즉 랜선이 꽂혀있는 이더넷 포트나 Wi-Fi 카드를 감시하고 있습니다.
- 캡처의 원리: 따라서 와이어샤크가 캡처(기록)할 수 있는 패킷은 오직 두 종류뿐입니다.
- 들어오는 패킷: 외부에서 내 컴퓨터를 향해, 그 인터페이스를 통과하여 들어오는 패킷.
- 나가는 패킷: 내 컴퓨터에서 외부를 향해, 그 인터페이스를 통과하여 나가는 패킷.
이것이 바로 교수님께서 "내 눈앞을 지나가는 패킷만 볼 수 있다"고 말씀하신 이유이며, 우리가 보는 것이 '최종 도착 단계' 또는 **'최초 출발 단계'**일 수밖에 없는 이유입니다.
- 응답 패킷(서버→나)을 볼 때: 수많은 여정을 거친 패킷이 마침내 내 PC의 인터페이스에 도착하는 '최종 배달' 순간을 보는 것입니다. 이때 배달원은 바로 옆에 있는 라우터입니다.
- 요청 패킷(나→서버)을 볼 때: 내 PC가 만든 패킷이 인터넷 세상으로 여행을 떠나기 위해 인터페이스를 나서는 '최초 출발' 순간을 보는 것입니다. 이때 패킷을 가장 먼저 받아주는 것은 바로 옆에 있는 라우터입니다.
핵심을 정확히 짚으셨습니다. 와이어샤크는 내 PC의 '인터페이스' 라는 매우 한정된 지점에서만 관찰하기 때문에, 우리는 그 지점을 통과하는 로컬 통신(MAC 주소 기반 통신)의 모습만 볼 수 있는 것입니다.
'25년2학기 > 컴퓨터 네트워크' 카테고리의 다른 글
| 컴넷) (11.08) (0) | 2025.11.08 |
|---|---|
| 컴넷) (11.05) (0) | 2025.11.05 |
| 컴넷) 10.29 (0) | 2025.10.29 |
| 컴넷)시험대비(10.12) (0) | 2025.10.21 |
| 컴넷)기출(10.19) (0) | 2025.10.19 |