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

컴넷) (11.12)

kimchangmin02 2025. 11. 12. 19:44
  • MAC 주소: 질문하신 대로 48비트가 맞습니다. 이는 랜카드(네트워크 인터페이스)마다 부여된 고유한 물리적 주소로, 같은 네트워크(LAN) 내에서 통신할 때 사용됩니다.

 

 

 

  • 블록 할당 (Block Allocation): IP 주소는 개별적으로 할당되지 않고, 연속된 주소의 덩어리(블록) 단위로 할당됩니다. 이는 두 가지 중요한 이점을 가집니다.
    • 계층적 라우팅 지원: 주소의 앞부분(네트워크 주소)이 같은 장비들은 물리적으로 같은 네트워크에 위치하게 되므로, 계층적 라우팅이 가능해집니다.
    • 라우팅 테이블 크기 축소: 예를 들어, 165.229.x.x 주소를 사용하는 65,536개의 장비로 가는 경로를 라우팅 테이블에 하나의 항목(165.229.0.0/16)으로 요약하여 표현할 수 있어, 라우터의 메모리 부담과 검색 시간을 크게 줄일 수 있습니다.

 

 

 

 

 

여기서 '마스크'는 우리가 아는 그 '가면'이나 '필터'와 똑같은 의미입니다.

무언가를 덮어서(가려서) 원하는 부분만 드러나게 하는 도구라는 뜻입니다.

 

서브넷 마스크의 의미를 한 문장으로 정의하면 이렇습니다.

"IP 주소에서 어디까지가 '단체 이름(네트워크)'이고, 어디부터가 '개인 이름(컴퓨터)'인지를 구분해주는 구분선(마스크)입니다."

 

  • 1 이 의미하는 것: "이 자리는 네트워크의 이름표에 속한다. 건드리지 마라!"
    • 1로 표시된 부분은 그 네트워크에 속한 모든 컴퓨터가 공통으로 공유하는 주소 부분입니다.
    • 마치 한 가족의 **'성(Family Name)'**과 같습니다. 이 가족에 속한 모든 사람은 같은 '김씨' 성을 가집니다.
  • 0 이 의미하는 것: "이 자리는 각 컴퓨터가 자유롭게 쓸 수 있는 개인 번호판이다."
    • 0으로 표시된 부분은 네트워크 관리자가 각 컴퓨터에 개별적으로 할당해 줄 수 있는 주소 부분입니다.
    • 마치 한 가족 구성원의 **'이름(First Name)'**과 같습니다. '철수', '영희'처럼 각자 다른 이름을 가집니다.

 

 

 

 

 

 

  • VLAN은 본질적으로 하나의 스위치(하나의 네트워크) 안에서 노는 기술입니다. 물리적으로는 다 같은 스위치에 연결되어 있지만, "너희는 재무팀 VLAN, 너희는 인사팀 VLAN이니까 서로 아는 척하지 마!"라고 논리적인 경계를 만들어 주는 것입니다. 이들은 같은 건물, 같은 층에 있지만 파티션으로 나뉜 것과 같습니다. 다른 팀과 이야기하려면 복도(라우터)로 나가야 합니다.

2계층임

1. VLAN은 'L2 스위치'의 기능이기 때문입니다.

가장 근본적인 이유입니다.

  • VLAN 설정을 어디에 하나요? 바로 L2 스위치 장비에 합니다.
  • L2 스위치는 OSI 7계층 중 **2계층(데이터 링크 계층)**에서 동작하는 장비입니다.
  • 따라서 스위치가 제공하는 핵심 기능인 VLAN 역시 2계층 기술로 분류됩니다.

쉽게 비유하자면, 스마트폰(스위치)의 '카메라 앱(VLAN 기능)'은 당연히 스마트폰의 기능인 것과 같습니다. 라우터(3계층 장비)는 VLAN을 설정하는 기능 자체가 없습니다.

2. VLAN은 'MAC 주소'와 '프레임'의 세상을 다루기 때문입니다.

2계층의 세상에서는 IP 주소가 아닌 MAC 주소를 사용하고, 데이터 단위를 패킷이 아닌 **프레임(Frame)**이라고 부릅니다. VLAN은 바로 이 세상 안에서 동작합니다.

  • 스위치가 VLAN을 나누는 기준은 **포트(Port)**입니다. "1번부터 8번 포트는 A팀, 9번부터 16번 포트는 B팀" 이런 식입니다.
  • A팀의 컴퓨터가 보낸 **브로드캐스트 프레임(Broadcast Frame)**이 스위치로 들어오면, 스위치는 이 프레임을 A팀에 속한 포트들에게만 전달합니다.
  • 이 과정에서 스위치는 프레임 안에 들어있는 IP 패킷의 내용은 전혀 신경 쓰지 않습니다. 오직 "이 프레임이 어느 포트에서 왔는가? 그럼 어느 포트들로 보내야 하는가?"만 고민합니다.

