[네트워크] IP를 이용한 통신(OSI 3계층)

임유진·2025년 8월 13일

클라우드/인프라

목록 보기
20/25

OSI 3계층인 네트워크 계층은 여러 LAN이 연결된 인터넷 같은 네트워크를 통해 데이터를 보낼 때 필요한 역할을 함

  • 대표 프로토콜 : IPv4, IPv6, ICMP, IGMP, IPsec, OSPF, BGP
  • 라우팅(Routing) : 어떤 네트워크 안에서 통신 데이터를 보낼 때 최적의 경로를 선택하는 과정

IP 주소

: 네트워크 계층에서 사용하는 주소. 통신 기능이 제공되는 기기들이 서로 통신을 하기 위해 필요한 고유 번호

IPv4 vs IPv6

구분IPv4IPv6
주소 길이32비트128비트
주소 표기10진수, 점(.) 구분16진수, 콜론(:) 구분
주소 개수약 43억 개사실상 무한대(3.4×10³⁸)
예시192.168.0.12001:0db8::1
브로드캐스트지원미지원(멀티캐스트/애니캐스트 사용)
보안선택 사항(IPSec 선택)기본 내장(IPSec 필수)
설정 방식수동, DHCP자동 설정(SLAAC) + DHCPv6
패킷 크기20~60바이트 헤더고정 40바이트 헤더

클래스풀IP vs 클래스리스IP

구분클래스풀(Classful)클래스리스(Classless)
주소 구분 방식A/B/C 등 고정 클래스 구간서브넷 마스크(CIDR)로 유연하게 구분
서브넷 마스크클래스별 기본값 고정 (예: Class C = 255.255.255.0)/n 형식(CIDR)으로 가변 설정 가능
주소 낭비많음 (필요 이상으로 큰 네트워크 할당)적음 (정확한 크기로 할당 가능)
예시Class C → 192.168.1.0/24192.168.1.0/27
사용 여부과거(1980~1993) 사용현재 인터넷 표준

출처 : http://www.ktword.co.kr/test/view/view.php?no=2461

공인IP vs 사설 IP

구분공인 IP(Public IP)사설 IP(Private IP)
사용 범위인터넷 전체에서 유일하게 사용내부 네트워크(가정, 회사 등)에서만 사용
발급 주체ISP(인터넷 서비스 제공자)임의 사용 가능(정해진 범위 내)
IP 범위사설 IP 범위 외 모든 주소A: 10.0.0.0 ~ 10.255.255.255
B: 172.16.0.0 ~ 172.31.255.255
C: 192.168.0.0 ~ 192.168.255.255
인터넷 직접 접속가능불가능(NAT 필요)
보안성외부 노출로 상대적으로 낮음외부 직접 접근 불가로 상대적으로 높음
예시203.0.113.25192.168.0.15

NAT(Network Address Traslation)란?
: 내부 네트워크에서 사용하는 사설 IP 주소를 인터넷에서 사용 가능한 공인 IP 주소로 변환해주는 기술

  • 주로 라우터나 방화벽에서 동작하며, IPv4 주소 부족 문제를 해결하고 내부 네트워크 구조를 외부에 숨기는 보안 효과도 있음
  • 동작 방식
    - 내부 → 외부: 사용자가 인터넷에 접속하면, 라우터가 사설 IP를 공인 IP로 바꿔 전송
    - 외부 → 내부: 응답 패킷이 도착하면, 라우터가 기록해둔 변환 테이블을 참조해 해당 사설 IP로 다시 변환하여 전달
  • 종류
구분Static NAT (정적 NAT)Dynamic NAT (동적 NAT)PAT (Port Address Translation)
개념사설 IP ↔ 공인 IP를 고정 1:1 매핑사설 IP ↔ 공인 IP를 풀에서 동적 1:1 매핑여러 사설 IP ↔ 하나의 공인 IP (포트 번호로 구분)
동작 방식미리 설정된 매핑 사용, 항상 동일한 변환접속 시 빈 공인 IP를 풀에서 할당, 종료 시 반환사설 IP+포트를 공인 IP+다른 포트로 변환
장점외부에서 항상 같은 주소로 접근 가능공인 IP 절약, 유연한 할당공인 IP 1개로 다수 기기 동시 접속 가능
단점공인 IP 낭비 가능성 큼동시에 많은 접속 시 공인 IP 부족 가능포트 충돌 가능성, 일부 서비스 연결 문제
주요 사용 예시웹/메일 서버, VPN 서버 등 공개 서비스기업 내부 네트워크, 제한된 공인 IP 환경가정용 공유기, 소규모·중규모 네트워크
예시192.168.0.10 → 203.0.113.10192.168.0.10 → 203.0.113.11(풀에서 할당)192.168.0.10:1025 → 203.0.113.20:30001

