25년2학기/컴퓨터 네트워크

컴넷) 강의 (11.01)

kimchangmin02 2025. 11. 1. 06:39

도메인주ㅗ=소: 몇비트인지 모르겟지만, 그걸 다외우긴 힘드니깐, 의미없는 비트라서 

 

한줄이 패킷하나

 

캐쉬, 패킷이 발생하지않음

 

 

패킷(Packet)이란?

"인터넷을 통해 데이터를 주고받을 때 사용하는 '데이터의 작은 포장 단위' 또는 '택배 상자'"

인터넷으로 무언가 요청하고 응답받는 통신 행위가 일어날 때마다 패킷이 발생(생성)됩니다.

 

 

캐시(Cache)란 "자주 사용하는 데이터를 매번 멀리까지 가서 가져오기 귀찮으니, 내 컴퓨터에 잠시 복사해두는 임시 저장 공간" 입니다.

 

 

 

 

 

1. 실습 목표

인터넷을 통해 전송되는 패킷을 '와이어샤크(Wireshark)'라는 프로그램을 사용하여 캡처하고, 관찰 및 분석하는 방법을 익힙니다.

2. 와이어샤크(Wireshark) 설치

  • 프로그램 확인: Windows 검색창에서 'wireshark'를 입력하여 파란색 상어 지느러미 아이콘이 나타나면 이미 설치된 것입니다.
  • 설치 과정:
    1. 구글에서 '와이어샤크'를 검색하여 공식 사이트에 접속합니다.
    2. 자신의 운영체제에 맞는 버전(Windows 64-bit 인스톨러)을 다운로드합니다.
    3. 설치 과정에서는 특별한 설정 변경 없이 'Next'를 계속 클릭하면 됩니다.
    4. 패킷 캡처에 필요한 Npcap 라이브러리가 설치되는데, 라이선스에 동의하고 기본 설정을 유지합니다. (Wi-Fi 캡처 옵션은 선택하지 않아도 무방합니다.)
    5. USB 캡처 라이브러리(USBPcap)는 실습과 무관하므로 체크하지 않은 상태로 둡니다.
    6. 설치가 완료되면 'Finish'를 누릅니다.

3. 와이어샤크 기본 사용법

가. 인터페이스 선택

  1. 와이어샤크를 실행하면 컴퓨터에 설치된 여러 네트워크 인터페이스 목록이 나타납니다.
  2. 실제 인터넷 연결에 사용되는 '이더넷(Ethernet)' 인터페이스를 찾아야 합니다.
  3. 자신의 실제 IP 주소를 확인하여 해당 IP가 할당된 인터페이스를 찾아야 합니다.
    • IP 주소 확인 방법 1: 네이버 검색창에 'IP 주소 확인'을 입력합니다. (가끔 부정확할 수 있습니다.)
    • IP 주소 확인 방법 2 (가장 정확): 명령 프롬프트(cmd) 창에서 ipconfig 명령어를 입력하여 '이더넷 어댑터' 섹션의 IPv4 주소를 확인합니다.
  4. 확인된 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: 서버에 요청할 파일의 경로와 이름.

나. 실험 절차

  1. (매우 중요) 브라우저 캐시 삭제: 정확한 패킷 캡처를 위해 이전에 접속했던 기록을 삭제해야 합니다. 크롬에서 오른쪽 상단 점 3개 > 인터넷 사용 기록 삭제를 통해 캐시된 이미지 및 파일을 삭제합니다.
  2. 와이어샤크 캡처 시작: 와이어샤크에서 패킷 캡처를 시작합니다.
  3. URL 접속: 크롬 주소창에 위 URL을 붙여넣고 엔터를 쳐서 페이지에 접속합니다.
  4. 와이어샤크 캡처 중지: 웹 페이지 내용이 화면에 표시되면, 필요한 패킷이 모두 수신된 것이므로 와이어샤크 캡처를 중지합니다.

다. 분석할 패킷 찾기