이것은 전형적인 2계층의 동작 방식입니다. IP 주소를 보고 다른 네트워크로 길을 찾아주는 3계층의 역할과는 완전히 다릅니다.

3. VLAN 정보는 '이더넷 프레임' 안에 기록되기 때문입니다. (결정적 증거)

강의에서 나왔던 802.1Q 프로토콜을 떠올려보시면 완벽하게 이해됩니다.

  • 문제 상황: 스위치 A와 스위치 B가 연결되어 있을 때, A에서 온 프레임이 VLAN 10 소속인지, VLAN 20 소속인지 B가 알 수 있는 방법이 없습니다. 일반 이더넷 프레임에는 VLAN 정보가 없기 때문입니다.
  • 해결책 (802.1Q): 스위치끼리 프레임을 주고받을 때, 2계층 이더넷 프레임 헤더 중간에 '태그(Tag)'를 끼워 넣습니다.
  • 이 태그 안에 "이 프레임은 VLAN 10 소속입니다!" 라는 정보가 명확하게 기록됩니다.

VLAN 정보가 3계층 IP 헤더가 아닌, 2계층 이더넷 프레임 헤더에 직접 삽입된다는 사실은 VLAN이 2계층 기술이라는 가장 확실하고 결정적인 증거입니다.

 

 

 

 

 

 

 

 

 

주제: 기관 내부 네트워크 구성과 서브네팅 (심화 설명)

상황: 우리 대학교가 인터넷 기관으로부터 165.229.0.0/16 이라는 거대한 IP 주소 덩어리(약 65,000개)를 할당받았습니다. 이제 이 주소를 가지고 교내 수만 대의 컴퓨터를 연결하는 내부 네트워크를 설계해야 합니다.

어떤 방법이 가장 효율적일까요? 강의에서는 세 가지 설계안을 차례로 검토했습니다.

설계안 1: 단일 공유 링크 (가장 단순하지만 최악의 방법)

  • 구성: 거대한 L2 스위치 하나를 두고, 학교의 모든 컴퓨터(6만여 대)를 여기에 연결합니다.
  • 장점:
    • 구성의 단순함: 물리적으로 연결만 하면 끝납니다.
    • 라우팅 불필요: 모든 컴퓨터가 같은 네트워크에 있으므로, 내부 통신을 위해 라우터가 필요 없습니다.
    • 자원 공유의 편리함: 본관 프린터, 기계관 파일 서버 등 모든 자원이 같은 동네에 있어 쉽게 찾아 쓸 수 있습니다.
  • 치명적인 단점: 브로드캐스트 스톰(Broadcast Storm)
    • 네트워크에 있는 컴퓨터 한 대가 보내는 ARP 요청(브로드캐스트)만 해도 나머지 59,999대의 컴퓨터에 모두 전달됩니다.
    • 수만 대의 컴퓨터가 끊임없이 보내는 브로드캐스트 패킷 때문에, 스위치와 링크는 이 '소음'을 처리하느라 정신이 없어 정작 중요한 데이터(유니캐스트)를 제대로 전송할 수 없게 됩니다.
    • 결론: 작은 사무실이 아니라면 절대 사용해서는 안 되는 비효율적인 방식입니다.

설계안 2: 가상 LAN (VLAN) 활용 (개선된 방법)

  • 구성: 물리적으로는 설계안 1과 같을 수 있지만, 스위치 설정(소프트웨어)을 통해 논리적으로 네트워크를 분할합니다. (예: IT관 VLAN, 기계관 VLAN, 경영관 VLAN)
  • 장점:
    • 브로드캐스트 문제 해결: 브로드캐스트 패킷이 자신이 속한 VLAN 내부에서만 전파되고 다른 VLAN으로는 넘어가지 않습니다. 불필요한 트래픽이 크게 줄어들어 링크의 효율성이 대폭 향상됩니다.
  • 새로운 문제 발생: VLAN 간 통신 단절
    • 내부 통신을 하는데도 라우터가 필요함<라우터에게 너무많은 부담