특수한 IP 주소

구분의미특징예시(IPv4, 192.168.1.0/24)
네트워크 ID 주소네트워크 자체를 식별하는 주소호스트 부분이 모두 0, 해당 네트워크의 첫 번째 주소192.168.1.0
브로드캐스트 주소같은 네트워크의 모든 장비에 패킷을 전송하는 주소호스트 부분이 모두 1, 네트워크의 마지막 주소192.168.1.255
게이트웨이 주소다른 네트워크로 나가는 출입구 역할을 하는 라우터/공유기 주소네트워크 내 사용 가능한 IP 중 하나를 할당192.168.1.1 (관례상 첫 번째 주소 사용)
로컬호스트 주소자신의 컴퓨터를 가리키는 특별한 주소네트워크 카드 사용 없이 내부 통신(Loopback)127.0.0.1

IPv4 프로토콜

: IPv4 주소를 작성하는 양식. 큰 데이터를 잘못 보내거나 경로가 잘못 설정되었을 때 대비, IPv4 프로토콜 자체에 문제가 없는지 확인하는 기능 탑재

IPv4 프로토콜 구조

출처 : https://velog.io/@cis07385/%ED%94%8C%EB%A0%88%EC%9D%B4-%EB%8D%B0%EC%9D%B4%ED%84%B0-IPv4-%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C
  • Version
    : IP 프로토콜의 버전(4)
    • 필드가 4bits이므로 16진수 값 하나 작성
  • IHL (Internet Header Length)
    : IPv4 프로토콜의 길이
    • 4bits이므로 실제 프로토콜의 길이를 4로 나눠 16진수 값 하나만 작성
  • TOS (Type of Service. 서비스 유형. 차등화 서비스 필드)
    : 패킷의 QoS(Quality of Service) 향상 및 트래픽 관리를 위해 특정 네트워크 장치에서만 사용됨
  • Total Length
    : 데이터 + 상위 프로토콜 + IPv4 프로토콜 모두 합한 크기
  • IP Flags
    : 3bits
    • 첫 번째 비트 : 사용 X. 항상 0
    • 두 번째 비트 : 1로 설정 시 큰 데이터를 통째로 보냄
    • 세 번째 비트 : 1로 설정 시 큰 데이터를 조금씩 잘라서 보냄
  • Fragment Offset(조각 Offset)
    : 큰 데이터를 잘라서 보낼 때 여러 개로 나뉜 데이터의 순서
    • 정확히 순서 번호를 의미하기 보다는 맨 처음 데이터에서 얼만큼 떨어진 곳에 있는 데이터인지를 의미
    • 해당 값을 8로 나눈 값 작성
  • TTL (Time To Live. 생존 기간)
    : 패킷이 네트워크에서 살아남을 수 있는 시간
    • 한 네트워크에서 다른 네트워크로 넘어갈 때 TTL은 1씩 감소하며 0이 되는 순간 패킷 폐기
    • 기본값 : 윈도우 128, 리눅스 64
  • Protocol
    : IPv4 프로토콜 다음에 역캡슐화해야 하는 프로토콜이 무엇인지 작성
    • 1(ICMP 3계층), 6(TCP 4계층), 17(UDP 4계층)
  • Header Checksum
    : 패킷 전달받은 것에서 IPv4 프로토콜이 문제가 없는지 확인하는 부분
  • IP Option : 필요할 때 추가할 수 있는 정보. 일반적으로 많이 사용되지는 않으며, 정보가 추가될 때마다 4bytes의 내용이 추가됨

패킷 조각화

