[혼공네] 03-1. LAN을 넘어서는 네트워크 계층

2026. 9. 26. 05:04·네트워크

네트워크 계층에서는 IP 주소를 이용해 송수신지 대상을 지정하고, 다른 네트워크에 이르는 경로를 결정하는 라우팅을 통해 다른 네트워크와 통신한다.

  • LAN에서 다루는 MAC 주소만으로는 부족하다.
  • 패킷이 지구 반대편까지 날아가다.
  • 다양한 경로가 있는데 패킷이 어떤 경로로 가야하는지 알려줘야 한다.
  • 최적의 경로를 탐색하는 것이 라우터
  • MAC 주소를 알아야 통신할 수 있는데 알 수가 없고, 미리 적어놓아야 한다.
  • 이러한 이유로 MAC 주소만으로는 통신이 불가능하다.
  • IP 주소 → 논리 주소

 

데이터 링크 계층의 한계

  • 물리 계층과 데이터 링크 계층만으로는 LAN을 넘어서 통신하기 어려운 두 가지 이유
  1. 물리 계층과 데이터 링크 계층만으로는 다른 네트워크까지의 도달 경로를 파악하기 어려움
    • 라우팅(routing) - 패킷이 이동할 최적의 경로를 결정하는 것
    • 라우터(router) - 라우팅을 수행하는 대표적인 장비
  2. MAC 주소만으로는 모든 네트워크에 속한 호스트의 위치를 특정하기 어려움
    • 네트워크에서 MAC 주소와 IP 주소를 함께 사용하고, 기본적으로 IP 주소를 우선으로 활용

 

인터넷 프로토콜 = IP

  • IP 버전 4(이하 IPv4)와 IP 버전 6(이하 IPv6)
  • IPv4를 대체로 사용, IPv6으로 바꾸려면 전세계적으로 동시에 장비를 바꿔야한다.

 

IP 주소 형태

  • IP 주소는 4바이트(32비트)로 주소를 표현
  • 숫자당 8비트로 표현되기에 0~255 범위 안에 있는 네 개의 10진수로 표기
  • 각 10진수는 점(.)으로 구분되며, 점으로 구분된 8비트(0~255 범위의 10진수)를 옥텟(octet)

 

IP의 기능

  • IP 주소 지정(IP addressing)
    • IP 주소를 바탕으로 송수신 대상을 지정
    • IP 주소 지정 → IP 주소를 바탕으로 송수신 대상을 지정
  • IP 단편화(IP fragmentation)
    • 전송하고자 하는 패킷의 크기가 MTU라는 최대 전송 단위보다 클 경우, 이를 MTU 크기 이하의
    • 복수의 패킷으로 나누는 것
    • MTU(Maximum Transmission Unit)
      • 한 번에 전송 가능한 IP 패킷의 최대 크기
      • IP 패킷의 헤더도 MTU 크기에 포함
      • 일반적인 MTU 크기는 1500바이트, MTU 크기 이하로 나누어진 패킷은 수신지에 도착하면 다시 재조합

 