설계안 3: 라우터 기반의 서브네팅 (가장 효율적이고 표준적인 방법)

이것이 바로 현대적인 대규모 네트워크의 표준 설계 방식입니다.

라우터 고속,저속

  • 구성:
    1. 각 건물(또는 주요 거점)마다 독립된 이더넷 링크(L2 스위치로 구성된 네트워크)를 만듭니다.
    2. 이 독립된 네트워크들을 **라우터(또는 L3 스위치)**를 이용해 서로 연결하여 학교 전체의 핵심망(Backbone)을 구축합니다.
  • IP 주소 할당 (서브네팅): 이 물리적 구성에 맞춰, 할당받은 큰 IP 덩어리(165.229.0.0/16)를 잘게 쪼개는 서브네팅을 수행합니다.
    • 강의 예시: /16을 256개짜리 덩어리인 /24 단위로 쪼갭니다.
    • IT관 네트워크에는 165.229.1.0/24 블록을 할당합니다.
    • 기계관 네트워크에는 165.229.2.0/24 블록을 할당합니다.
    • 경영관 네트워크에는 165.229.3.0/24 블록을 할당합니다.
  • 궁극적인 효과:
    • 브로드캐스트 제어: 라우터는 브로드캐스트를 차단하므로, 각 건물의 브로드캐스트는 해당 건물 내에서만 머뭅니다. (설계안 2와 동일한 장점)
    • vlan이 라우터랑 비슷한 이유
    • 효율적인 라우팅: IP 주소를 지리적으로(건물별로) 묶었기 때문에, 내부 라우터의 라우팅 테이블이 매우 간결해집니다.
      • "IT관으로 가는 모든 패킷은 A포트로 보내라 (165.229.1.0/24 → Port A)"
      • "기계관으로 가는 모든 패킷은 B포트로 보내라 (165.229.2.0/24 → Port B)"
      • 라우터는 6만 개의 개별 주소가 아닌, 256개의 네트워크 덩어리에 대한 경로만 알면 됩니다. 이 덕분에 저렴한 라우터로도 충분히 내부망을 구성하고 관리할 수 있습니다.

결론: 호스트 관점에서 서브넷 마스크의 역할

이러한 '서브네팅' 환경에서, 내 컴퓨터(호스트)는 서브넷 마스크를 통해 아주 중요한 판단을 내립니다.

"내가 통신하려는 상대방이 나와 같은 건물(로컬 서브넷)에 있는가, 아니면 다른 건물(원격 서브넷)에 있는가?"

  • 로컬 통신 판단 시: 내 IP와 상대방 IP에 나의 서브넷 마스크를 적용했을 때 결과(네트워크 주소)가 같으면, 상대는 나와 같은 건물에 있는 것입니다. 이때는 라우터를 거치지 않고 직접 이더넷 프레임을 보냅니다.
  • 원격 통신 판단 시: 결과가 다르면, 상대는 다른 건물에 있는 것입니다. 이때는 내가 직접 갈 수 없으므로, 우리 건물의 **출입문(디폴트 게이트웨이, 라우터)**에게 패킷을 전달하여 라우팅을 부탁하게 됩니다.

 

 

 

 

 

 

 

 

 

1. 상황 설정: 왜 분할(Fragmentation)이 필요한가?

강의에서 나온 예시를 그대로 가져오겠습니다.

  • 내가 보내려는 큰 IP 패킷이 하나 있습니다. 크기는 4000 바이트입니다. (헤더 20바이트 + 실제 데이터 3980바이트)
  • 그런데 이 패킷이 중간에 이더넷(Ethernet) 링크를 통과해야 합니다.
  • 이더넷이라는 도로는 한 번에 나를 수 있는 짐의 최대 크기(MTU, Maximum Transmission Unit)가 1500 바이트로 정해져 있습니다.

4000 바이트짜리 거대한 짐은 1500 바이트 제한의 문을 통과할 수 없습니다. 따라서 중간에 있는 라우터는 이 짐을 잘게 쪼개서(분할해서) 보내야만 합니다.

2. 분할 과정: '1480'이라는 숫자의 비밀

"1500 바이트까지 되니까, 1500, 1500, 1000 이렇게 세 조각으로 쪼개면 되지 않을까?" 라고 생각하기 쉽습니다. 하지만 여기서 중요한 함정이 있습니다.

쪼개진 조각들도 각각 독립적인 IP 패킷으로 취급됩니다. 즉, 모든 조각은 자기만의 IP 헤더(기본 20바이트)를 가져야 합니다.