수천 개의 캡처된 패킷 중에서 필요한 패킷을 효율적으로 찾아야 합니다.

  1. 필터/정렬 사용: 패킷 목록 창의 'Protocol' 컬럼을 클릭하여 프로토콜 이름순으로 정렬합니다. HTTP 프로토콜을 사용하는 패킷들만 집중적으로 확인합니다.
  2. 요청(Request) 패킷 찾기:
    • Source 주소가 내 PC의 IP 주소인 패킷을 찾습니다.
    • Info 컬럼에 GET /wireshark-labs/...와 같이, 내가 요청한 파일 이름이 포함된 패킷이 "파일 주세요"라고 요청한 패킷입니다. (문제 1~4번 해당)
  3. 응답(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는 '요청이 성공적으로 처리되었다'는 의미의 응답 코드입니다.)

 

 

 

 

 

 

 

 

  1. 웹 서버의 역할:
    • 웹 서버는 본질적으로 **"파일을 보관하고 있다가 요청이 오면 내어주는 프로그램"**입니다.
    • 서버 컴퓨터의 특정 폴더(디렉토리) 안에 수많은 파일들(HTML 문서, 이미지, 동영상 등)을 저장해 둡니다.
  2. 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 이라는 이름의 파일을 주세요. 라는 뜻입니다.
  3. 실습 과정 요약:
    • 우리가 크롬에서 URL을 입력하고 엔터를 치는 행위는, 와이어샤크가 캡처한 요청(GET) 패킷을 만드는 과정입니다.
    • gaia 서버는 이 요청 패킷을 받고 URL을 분석해서, 자신의 하드디스크에 있는 wireshark-labs 폴더로 찾아가 HTTP-wireshark-file3.html 파일을 읽습니다.
    • 그리고 그 파일의 내용을 응답(200 OK) 패킷에 담아 우리에게 보내줍니다.
    • 크롬 브라우저는 이 응답 패킷에 담겨 온 파일 내용을 해석해서 우리가 보는 화면에 예쁘게 그려주는 것입니다.

 

 

 

 

 

 

MAC 주소는 '바로 지금' 배송을 담당하는 배달원의 주소입니다.

미국 아마존 창고에서 제 한국 집으로 택배가 온다고 상상해 보세요.

  1. 미국 내 배송: 아마존 창고 직원이 택배를 트럭 운전사에게 넘깁니다.
    • 이때 '배송을 시작한 사람'은 트럭 운전사입니다.
  2. 국가 간 배송: 트럭이 공항에 도착하면, 택배는 항공기 조종사에게 인계됩니다.
    • 이제 태평양을 건너는 동안 '배송을 책임지는 사람'은 항공기 조종사입니다.
  3. 한국 내 배송: 인천공항에 도착한 택배는 우체국 택배 기사님에게 전달됩니다.
    • 인천에서 저희 집까지 '배송을 책임지는 사람'은 우체국 택배 기사님입니다.
  4. 최종 도착: 마침내 저희 집 문 앞에서 초인종을 누르는 사람은 누구일까요? 바로 우체국 택배 기사님입니다. 미국 아마존 창고 직원이나 항공기 조종사가 직접 오지 않습니다.

이것을 네트워크에 그대로 적용해 보겠습니다.

  • 택배 상자 안의 송장 (IP 주소): 송장에는 "보내는 사람: 미국 아마존", "받는 사람: 한국의 나" 라고 적혀있고, 이 내용은 절대 바뀌지 않습니다. (Source IP: 가이아 서버, Destination IP: 내 PC)
  • 각 단계의 배달원 (MAC 주소): 각 배송 단계마다 배달원은 계속 바뀝니다.

우리가 와이어샤크로 보는 것은 바로 4번 단계, 즉 최종 도착 단계입니다.

 

 

 

 

 

 

 

 

 

 

 

 

우리가 와이어샤크에서 보는 Source MAC 주소는 인터넷 저 멀리 어딘가에 있는 장비의 주소가 아니라, 내 컴퓨터와 직접 연결된 로컬 네트워크 상에서 '마지막으로' 그 패킷을 나에게 전달해준 장비(대부분의 경우 라우터)의 주소인 것입니다.

 

<아, 그래서 미국의 가이아<이걸 볼수없다고 한게 그 뜻이엇던걸까

 

 

 

 

 

와이어샤크는 '내 컴퓨터의 인터페이스'라는 창문을 통해서만 네트워크 세상을 봅니다.

조금 더 풀어서 설명해 드리겠습니다.

  1. 와이어샤크의 위치: 와이어샤크는 인터넷 어딘가를 떠다니는 프로그램이 아니라, 바로 지금 사용하고 계신 '내 PC' 위에서 실행되는 소프트웨어입니다.
  2. 와이어샤크의 감시 대상: 이 프로그램은 내 PC에 장착된 네트워크 인터페이스 카드(NIC), 즉 랜선이 꽂혀있는 이더넷 포트나 Wi-Fi 카드를 감시하고 있습니다.
  3. 캡처의 원리: 따라서 와이어샤크가 캡처(기록)할 수 있는 패킷은 오직 두 종류뿐입니다.
    • 들어오는 패킷: 외부에서 내 컴퓨터를 향해, 그 인터페이스를 통과하여 들어오는 패킷.
    • 나가는 패킷: 내 컴퓨터에서 외부를 향해, 그 인터페이스를 통과하여 나가는 패킷.

이것이 바로 교수님께서 "내 눈앞을 지나가는 패킷만 볼 수 있다"고 말씀하신 이유이며, 우리가 보는 것이 '최종 도착 단계' 또는 **'최초 출발 단계'**일 수밖에 없는 이유입니다.

  • 응답 패킷(서버→나)을 볼 때: 수많은 여정을 거친 패킷이 마침내 내 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