IPv4

  • IPv4 패킷은 프레임의 페이로드로 데이터 필드에 명시
  • IPv4 패킷의 핵심 필드
    1. 식별자
    2. 플래그
    3. 단편화 오프셋
    4. TTL
    5. 프로토콜
    6. 송신지 IP 주소
    7. 수신지 IP 주소
  • 식별자
    • 식별자(identifier)는 패킷에 할당된 번호
    • 메시지 전송 과정에서 잘게 쪼개져서 수신지에 도착한 IPv4 패킷들이 어떤 메시지에서부터 쪼개졌는지를 인식하기 위해서 식별자를 사용
  • IP 플래그
    • 플래그(flag)는 총 세 개의 비트로 구성
      • 첫 번째 비트는 항상 0으로 예약된 비트로 현재 사용되지 않음
      • DF 비트(Don’t Fragment) - IP 단편화를 수행하지 말라는 표시
        • 만일 이 비트가 1로 설정되어 있다면 IP 단편화를 수행하지 않고,
        • 0으로 설정되어 있다면 IP 단편화가 가능
        • 지정을 해도 결국 인터넷에 쪼개서 나감, 그래서 잘 안씀
      • MF 비트(More Fragment) - 단편화된 패킷이 더 있는지를 나타냄
        • 0이라면 이 패킷이 마지막 패킷
        • 1이라면 쪼개진 패킷이 아직 더 있다는 것을 의미
      • 예) 0 1 1 (X, D, M)
  • 단편화 오프셋
    • 단편화 오프셋(fragment offset)은 패킷이 단편화되기 전에 패킷의 초기 데이터에서 몇 번째로 떨어진
    • 패킷인지를 나타냄
    • 단편화되어 전송되는 패킷들은 수신지에 순서대로 도착하지 않을 수 있음
      • 따라서 수신지가 패킷들을 순서대로 재조합하려면 단편화된 패킷이 초기 데이터에서 몇 번째 데이터에 해당하는 패킷인지 알아야 함
    • 패킷이 분할된 순서(어떤 것부터 붙여라, 받는 쪽에서 순서를 보장하지 않기 때문이다.)
      • Offset - 어느 기준점을 기준으로 얼만큼 떨어져있냐?
        • 첫번째 Offset - 0, 두번째 Offset 1500
  • TTL
    • TTL(Time To Live) - 패킷의 수명
    • 멀리 떨어진 호스트끼리 통신할 때 패킷은 여러 라우터를 거쳐 이동할 수 있음
      • 패킷이 하나의 라우터를 거칠 때마다 TTL이 1씩 감소하며, TTL 값이 0으로 떨어진 패킷은 폐기
    • 홉(hop) - 패킷이 호스트 또는 라우터에 한 번 전달되는 것
      • 즉, TTL 필드의 값은 홉마다 1씩 감소
    • TTL 필드의 존재 이유는 무의미한 패킷이 네트워크상에 지속적으로 남아있는 것을 방지
    • OS마다 TTL값이 다르다. TTL값을 통해서 OS를 판단하기도 한다.
  • 프로토콜
    • IP 패킷의 프로토콜은 상위 계층의 프로토콜이 무엇인지를 나타내는 필드
    • 예) 전송 계층의 대표적인 프로토콜인 TCP는 6번, UDP는 17번
    • 예) TCP, UDP, ICMP(대표적으로 Ping), IGMP
  • 송신지 IP 주소와 수신지 IP 주소
    • 송신지 IP 주소(Source IP Address)와 수신지 IP 주소(Destination IP Address)에서는 이름 그대로 송수신지의 IPv4 주소를 알 수 있음
  • Total Length = 데이터 + IP 헤더의 크기
  • IHL
  • TOS 사용 안함 (DSCP) → 보통은 8개의 칸이 비워져있음

 