따라서 한 조각이 담을 수 있는 **순수 데이터(Payload)**의 최대 크기는 다음과 같이 계산됩니다.

  • (이더넷의 최대 허용 크기) - (새로 붙일 IP 헤더 크기) = 1500 바이트 - 20 바이트 = **1480 바이트**

이것이 바로 1480이라는 숫자의 정체입니다. 이제 원래의 4000바이트 패킷(데이터 3980)을 쪼개보겠습니다.

  1. 첫 번째 조각: 데이터 1480 바이트를 담고, 헤더 20바이트를 붙여 총 1500 바이트짜리 패킷을 만듭니다.
  2. 두 번째 조각: 데이터 1480 바이트를 또 담고, 헤더 20바이트를 붙여 총 1500 바이트짜리 패킷을 만듭니다.
    • 남은 데이터: 3980 - 1480 - 1480 = 1020 바이트
  3. 세 번째 조각: 남은 데이터 1020 바이트를 담고, 헤더 20바이트를 붙여 총 1040 바이트짜리 패킷을 만듭니다.

이렇게 해서 원래의 큰 패킷 하나가 1500, 1500, 1040 바이트짜리 작은 패킷 세 개로 쪼개지는 것입니다.

3. 재조립 과정: 헤더 필드를 이용한 퍼즐 맞추기

이제 목적지에 도착한 컴퓨터는 이 세 조각을 받아서 원래의 4000 바이트짜리 패킷으로 다시 합쳐야 합니다. 이때 사용하는 정보가 바로 IP 헤더의 ID, Flags, Offset 필드입니다. 마치 퍼즐 조각 맞추기와 같습니다.

① Identification (ID): "같은 퍼즐 세트 찾기"

  • 역할: 이 필드는 원본 패킷의 고유한 이름표입니다.
  • 동작: 원래의 4000 바이트짜리 패킷의 ID가 예를 들어 X였다면, 이 패킷이 쪼개져서 만들어진 세 개의 조각 패킷 모두 ID가 X로 동일합니다.
  • 목적: 수신자 컴퓨터는 수많은 패킷들 중에서 ID가 X인 조각들만 모아서 **"아하! 이 조각들은 원래 한 세트였구나!"**라고 인식하고 재조립을 시작합니다.

② Flags (플래그): "이 조각이 마지막인가?"

  • 역할: 3비트로 구성된 깃발(Flag) 정보입니다. 이 중 가장 중요한 것이 MF (More Fragments) 플래그입니다.
  • 동작:
    • MF = 1: "내 뒤에 쪼개진 조각이 더 있습니다." (즉, 마지막 조각이 아님)
    • MF = 0: "이것이 마지막 조각입니다."
  • 예시 적용:
    • 첫 번째 조각 (1500 바이트): MF = 1
    • 두 번째 조각 (1500 바이트): MF = 1
    • 세 번째 조각 (1040 바이트): MF = 0
  • 목적: 수신자는 MF=0인 조각이 도착해야 비로소 **"이제 이 퍼즐(ID=X)의 모든 조각이 다 모였군!"**이라고 판단하고 완전한 재조립을 시도할 수 있습니다.

③ Fragment Offset (분할 오프셋): "퍼즐 조각의 정확한 위치"

  • 역할: 해당 조각에 들어있는 데이터가 원본 데이터의 몇 번째 위치에서부터 시작하는지를 알려주는 값입니다. 조각들이 뒤죽박죽 순서로 도착해도 이 정보만 있으면 제자리를 찾을 수 있습니다.
  • 동작 (8의 배수 규칙): 이 필드는 13비트로 크기가 작아서, 실제 바이트 위치를 그대로 저장하지 않고 8로 나눈 값을 저장합니다.
  • 예시 적용:
    • 첫 번째 조각: 맨 처음(0번 바이트)부터 시작합니다. Offset 값 = 0 / 8 = 0
    • 두 번째 조각: 첫 번째 조각의 데이터(1480 바이트) 바로 뒤에 이어져야 합니다. 시작 위치는 1480번 바이트입니다. Offset 값 = 1480 / 8 = 185
    • 세 번째 조각: 두 번째 조각의 데이터(1480+1480=2960 바이트) 뒤에 이어져야 합니다. 시작 위치는 2960번 바이트입니다. Offset 값 = 2960 / 8 = 370
  • 목적: 수신자는 이 Offset 값을 보고 조각들이 어떤 순서로 도착하든 상관없이, 원래의 위치에 정확하게 데이터를 끼워 넣어 원본을 완벽하게 복원할 수 있습니다. (예: Offset 185를 보면 185 * 8 = 1480 위치에 데이터를 놓음)

 

 

 

 