: 각 네트워크 구간의 물리적 제한을 지키기 위해 네트워크에서 데이터를 전송할 때, 전송 경로의 최대 전송 단위(MTU, Maximum Transmission Unit) 보다 큰 IP 패킷이 있으면, 이를 여러 조각(Fragment) 으로 나누어 보내는 것

  • 동작 방식
    1. 크기 확인 : 송신자 또는 중간 라우터가 패킷 크기와 MTU 비교
    2. 분할(조각화) : MTU에 맞게 잘라 각 조각에 IP 헤더를 붙임
      • 헤더에는 식별자(Identification), 조각 순서(Fragment Offset), 더 있음(MF) 플래그 포함
    3. 전송 : 각 조각은 독립적으로 전송
    4. 수신 측 재조립 : 동일한 식별자와 오프셋 값을 기준으로 원래 패킷으로 복원
  • 특징
    • IPv4: 라우터와 송신자 모두 조각화 가능
    • IPv6: 송신자만 조각화 가능 (라우터 조각화 없음)
    • 단점: 조각 중 하나라도 유실되면 전체 패킷 재전송 필요 → 성능 저하

ICMP(Internet Control Message Protocol) 프로토콜

: IPv4를 이용해 멀리 떨어진 컴퓨터끼리 통신이 잘 되는지 확인하고 안 된다면 원인 파악할 수 있게 도와주는 인터넷 제어 메시지 프로토콜

ICMP 구조

출처 : https://velog.io/@cis07385/%ED%94%8C%EB%A0%88%EC%9D%B4-%EB%8D%B0%EC%9D%B4%ED%84%B0-IPv4-%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C
  • Other message specific information (기타 메세지 관련 정보)
    : ICMP를 사용하는 프로그램마다 다름
    • ex) ping : 식별자와 순서 번호 작성됨

ICMP 요청/응답

  • ICMP는 통신할 대상에 요청 프로토콜을 보내고 응답 프로토콜을 받아 통신을 확인
  • 응답의 유형값으로 통신에 대한 클 내용 구분, 코드값으로 좀 거 자세한 내용 확인
유형내용
8ICMP로 통신 확인 요청
0ICMP로 통신 확인 응답
3목적지에 도착 불가능
일반적으로 내 컴퓨터의 잘못된 IP 주소 설정, 인터넷 연결 X, 잘못도니 목적지 주소 시 발생
11목적지에 도착했지만 응답 시간 초과
일반적으로 방화벽에 차단된 경우 발생. 윈도우에서는 일반적으로 네트워크 방화벽이 ICMP 차단

라우팅 테이블

: IP 주소로 통신하는 컴퓨터나 네트워크 장치들이 모두 가지고 있는 목적지의 IP 주소를 찾아갈 때 어떤 경로로 가야하는지 작성된 표

구성 요소

구성 요소의미예시
목적지 네트워크 (Destination)도달하려는 네트워크 주소 또는 호스트 주소192.168.1.0
서브넷 마스크 (Netmask)네트워크 범위를 정의하는 값255.255.255.0
게이트웨이 (Gateway / Next Hop)다음 경유지 장치(라우터)의 IP 주소192.168.1.1
인터페이스 (Interface)해당 경로로 나가는 네트워크 포트/장치eth0, wlan0
메트릭 (Metric)경로의 우선순위를 나타내는 숫자(낮을수록 우선)10
플래그 (Flags)경로 속성 표시 (U=사용 가능, G=게이트웨이 사용 등)UG
타겟 타입네트워크 대상인지(host) 단일 호스트인지 구분network / host

기본 게이트웨이(Default Gateway)

: 내 네트워크에 없는 목적지 IP로 패킷을 보내야 할 때의 게이트웨이

  • 일반적으로 내 PC가 연결된 공유기나 라우터의 IP
  • 라우팅 테이블에서는 0.0.0.0/0 또는 default 경로로 표시

    예시

    • A 컴퓨터: 192.168.10.10/24, 기본 게이트웨이: 192.168.10.1
    • 라우팅 테이블 예:
    목적지 네트워크      넷마스크        게이트웨이         인터페이스
    192.168.10.0       255.255.255.0  On-link         192.168.10.10
    0.0.0.0            0.0.0.0        192.168.10.1    192.168.10.10
    • 192.168.10.x → 같은 네트워크면 바로 MAC 주소를 찾아서 전송(ARP 사용)

그 외 모든 주소 → 기본 게이트웨이(192.168.10.1)로 먼저 보냄

이때도 먼저 ARP로 게이트웨이 MAC 주소를 알아내야 함

게이트웨이로 간 뒤, 라우터가 다음 경로로 전달


통신 전 과정 예시

장치별 주소 정보

