Post

클라우드프로그래밍 3주차 — 네트워크 기초 (OSI · IP/서브넷 · TCP/UDP)

OSI 7계층, IP·서브넷, 라우팅, TCP/UDP·포트 같은 네트워킹 기초를 정리하고, ping·tracert·nslookup·netstat로 내 PC에서 짚어 본 3주차 기록.

클라우드프로그래밍 3주차 — 네트워크 기초 (OSI · IP/서브넷 · TCP/UDP)

3주차는 클라우드와 서버 통신의 바탕이 되는 네트워킹 기초 이론이 중심이다. 강의는 Cisco Packet Tracer(네트워크 시뮬레이터)로 토폴로지를 구성하는 방식이며, 같은 개념을 PC의 네트워크 명령으로 하나씩 확인해 정리했다.

핵심 개념 정리

OSI 7계층

물리 → 데이터링크 → 네트워크 → 전송 → 세션 → 표현 → 응용. 계층별로 캡슐화되어 통신한다(L3=IP 라우팅, L4=TCP/UDP).

IPv4 주소와 사설/공인

  • IPv4 = 4개 옥텟(8비트씩), 0~255, . 구분. 예) 192.168.100.1.
  • 사설 IP(외부로 라우팅되지 않음): A 10.0.0.0/8, B 172.16.0.0/12, C 192.168.0.0/16.
  • 공인 IP: 인터넷에서 유일. 정적/동적(DHCP: Discover→Offer→Request→Ack).

서브넷 마스크 / CIDR

32비트 마스크로 네트워크 ID + 호스트 ID 를 구분한다. /24 = 255.255.255.0 → 호스트 254개.

라우팅 / TCP vs UDP / 포트

  • 라우팅: 목적지까지 최적 경로를 고르는 것. 라우터 가 라우팅 테이블로 수행한다.
  • TCP: 연결지향·신뢰성(순서/재전송 보장, 대신 느림) — HTTP/SSH. UDP: 비연결·빠름(보장 X) — DNS/DHCP.
  • 포트(IANA): well-known 0~1023(HTTP 80/TCP, DNS 53/UDP), registered 1024~49151, dynamic 49152~65535.

네트워크 명령으로 짚어보기

환경: Windows 11 / PowerShell.

ipconfig — IP / 서브넷 마스크 / 게이트웨이

내 PC에는 유선(Class C)·무선(Class B) 두 사설 IP가 잡혀 있어, 사설 IP 대역을 실물로 확인할 수 있다.

1
2
3
4
5
6
7
8
Ethernet adapter 이더넷 4:
   IPv4 Address. . . . . . . . . . . : 192.168.0.10      ← 사설 C대역
   Subnet Mask . . . . . . . . . . . : 255.255.255.0     ← /24
   Default Gateway . . . . . . . . . : 192.168.0.1
Wireless LAN adapter Wi-Fi:
   IPv4 Address. . . . . . . . . . . : 172.30.1.23       ← 사설 B대역(172.16~31)
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : 172.30.1.254

ping — ICMP 왕복 (도달성/RTT)

1
2
3
4
$ ping -n 4 8.8.8.8
Reply from 8.8.8.8: bytes=32 time=33ms TTL=116
Reply from 8.8.8.8: bytes=32 time=32ms TTL=116
Ping statistics: Sent=4, Received=4, Lost=0 (0% loss), Average=32ms

TTL=116 은 경유 라우터를 거치며 깎인 값으로, 다음 tracert 와 연결되는 지점이다.

tracert — 라우팅 경로 추적

게이트웨이(172.30.1.254) → KT/Kornet 백본(61.78.x, 112.174.x) → Google(72.14.x, 209.85.x)으로 이어지는 실제 경로가 보인다. 홉마다 RTT가 늘어난다.

1
2
3
4
5
6
$ tracert -d -h 8 8.8.8.8
  1    <1 ms  172.30.1.254          (기본 게이트웨이)
  3     5 ms  61.78.45.14           (ISP)
  5     7 ms  112.174.8.118         (Kornet 백본)
  7    31 ms  72.14.202.136         (Google 망 진입)
  8    33 ms  209.85.245.105

nslookup — DNS 질의 (UDP 53)

도메인명 → IP 변환을 DNS 서버(kornet 168.126.63.1)에 질의한다.

1
2
3
4
5
$ nslookup www.hanyang.ac.kr
Server:  kns.kornet.net
Address: 168.126.63.1
Name:    www.hanyang.ac.kr
Address: 166.104.177.20

netstat — 리스닝 포트

well-known(135/445)과 dynamic(49664…) 포트가 함께 잡혀, 포트 번호 분류를 확인할 수 있다.

1
2
3
4
$ netstat -an -p TCP | findstr LISTENING
  TCP  0.0.0.0:135    LISTENING   (well-known)
  TCP  0.0.0.0:445    LISTENING   (well-known, SMB)
  TCP  0.0.0.0:49664  LISTENING   (dynamic 49152~65535)

서브넷/2진수 계산 (python ipaddress)

강의의 옥텟→2진수 예시와 서브넷 계산을 코드로 검증했고, 결과가 일치한다.

1
2
3
4
5
6
7
8
9
192.168.100.1 = 11000000.10101000.01100100.00000001

[192.168.0.0/24]
 네트워크 주소 : 192.168.0.0
 브로드캐스트  : 192.168.0.255
 서브넷 마스크 : 255.255.255.0 (/24)
 사용가능 호스트: 254 개 (192.168.0.1 ~ 192.168.0.254)

[사설 IP 판정]  192.168.0.10 → 사설 C   172.30.1.23 → 사설 B   8.8.8.8 → 공인

Packet Tracer와의 연결

강의에서는 Packet Tracer로 라우터·스위치·PC를 배치하고 IP/서브넷을 설정해 ping으로 연결을 확인한다. 시뮬레이터의 토폴로지가 결국 위에서 본 실제 호스트의 ping/tracert/netstat 결과와 1:1로 대응한다고 생각하면 이해가 한결 쉽다.

정리

tracert 결과에는 OSI L3 라우팅·게이트웨이·ISP 백본·목적지 AS까지의 경로가 그대로 나타난다. “라우팅 = 최적 경로 선택”이라는 개념이 실제 홉 목록으로 확인되는 부분이다. 내 PC의 IP가 192.168.x(C)·172.30.x(B) 사설 대역이라 사설/공인 구분과 NAT(게이트웨이 너머 공인망) 개념도 함께 짚을 수 있었다. OSI·IP·TCP/UDP·포트는 이후 컨테이너 포트 매핑과 서비스 통신의 바탕이 되는 내용이다.

This post is licensed under CC BY 4.0 by the author.