1. Flags 필드: 왜 1이 '계속'이라는 뜻인가?

사용자님의 생각: 1 = 참(True) = "마지막 조각이 맞다(True)"
실제 설계 의도: 1 = 참(True) = "더 많은 조각이 있다(More Fragments)가 맞다(True)"

결정적인 차이는 **"무엇이 참(True)인가?"**라는 질문에 있습니다.

이 플래그의 공식 명칭은 MF (More Fragments) 플래그입니다. 이 이름 자체가 모든 것을 설명해 줍니다.

  • MF = 1 이란?
    • **More Fragments (더 많은 조각이 있다)**라는 명제가 참(True, 1)이다.
    • 해석: "내 뒤에 조각이 더 있습니다."
  • MF = 0 이란?
    • **More Fragments (더 많은 조각이 있다)**라는 명제가 거짓(False, 0)이다.
    • 해석: "내 뒤에 더 이상 조각이 없습니다. 제가 마지막입니다."

가장 쉬운 비유: 기차 연결

각각의 조각 패킷을 기차의 '객차'라고 상상해 보세요.

  • MF = 1: 객차 뒤에 "다음 칸에 계속" 이라는 푯말이 붙어있는 것과 같습니다. 이 푯말을 보면 아직 기차가 끝나지 않았음을 알 수 있습니다.
  • MF = 0: 객차 뒤에 "이 칸이 마지막입니다" 라는 푯말이 붙어있는 것입니다. 이 푯말을 본 역무원(수신 컴퓨터)은 "아! 이제 기차가 전부 도착했구나!"라고 확신할 수 있습니다.

수신자 입장에서는 마지막 조각이 도착했다는 확실한 신호가 필요하기 때문에, "더 이상 없음(False, 0)"을 마지막의 기준으로 삼는 것이 훨씬 명확하고 논리적인 설계인 것입니다.


2. Fragment Offset: 복잡해 보이는 '8의 배수' 규칙, 왜?

Fragment Offset이 복잡해 보이는 이유는 **'공간을 절약하기 위한 매우 영리한 꼼수'**가 숨어있기 때문입니다.

Step 1: Offset은 왜 필요한가? (문제 인식)

  • 인터넷은 패킷이 보낸 순서대로 도착하는 것을 보장하지 않습니다. 3번째 조각이 1번째 조각보다 먼저 도착할 수 있습니다.
  • 만약 조각에 **'페이지 번호'**가 없다면, 뒤죽박죽 도착한 조각들을 원래 순서대로 맞출 방법이 없습니다.
  • Fragment Offset은 바로 이 '페이지 번호' 역할을 합니다. "이 조각은 원본 데이터의 OOO번째 위치에 끼워 넣으세요" 라는 지시서입니다.

Step 2: 왜 그냥 페이지 번호를 쓰지 않고 복잡하게 8로 나누는가? (기술적 한계)

  • 문제: IP 패킷 데이터는 최대 약 64KB(65,535 바이트)까지 가능합니다. 이 위치를 모두 표현하려면 16비트의 공간이 필요합니다.
  • 현실: 하지만 IP 헤더에서 Fragment Offset을 위해 할당된 공간은 13비트뿐입니다. 3비트가 부족합니다!

Step 3: 어떻게 이 문제를 해결했는가? (영리한 규칙과 꼼수)

프로토콜 설계자들은 부족한 3비트를 해결하기 위해 한 가지 규칙을 만들었습니다.

  • 규칙: "IP 데이터를 쪼갤 때는 아무 데서나 쪼개지 말고, 반드시 8바이트의 배수가 되는 위치에서만 쪼개라."

이 규칙을 만들면 마법 같은 일이 벌어집니다.

  • 모든 조각의 시작 위치(Offset)는 항상 8의 배수(0, 8, 16, 24, 1480, 2960...)가 됩니다.
  • 8의 배수를 이진수로 표현하면, 끝의 3자리는 항상 000이 됩니다. (예: 8 = 1000, 16 = 10000)
  • "어차피 마지막 3비트는 항상 000이니까, 굳이 저장할 필요가 없잖아?" 라는 아이디어를 떠올린 것입니다.