장치IP 주소MAC 주소비고
A 컴퓨터192.168.10.10/24AA:AA:AA:AA:AA:AA기본 게이트웨이: 192.168.10.1
A 공유기(L2 장치)11:11:11:11:11:11스위칭/브리지
라우터 (A쪽)192.168.10.1/2433:33:33:33:33:33A 네트워크 GW
라우터 (C쪽)172.16.0.1/2444:44:44:44:44:44C 네트워크 GW
라우터 (B쪽)192.168.20.1/2455:55:55:55:55:55B 네트워크 GW
C 컴퓨터172.16.0.10/24CC:CC:CC:CC:CC:CC기본 게이트웨이: 172.16.0.1
B 공유기(L2 장치)66:66:66:66:66:66스위칭/브리지
B 컴퓨터192.168.20.20/24BB:BB:BB:BB:BB:BB기본 게이트웨이: 192.168.20.1

통신 과정 (A → B, 예: ping 192.168.20.20

)

  1. 라우팅 결정 (A 컴퓨터)

    • 목적지 IP 192.168.20.20이 자기 서브넷(192.168.10.0/24)에 속하지 않음 확인
    • 라우팅 테이블에서 기본 게이트웨이(192.168.10.1) 로 전송해야 함을 결정
  2. A → 라우터(A쪽) MAC 주소 조회 (ARP)

    • ARP 캐시에 192.168.10.1의 MAC 주소가 없으면 브로드캐스트 요청.
    • 라우터(A쪽)가 응답: 192.168.10.1 → 33:33:33:33:33:33
    • A는 ARP 캐시에 저장.
  3. A → 라우터(A쪽)로 ICMP 요청 전송

    L2: dst MAC = 33:33:33:33:33:33, src MAC = AA:AA:AA:AA:AA:AA
    L3: src IP = 192.168.10.10, dst IP = 192.168.20.20
    L4: ICMP Echo Request
    • A 공유기는 L2 전달만 수행.
  4. 라우터 경로 결정

    • 목적지 192.168.20.20이 라우터 B쪽 인터페이스(192.168.20.1)에 속함을 확인.
    • B 네트워크로 보내기로 결정.
  5. 라우터(B쪽) → B 컴퓨터 MAC 주소 조회 (ARP)

    • ARP 요청: “192.168.20.20의 MAC 주소?”
    • B 컴퓨터 응답: 192.168.20.20 → BB:BB:BB:BB:BB:BB
    • 라우터(B쪽)는 ARP 캐시에 저장.
  6. 라우터(B쪽) → B 컴퓨터로 ICMP 요청 전송

    L2: dst MAC = BB:BB:BB:BB:BB:BB, src MAC = 55:55:55:55:55:55
    L3: src IP = 192.168.10.10, dst IP = 192.168.20.20
    L4: ICMP Echo Request
    • B 공유기는 L2 전달만 수행.
  7. B 컴퓨터 → 라우터(B쪽)로 응답

    • ICMP Echo Reply 생성:
    L2: dst MAC = 55:55:55:55:55:55, src MAC = BB:BB:BB:BB:BB:BB
    L3: src IP = 192.168.20.20, dst IP = 192.168.10.10
    L4: ICMP Echo Reply
  8. 라우터(A쪽) → A 컴퓨터로 응답 전달

    • 라우터는 목적지 192.168.10.10이 A 네트워크에 있으므로, A의 MAC 주소(AA:AA:...) 확인 후 전송:
    L2: dst MAC = AA:AA:AA:AA:AA:AA, src MAC = 33:33:33:33:33:33
    L3: src IP = 192.168.20.20, dst IP = 192.168.10.10
    L4: ICMP Echo Reply
  9. A 컴퓨터 수신

    • A는 ICMP Echo Reply를 받아 ping 응답 시간 출력.
    • 이후 같은 대상과의 통신에서는 ARP 생략 후 바로 프레임 전송.

문제풀이

Q1. OSI 3계층에서 멀리 떨어진 네트워크 대역을 찾아가기 위해 패킷의 경로를 결정하고 전달하는 과정을 무엇이라고 하는가? 라우팅

Q2. 라우팅 정보는 최종 목적지까지 가는 경로를 모두 포함하고 있다. X

Q3. 3계층에서 사용하는 주소는 무엇인가? IP 주소

Q4. IP 주소의 길이는 무엇인가? 32bits. 4bytes