IPv6

  • 이론적으로 할당 가능한 IPv4 주소는 총 232개로 약 43억 개
    • 전 세계 인구가 하나씩 IP 주소를 가지고 있어도 부족한 숫자
    • 주변의 IP 주소를 가질 수 있는 장치가 스마트폰, 데스크톱, 노트북, 냉장고, TV 등 여러 개
    • 결국 약 43억 개라는 IPv4의 주소의 총량은 쉽게 고갈
  • IPv6은 16바이트(128비트)로 주소를 표현할 수 있고, 콜론(:으로 구분된 8개 그룹의 16진수로 표기
    • 할당 가능한 IPv6 주소는 이론적으로 2^128개로 사실상 무한에 가까운 개수를 할당
  • IPv6 패킷의 핵심 필드
    1. 다음 헤더
    2. 홉 제한
    3. 송신지 IP 주소
    4. 수신지 IP 주소
  • 홉 제한(hop limit)
    • IPv4 패킷의 TTL 필드와 비슷하게 패킷의 수명을 나타내는 필드
  • 송신지 IP 주소와 수신지 IP 주소
    • 송신지 주소(source address)와 수신지 주소(destination address)를 통해 IPv6 주소 지정이 가능

 

ARP

  • ARP(Address Resolution Protocol)는 IP 주소를 통해 MAC 주소를 알아내는 프로토콜
    • 동일 네트워크 내에 있는 송수신 대상의 IP 주소를 통해 MAC 주소를 알아낼 수 있음
  • 호스트 A와 B가 모두 동일한 네트워크에 속한 상태에서 A가 B에게 패킷을 보내고 싶다고 가정
    • A는 B의 IP 주소(10.0.0.2)를 알고 있지만, MAC 주소는 모르는 상황에서 ARP가 동작
      1. ARP 요청
      2. ARP 응답
      3. ARP 테이블 갱신
  1. ARP 요청
    • 우선 A는 네트워크 내의 모든 호스트에게 브로드캐스트 메시지를 보냄
    • 이 메시지는 ARP 요청(ARP Request)이라는 ARP 패킷
    • ARP 요청은 ‘저 10.0.0.2와 통신하고 싶은데, 이 분의 MAC 주소가 무엇인가?’
  2. ARP 응답
    • 네트워크 내의 모든 호스트가 ARP 요청 메시지를 수신하지만, B를 제외한 나머지 호스트는 자신의 IP 주소가 아니므로 이를 무시
    • B는 자신의 MAC 주소를 담은 메시지를 A에게 전송
      • 이 유니캐스트 메시지는 ARP 응답(ARP Reply)이라는 ARP 패킷
      • B의 MAC 주소가 포함된 메시지를 수신한 A는 B의 MAC 주소를 알게 됨
  3. ARP 테이블 갱신
    • ARP를 활용할 수 있는 모든 호스트는 ARP 테이블(ARP Table)이라는 정보를 유지합
    • ARP 테이블은 IP 주소와 그에 맞는 MAC 주소 테이블을 대응하는 표
      • A는 ①과 ② 단계를 통해 B의 MAC 주소를 알게 되면 다음 그림처럼 호스트 B의 IP 주소와 MAC 주소의 연관 관계를 ARP 테이블에 추가
      • 이 ARP 테이블은 캐시(임시저장)이 되고 일정 시간이 지나면 삭제된다. 임의로 삭제할 수도 있다.
        • 메모리 자원 아끼기 위해 삭제 → CDN(확장된 개념)
        • 스위치도 MAC 주소를 캐시했다.
      • 여기까지 이루어지면 앞으로 A는 B와 통신할 때 굳이 브로드캐스트로 ARP 요청을 보낼 필요가 없어짐
    • 이제 알게 되어서 ping이나 메세지를 보낼 수 있다.
    • 각각의 컴퓨터는 ARP 테이블을 가지고 있다.
    • ARP 테이블 확인
      • 윈도우 명령 프롬프트(CMD)나 맥OS 터미널에서 arp -a를 입력

 

통신하고자 하는 호스트 A와 B가 서로 다른 네트워크에 속해 있을 경우

  1. 만일 호스트 A가 라우터 A의 MAC 주소를 모른다면 ARP 요청
    1. ARP 응답 과정을 통해 라우터 A의 MAC 주소를 얻어 와서 이를 향해 패킷을 전송
  2. 호스트 A에서 패킷을 전달받은 라우터 A는 패킷을 라우터 B로 전달
    • 만일 라우터 A가 라우터 B의 MAC 주소를 모른다면 한 번 더 ARP 요청 - ARP 응답 과정을 거쳐 라우터 B의 MAC 주소를 획득
  3. 라우터 B는 호스트 B에게 패킷을 전달
    • 만일 라우터 B가 호스트 B의 MAC 주소를 모른다면 똑같이 ARP 요청 - ARP 응답 과정을 통해 B의 MAC 주소를 얻어와야만 비로소 호스트 B에게 패킷을 전달

 

  • 디폴트게이트웨이
    • 밖으로 나가는 첫 관문
    • 같은 네트워크에 속해있을 때 ARP를 할 수 있다면 다른 IP주소에 대해서는 어떻게 가능한가?
    • 모르는 IP 주소를 라우터에게 보낸다. 라우터의 MAC주소를 적는다.
    • 자신의 네트워크 대역이 아니라면 라우터를 통해 밖으로 나간다.
    • 해당 IP 주소를 아는 라우터가 나오면 그 라우터를 통해 받아온 값이 돌아온다.
  • IP 단편화는 되도록 하지 않는 것이 좋음
    • 불필요한 트래픽 증가와 대역폭 낭비
    • 쪼개진 IP 패킷들을 하나로 합치는 과정에서 발생하는 부하도 성능 저하 요소
  • IP 단편화 피하기
    • IP 패킷을 주고받는 모든 호스트의 ‘처리 가능한 MTU 크기’를 고려
    • ‘IP 단편화 없이 주고 받을 수 있는 최대 크기’만큼만 전송
    • 경로 MTU(Path MTU) - 단편화를 피하는 방법은 경로 MTU만큼의 데이터를 전송
    • 경로 MTU 발견(Path MTU discovery) - 경로 MTU를 구하고 해당 크기만큼만 송수신하여 IP 단편화를 회피
  • ARP 패킷
    • 송신자의 MAC 주소
    • 수신자의 MAC 주소
    • 헤더는 총 28바이트

 

  • RARP - MAC 주소로 IP 주소를 알아온다.(리버스)
    • 보통 예전에 사용한 기술
    • 같은 네트워크 내의 컴퓨터의 MAC 주소를 아는데, IP 주소를 모를 때 사용했다.
    • DHCP의 옛날버전, 예전에는 DHCP가 없어서 자신의 IP 주소가 뭔지 몰랐다.
  • 명령어
    • 스위치
      • enable
      • show mac address-table
      • clear mac address-table dynamic
    • PC
      • arp -d
      • arp -a

 

ICMP

  • 네트워크 상태를 알리거나 오류 메세지를 전달하는 프로토콜
  • ping이 대표적인 ICMP
  • 제어 메세지를 주고 받아 통신이 잘 되었는지 확인
  • Control Message
    • 3 - Destination unreachable(목적지 도달할 수 없음, 세부 메세지로 누가 원인인지 파악 가능)
    • 11 - TTL Exceed(TTL 초과)
    • 8 - ping 요청
    • 0 - ping 응답
  • 대표 명령어 - ping, traceroute, tracert
  • tracecert : 해당 주소를 찾기 위해 핑을 보내고 라우터에 대한 정보를 받음
  • 이미 알고있는 테이블, 디폴트 게이트웨이 → 192.168.10.1

'네트워크' 카테고리의 다른 글

[혼공네] 04. 전송 계층  (0) 2026.09.26
[혼공네] 03-2. IP 주소  (0) 2026.09.26
[혼공네] 02-4. 스위치(Switch)  (0) 2026.09.21
[혼공네] 02-1. 이더넷(Ethernet)  (0) 2026.09.21
[혼공네] 01-2. 네트워크 거시적으로 살펴보기  (0) 2026.09.20
'네트워크' 카테고리의 다른 글
  • [혼공네] 04. 전송 계층
  • [혼공네] 03-2. IP 주소
  • [혼공네] 02-4. 스위치(Switch)
  • [혼공네] 02-1. 이더넷(Ethernet)
youjeong_choi
youjeong_choi
  • youjeong_choi
    youjeong
    youjeong_choi
  • 전체
    오늘
    어제
    • 분류 전체보기 (119) N
      • HTML, CSS (7)
      • JavaScript (19)
        • 모던 자바스크립트 딥다이브 (4)
      • ReactJS (17)
      • TIL (17)
      • WIL (17)
      • 알고리즘 (17)
      • 네트워크 (13) N
      • Vue (4)
      • 재료 과학 (2)
      • 정보보안 (3) N
      • 리눅스 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    항해99
    파이썬
    토스뱅크사이버보안엔지니어부트캠프
    네트워크
    자바스크립트
    항해99주특기
    혼공스
    리눅스기초
    모던자바스크립트딥다이브
    항해99리액트
    멀티캠퍼스부트캠프
    항해99 주특기
    선언적 함수
    리액트
    항해99주특기리액트
    알고리즘
    익명 함수
    정보보안
    알고리즘 문제
    부트캠프
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
youjeong_choi
[혼공네] 03-1. LAN을 넘어서는 네트워크 계층
상단으로

티스토리툴바