그래서 실제 위치 값을 그대로 저장하는 대신, 실제 위치 값을 8로 나눈 값을 13비트 공간에 저장하기로 했습니다. (8로 나누는 것은 이진수에서 오른쪽 비트를 3개 버리는 것과 같습니다.)

  • 송신측(라우터): 실제 시작 위치가 1480이면, 1480 / 8 = 185를 계산해서 Offset 필드에 185를 기록합니다.
  • 수신측(호스트): Offset 필드에서 185를 읽고, "아, 이건 8로 나눈 값이니까 실제 위치는 185 * 8 = 1480 이겠구나!" 라고 역으로 계산하여 정확한 위치에 조각을 끼워 넣습니다.

이것이 Fragment Offset의 비밀입니다. 저장 공간의 한계를 극복하기 위해 '8의 배수'라는 규칙을 만들고, 그 규칙을 이용해 값을 압축해서 저장하는 매우 효율적인 방법인 것입니다.

 

 

 

 

 

 

 

맞다, 관리자가 할당해준다고 햇던것같은데 ip주소를,

1. "인터페이스(Interface)"의 의미: UI가 아닙니다!

가장 중요한 부분입니다. 여기서 '인터페이스'는 UI(User Interface, 사용자 화면)가 절대 아닙니다.

네트워킹에서 인터페이스는 컴퓨터가 네트워크 세상과 **'접속하는 지점' 또는 '연결 통로'**를 의미하는 **물리적인 장치(하드웨어)**입니다.

가장 쉬운 비유: 공항과 항구

  • 하나의 컴퓨터를 '대한민국'이라는 나라라고 생각해 봅시다.
  • 이 나라가 해외와 교류(통신)하려면 반드시 **공항(인천국제공항)**이나 **항구(부산항)**가 있어야 합니다.
  • 이 **공항과 항구가 바로 '인터페이스'**입니다.

컴퓨터에 있는 구체적인 인터페이스의 예시는 다음과 같습니다.

  • 유선 랜 포트 (Ethernet Port): 컴퓨터 뒤에 랜선을 꽂는 네모난 구멍입니다. 가장 대표적인 유선 인터페이스입니다.
  • Wi-Fi 칩 (무선 랜카드): 사용자님이 생각하신 '와이파이'가 맞습니다. 눈에 보이지 않지만, 컴퓨터 내부에 와이파이 신호를 주고받는 안테나와 칩셋이 들어있습니다. 이것이 무선 인터페이스입니다.
  • 블루투스 칩: 블루투스 네트워크에 접속하기 위한 인터페이스입니다.
  • USB 랜카드: USB 포트에 꽂아 사용하는 외장형 인터페이스입니다.

즉, 인터페이스는 네트워크에 연결하기 위한 물리적인 부품 그 자체입니다.

2. IP 주소 vs MAC 주소: 둘 다 인터페이스에 있습니다! (역할 분담)

이제 "인터페이스에 IP 주소를 할당한다는데, 그건 MAC 주소 아니었나?"라는 질문에 대한 답입니다.

결론부터 말씀드리면, 하나의 인터페이스에는 MAC 주소와 IP 주소가 둘 다 존재합니다. 두 주소는 서로 다른 역할을 하는, 마치 한 사람에게 부여된 **'주민등록번호'**와 **'집 주소'**와 같습니다.

구분 MAC 주소 (주민등록번호) IP 주소 (집 주소)
정의 인터페이스(랜카드)가 공장에서 생산될 때부터 새겨진 고유한 물리적 식별 번호 네트워크에 접속할 때마다 할당받는 논리적인 주소
특징 절대 바뀌지 않음 (하드웨어에 고정) 유동적임 (네트워크에 접속할 때마다 바뀔 수 있음)
비유 태어날 때부터 부여받고 평생 가는 '주민등록번호' 이사를 가면 바뀌는 현재 '거주지 주소'
사용 범위 같은 동네(LAN) 안에서 옆집 컴퓨터를 찾을 때 (예: 같은 공유기에 연결된 기기끼리 통신) 다른 동네(인터넷)로 편지를 보내거나 받을 때

3. 강의 내용 종합: "인터페이스에 IP 주소를 할당한다"