Q5. IP 주소는 어떤 형식으로 표기하는가? 0.0.0.0 꼴. 4개의 16진수 필트

Q6. 192.168.100.100은 어떤 클래스의 IP 주소인가? C클래스

Q7. IP 주소가 192.168.100.100/24일 때 해당 컴퓨터가 연결된 LAN의 네트워크 대역은 무엇인가? 192.168.100.0

Q8. IP 주소가 192.168.100.100/24일 때 해당 컴퓨터가 브로드캐스트로 통신하려면 어떤 주소로 해야 하는가? 192.168.100.255

Q9. IP 주소가 192.168.100.100/24일 때 해당 컴퓨터가 연결된 LAN의 네트워크 대역에서 사용할 수 있는 IP 주소의 범위는 어떻게 되는가? 192.168.100.1 ~ 192.168.100.254

Q10. 나 자신을 뜻하는 로컬 호스트 주소는 무엇인가? 127.0.0.1

Q11. 윈도우의 명령 프롬프트에서 IP 주소를 확인할 수 있는 명령어는 무엇인가? ipconfig /all

Q12. IPv4 프로토콜 길이가 20bytes일 때 IPv4 프로토콜에서 인터넷 헤더 길이(IHL) 필드의 값은 얼마인가? IHL = 헤더 길이(바이트)/4 = 5

Q13. IPv4 프로토콜로 1,300bytes의 데이터를 보낼 때 IPv4 프로토콜에서 총 길이 필드의 값은 얼마인가? IP헤터(20bytes) + 데이터(1,300bytes) = 1320bytes

Q14. IPv4 프로토콜로 MTU를 넘는 데이터를 조각화해서 보낼 때 첫번째 데이터를 캡슐화한 IPv4 프로토콜의 아이디가 1111이었다면, 나머지 데이터를 캡슐화한 IPv4 프로토콜의 아이디는 무엇인가? 1111

Q15. IPv4 프로토콜로 MTU를 넘는 데이터를 조각화해서 보낼 때 첫번째 데이터를 캡슐화한 패킷으로 보낸 데이터가 1,480bytes였다면, 두번째 데이터를 캡슐화한 IPv4 프로토콜의 조각 오프셋(Fragment Offset)은 얼마인가? 1480byest/8(offset은 8byte 단위) = 185

Q16. IPv4 프로토콜로 보낸 패킷이 인터넷에서 영원이 떠돌아다니지 못하게 하기 위한 기능을 무엇이라고 하는가? TTL

Q17. IPv4 프로토콜에서 상위에 어떤 프로토콜이 캡슐화되었는지 알려주는 필드에 들어갈 값으로, 각 프로토콜(ICMP, TCP, UDP)을 의미하는 값은 얼마인가? ICMP : 1, TCP : 6, UDP : 17

Q18. ICMP 프로토콜을 이용해 통신을 확ㅇ니해 보면 유형값으로 통신이 제대로 되었는지 파악할 수 있다. 다음 내뇽에 맞는 유형값은 각각 얼마인가?

  • 통신 확인 요청 : 8
  • 통신 확인 정상 응답 : 0
  • 목적지에 도착하지 않음 : 3
  • 응답 시간 초과 : 11

Q19. 라우팅 테이블이 다음처럼 설정되었을 때 목적지 IP 주소가 8.8.8.8이면 해당 패킷은 어디로 전송되는가? 192.168.30.2

0.0.0.0 -> 192.168.30.2
192.168.10.0/24 -> 192.168.10.2
192.168.20.0/24 -> 192.168.20.2

Q20. MTU가 1500인 네트워크 장치들을 통해서 4,000bytes인 데이터를 보낼 때 몇 개의 데이터로 조각화되고, 마지막 패킷으로 보내는 데이터의 크기는 몇 바이트인가? MTU 1500 - IP 헤더 20 = 1480bytes. 앞 조각들 데이터 길이는 8byte의 배수여야 함. 1480 + 1480 + 1040 = 4000bytes. 즉, 3개 1040bytes

Q21. ping 테스트를 통해 받은 응답 패킷에서 IPv4 프로토콜을 확인했을 때 TTL이 119였다면 목적지 컴퓨터의 운영체제는 무엇으로 예상할 수 있는가? 윈도우


참고

  • Do it! 네트워크 기초 4장
  • Do it! 네트워크 기초 6장
profile
말하는 고구마

0개의 댓글