이 말의 의미는 이제 명확해집니다.

  1. 컴퓨터의 **'랜 포트(인터페이스)'**는 공장에서 나올 때부터 고유한 **'MAC 주소(주민등록번호)'**를 가지고 태어납니다.
  2. 사용자가 이 랜 포트에 랜선을 꽂아 학교 네트워크에 접속하는 순간, 학교 네트워크 관리 시스템(DHCP 서버)이 이렇게 말하는 것과 같습니다.
  3. "아, 주민번호(MAC 주소) AA-BB-CC-11-22-33을 가진 분이 우리 네트워크에 들어오셨군요. 지금부터 당신의 **집 주소(IP 주소)**는 165.229.1.100 입니다."

즉, 원래부터 존재하던 물리적 장치(인터페이스)에 논리적인 주소(IP 주소)를 부여(할당)해주는 과정을 의미합니다. 와이파이(Wi-Fi 칩이라는 인터페이스)에 접속하면, 공유기가 그 인터페이스에 IP 주소를 할당해주는 것도 완전히 동일한 원리입니다.

결론적으로, MAC 주소는 인터페이스에 '새겨져' 있는 것이고, IP 주소는 인터페이스에 '할당'되는 것입니다. 둘 다 인터페이스를 기반으로 존재하며, 서로 다른 계층에서 다른 목적으로 사용될 뿐입니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 라우팅 알고리즘의 분류:
    • 링크 스테이트 라우팅 알고리즘 (Link-State Routing Algorithm): 네트워크 전체의 토폴로지(연결 형태) 정보를 모두 알아야 최적 경로를 계산할 수 있는 방식입니다. 대표적인 예로 **다익스트라 알고리즘(Dijkstra Algorithm)**이 있습니다.
    • 디스턴스 벡터 라우팅 알고리즘 (Distance-Vector Routing Algorithm): 전체 네트워크 정보를 몰라도, 자신의 주변 라우터 정보만으로 경로를 계산하는 방식입니다. 주기적으로 인접 라우터와 정보를 교환하며 점차 전체 경로를 완성해 나갑니다. 대표적인 예로 **벨만-포드 알고리즘(Bellman-Ford Algorithm)**이 있습니다.

2. 인터넷 프로토콜 (IP) 버전 4

인터넷의 네트워크 계층에서 가장 핵심적인 프로토콜로, 다음과 같은 중요한 역할을 수행합니다.

  • IP 주소 할당: 각 컴퓨터(인터페이스)에 고유한 32비트 IP 주소를 부여하여 식별할 수 있게 합니다.
  • 패킷 단편화 및 재조립 (Fragmentation and Reassembly): 최대 64,000바이트 크기의 IP 패킷을 전송할 수 있지만, 일부 네트워크 링크는 이보다 작은 크기의 패킷만 처리할 수 있습니다. 이 경우, IP는 큰 패킷을 여러 개의 작은 조각으로 나누어 보내고, 목적지에서 원래대로 재조립하는 기능을 제공합니다.
  • 기타 정보 제공: TTL(Time To Live) 필드를 통해 패킷이 네트워크에 무한정 남아있는 것을 방지하고, ToS(Type of Service) 필드를 통해 서비스 유형에 따른 우선순위를 지정할 수 있습니다.

3. 계층적 라우팅 (Hierarchical Routing)

인터넷과 같이 거대한 네트워크에서는 단일 라우팅 알고리즘을 적용하기 어렵습니다. 인터넷은 약 2억 개 이상의 노드로 구성되어 있어, 모든 경로를 한 번에 계산하는 것은 현실적으로 불가능합니다. 이를 해결하기 위해 전화망에서 사용하던 계층적 라우팅 방식을 도입했습니다.

  • 전화망의 예: 82(국가번호) - 053(지역번호) - 810(국번) - 3295(가입자번호)처럼 번호를 계층적으로 나누어 단계별로 경로를 찾아갑니다.
  • 인터넷의 계층적 라우팅:
    1. AS (자율 시스템, Autonomous System): 초기 인터넷은 2단계 계층(네트워크 부분, 호스트 부분)으로 설계되었으나, 급격한 성장으로 인해 1989년 최상위 계층인 AS 개념이 추가되었습니다. AS는 KT, AT&T와 같이 동일한 관리 정책을 가진 네트워크들의 집합을 의미하며, AS 번호로 식별됩니다.
    2. 라우팅 과정: 먼저 AS 단위로 최적의 경로를 찾은 뒤, 해당 AS 내에서 특정 네트워크를 찾아가고, 마지막으로 그 네트워크 안에서 최종 목적지 호스트를 찾는 방식으로 라우팅이 이루어집니다.

4. IP 주소 할당 정책

IP 주소는 효율적인 라우팅과 관리를 위해 체계적으로 할당됩니다.

  • 관리 기관:
    • IANA (Internet Assigned Numbers Authority): 전 세계 IP 주소를 총괄 관리하는 기관입니다.
    • RIR (Regional Internet Registry): 대륙별 IP 주소 할당을 담당하는 기관입니다. (예: APNIC - 아시아/태평양)
    • LIR (Local Internet Registry): 국가별 IP 주소 할당을 담당하며, 주로 ISP(인터넷 서비스 제공자)나 대규모 기관을 대상으로 합니다. (예: KISA - 한국인터넷진흥원)

5. IP 주소 클래스 (Classful Addressing) - 1993년 이전

초기 인터넷에서는 IP 주소 덩어리의 크기를 미리 정해놓은 '클래스' 개념을 사용했습니다.

  • 클래스 A: 첫 비트가 0으로 시작. 네트워크 부분이 8비트, 호스트 부분이 24비트. 약 1,600만 개의 주소를 포함하는 매우 큰 덩어리.
  • 클래스 B: 첫 두 비트가 10으로 시작. 네트워크 부분이 16비트, 호스트 부분이 16비트. 약 65,000개의 주소를 포함.
  • 클래스 C: 첫 세 비트가 110으로 시작. 네트워크 부분이 24비트, 호스트 부분이 8비트. 256개의 주소를 포함하는 작은 덩어리.

문제점: 클래스 A, B는 너무 커서 주소 낭비가 심했고, 클래스 C는 너무 작아 실용성이 떨어졌습니다. 대부분의 기관이 클래스 B를 원하면서 주소가 비효율적으로 소모되는 문제가 발생했습니다.

 

 

6. 서브네팅과 CIDR (Classless Inter-Domain Routing) - 1993년 이후

클래스 방식의 비효율성을 해결하기 위해 도입된 현재의 주소 할당 방식입니다.

  • 서브네팅 (Subnetting): 할당받은 하나의 큰 IP 주소 블록을 내부적으로 더 작은 네트워크 단위(서브넷)로 나누어 사용하는 기술입니다.
    • 고정 길이 서브넷 마스킹 (FLSM): 모든 서브넷을 동일한 크기로 나누는 방식입니다.
    • 가변 길이 서브넷 마스킹 (VLSM): 부서별 컴퓨터 수와 같이 필요에 따라 서브넷의 크기를 다르게 할당하여 주소를 더 효율적으로 사용하는 방식입니다.
  • CIDR (사이더): 클래스 개념을 완전히 폐기하고, IP 주소 덩어리의 크기를 비트 단위로 자유롭게 지정하는 방식입니다.
    • 표기법: IP 주소/네트워크 비트 수 (예: 165.229.187.0/24) 형식으로 표현합니다. /24는 앞에서부터 24비트가 네트워크 주소 부분임을 의미합니다.
    • 라우팅 방식 변화: CIDR 도입으로 라우터는 더 이상 IP 주소만 보고 네트워크의 크기를 알 수 없게 되었습니다. 따라서 라우팅 테이블에 목적지 네트워크 주소와 함께 서브넷 마스크 정보를 반드시 포함해야 합니다.
    • 최장 접두사 일치 (Longest Prefix Match): 라우팅 테이블에서 목적지 IP 주소와 일치하는 경로가 여러 개 있을 경우, 네트워크 부분이 가장 길게 일치하는(가장 구체적인) 경로를 선택하여 패킷을 전송합니다.

7. IP 주소 고갈 문제와 IPv6

  • 단기 해결책: CIDR, VLSM, NAT(Network Address Translation) 등의 기술을 통해 IP 주소 사용 효율을 높여 고갈 시점을 늦추었습니다.
  • 장기 해결책: 근본적인 문제 해결을 위해 주소 길이를 32비트에서 128비트로 대폭 늘린 IPv6가 개발되었습니다. IPv6는 거의 무한에 가까운 주소 공간을 제공하지만, 기존 IPv4와의 호환성 문제 등으로 인해 아직 전 세계적으로 완전히 전환되지는 않았습니다.

'25년2학기 > 컴퓨터 네트워크' 카테고리의 다른 글

컴넷) (11.19)  (0) 2025.11.19
컴넷) (11.14)  (0) 2025.11.14
컴넷) (11.08)  (0) 2025.11.08
컴넷) (11.05)  (0) 2025.11.05
컴넷) 강의 (11.01)  (0) 2025.11.01