네트워크 기초 정리 — Day 6 ~ Day 10


Day 6 — 네트워크 기초와 데이터 링크 계층

1. 인터넷과 웹의 차이

  • 네트워크(Network): 둘 이상의 장치가 데이터를 주고받도록 연결된 구조
  • 인터넷(Internet): TCP/IP를 기반으로 전 세계의 네트워크를 연결한 인프라
  • 웹(WWW): 인터넷 위에서 HTTP 또는 HTTPS로 문서와 자원을 주고받는 서비스

즉, 인터넷은 통신 기반 시설이고 웹은 그 위에서 동작하는 서비스 중 하나다.

네트워크를 구성하는 요소는 다음과 같다.

  • 노드(Node): 컴퓨터, 스마트폰, 서버, 스위치 등 네트워크에 참여하는 장치
  • 링크(Link): 노드를 연결하는 유선 또는 무선 경로
  • 메시지(Message): 노드 사이에서 주고받는 데이터
  • 프로토콜(Protocol): 데이터의 형식, 의미, 순서를 정한 통신 규칙

데이터를 생성하거나 소비하는 종단 장치를 호스트(Host)라고 한다. 서비스를 제공하면 서버, 요청하면 클라이언트가 되며 하나의 호스트가 상황에 따라 두 역할을 모두 수행할 수도 있다.

2. 네트워크 계층과 캡슐화

송신 측에서는 데이터가 상위 계층에서 하위 계층으로 내려가며 각 계층의 헤더가 추가된다. 이를 캡슐화라고 한다. 수신 측에서는 헤더를 제거하며 데이터를 상위 계층으로 올리는 역캡슐화가 이루어진다.

HTTP 데이터
  ↓ TCP 헤더 추가
TCP 세그먼트
  ↓ IP 헤더 추가
IP 패킷
  ↓ Ethernet 헤더·트레일러 추가
Ethernet 프레임
  ↓ 신호로 변환
비트
계층핵심 역할주요 식별 정보PDU
응용사용자에게 네트워크 서비스 제공URL, HTTP 메서드, 헤더데이터·메시지
전송프로세스 간 통신과 신뢰성 제어포트 번호TCP 세그먼트·UDP 데이터그램
네트워크다른 네트워크까지 경로 선택IP 주소패킷
데이터 링크같은 링크 안에서 데이터 전달MAC 주소프레임
물리전기·빛·무선 신호 전송-비트

3. NIC와 MAC 주소

NIC(Network Interface Card)는 호스트를 네트워크 매체에 연결하는 인터페이스다.

Ethernet 환경에서는 일반적으로 48비트 MAC 주소를 사용한다. 전통적인 전역 유니캐스트 MAC 주소는 앞 24비트가 제조사를 나타내는 OUI, 뒤 24비트가 제조사가 부여한 식별 영역이다.

다만 MAC 주소 무작위화와 로컬 관리 주소가 사용될 수 있으므로, MAC 주소를 절대 변하지 않는 장치의 신분증으로 보면 안 된다.

4. 스위치의 동작

L2 스위치는 다음 과정으로 Ethernet 프레임을 전달한다.

  1. 프레임의 출발지 MAC과 수신 포트를 MAC 주소 테이블에 학습한다.
  2. 목적지 MAC이 테이블에 있으면 해당 포트로만 전달한다.
  3. 목적지 MAC을 모르면 수신 포트를 제외한 같은 VLAN의 포트로 플러딩한다.
  4. 오래 사용되지 않은 동적 항목은 에이징되어 삭제된다.

스위치는 출발지 주소로 학습하고, 목적지 주소로 전달 위치를 결정한다.

5. 허브와 CSMA/CD

구분허브L2 스위치
동작 계층물리 계층데이터 링크 계층
전달 기준신호를 다른 포트에 반복 전송MAC 주소 테이블
충돌 도메인전체가 공유포트마다 분리
일반적인 통신 방식반이중전이중

CSMA/CD는 공유 매체를 사용하는 반이중 Ethernet에서 충돌을 감지하고 재전송하는 방식이다. 현대의 스위치 기반 전이중 Ethernet에서는 포트마다 충돌 도메인이 분리되므로 일반적으로 사용되지 않는다.

6. Broadcast Storm과 STP

Ethernet 프레임에는 IP의 TTL처럼 순환 횟수를 제한하는 필드가 없다. L2 루프가 발생하면 브로드캐스트와 일부 플러딩 프레임이 계속 복제되어 링크와 장비 자원을 소진하는 Broadcast Storm으로 이어질 수 있다.

STP(Spanning Tree Protocol)는 물리적인 중복 링크는 유지하되 일부 경로를 논리적으로 차단해 루프가 없는 구조를 만든다. 현재 경로에 장애가 생기면 차단했던 대체 경로를 활성화할 수 있다.

Day 6 한 줄 정리

네트워크 계층은 각각 다른 역할과 주소를 사용하며, 스위치는 출발지 MAC을 학습하고 목적지 MAC을 기준으로 같은 LAN 안에서 프레임을 전달한다.


Day 7 — Ethernet, VLAN, IP와 ARP

1. Ethernet 프레임과 MTU

일반적인 Ethernet II 프레임은 다음 정보를 포함한다.

  • 목적지 MAC: 6바이트
  • 출발지 MAC: 6바이트
  • EtherType: 2바이트
  • 데이터: 일반적으로 46~1500바이트
  • FCS: 4바이트, 전송 오류 검출

일반적인 최소 Ethernet 프레임 크기는 헤더 14바이트, 최소 데이터 46바이트, FCS 4바이트를 합친 64바이트다.

표준 Ethernet의 MTU 1500바이트는 한 프레임이 운반하는 상위 계층 페이로드의 일반적인 최댓값이다. 애플리케이션 데이터 전체가 1500바이트로 제한된다는 뜻은 아니다. 큰 데이터는 여러 세그먼트와 패킷, 프레임으로 나뉘어 전달된다.

Jumbo Frame은 일반적인 1500바이트보다 큰 MTU를 사용하는 방식이며, 흔히 약 9000바이트를 사용한다. 통신 경로에 있는 장비들이 해당 크기를 모두 지원해야 한다.

2. VLAN과 Trunk

VLAN은 하나의 물리적 스위치를 여러 개의 논리적인 LAN으로 나누는 기술이다.

  • 브로드캐스트 도메인을 분리할 수 있다.
  • 부서나 서비스별로 네트워크를 논리적으로 격리할 수 있다.
  • 별도의 물리 장비를 추가하지 않고 네트워크를 구분할 수 있다.

여러 스위치에 걸쳐 VLAN을 확장할 때는 Trunk Port를 사용한다. IEEE 802.1Q는 Ethernet 프레임에 4바이트 VLAN 태그를 추가해 프레임이 속한 VLAN을 구분한다.

3. 네트워크 계층과 Routing

데이터 링크 계층은 같은 LAN 안에서 MAC 주소를 이용해 프레임을 전달한다. 다른 네트워크로 패킷을 보내려면 IP 주소와 Routing이 필요하다.

  • IP 주소 지정: 출발지와 목적지 호스트를 논리적으로 식별
  • Routing: 목적지 네트워크까지 패킷이 이동할 경로 결정
  • Router: 라우팅 테이블을 참고해 패킷을 다음 네트워크로 전달

4. IPv4 헤더의 주요 필드

  • Identification: 단편화된 조각이 어느 원본 패킷에 속하는지 식별
  • Flags: 단편화 허용 여부와 추가 조각의 존재 여부 표시
  • Fragment Offset: 원본 데이터에서 현재 조각의 위치 표시
  • TTL(Time To Live): 라우터를 지날 때마다 1씩 감소하며 0이 되면 패킷 폐기
  • Protocol: 상위 계층 프로토콜이 TCP인지 UDP인지 등을 표시
  • Source/Destination Address: 출발지와 목적지 IPv4 주소

TTL은 패킷이 라우팅 루프 안에서 영원히 순환하는 것을 방지한다.

5. ARP

ARP는 같은 브로드캐스트 도메인에서 IPv4 주소에 대응하는 MAC 주소를 알아내는 프로토콜이다.

  • 목적지가 같은 서브넷이면 목적지 호스트의 MAC 주소를 조회한다.
  • 목적지가 다른 서브넷이면 목적지 자체가 아니라 기본 게이트웨이의 MAC 주소를 조회한다.
  • ARP Request는 브로드캐스트되고, 결과는 ARP 캐시에 일정 시간 저장된다.

ARP에는 응답의 진위를 검증하는 기능이 없어 공격자가 거짓 IP-MAC 대응 관계를 주입하는 ARP Spoofing이 가능하다.

Day 7 한 줄 정리

VLAN은 하나의 스위치를 여러 논리적 LAN으로 나누고, IP와 라우터는 서로 다른 네트워크 사이에서 패킷이 이동할 길을 만든다.


Day 8 — Subnetting, DHCP, Routing과 IPsec

1. Classful과 Classless 주소 체계

과거의 Classful 주소 체계는 IPv4 주소를 A, B, C 등의 고정된 크기로 나눴다. 하지만 주소 낭비가 크고 유연성이 낮아 현재는 프리픽스 길이로 네트워크 크기를 표현하는 CIDR 기반 Classless 주소 체계가 일반적이다.

클래스첫 번째 옥텟 범위기본 프리픽스
A1~126/8
B128~191/16
C192~223/24
D224~239Multicast
E240~255실험·예약

127.0.0.0/8은 Loopback 용도로 예약되어 있다.

2. Subnet Mask와 CIDR

서브넷 마스크는 IPv4 주소에서 네트워크 부분과 호스트 부분을 구분한다.

  • 비트가 1인 부분: 네트워크 영역
  • 비트가 0인 부분: 호스트 영역
  • IP 주소와 서브넷 마스크를 AND 연산하면 네트워크 주소를 구할 수 있다.

CIDR은 서브넷 마스크에서 1인 비트의 수를 /24와 같은 프리픽스 길이로 표현한다.

예를 들어 192.168.100.150/27의 경우:

  • 서브넷 마스크: 255.255.255.224
  • 전체 주소 수: 2^(32-27) = 32
  • 네트워크 주소: 192.168.100.128
  • 브로드캐스트 주소: 192.168.100.159
  • 사용 가능한 호스트 범위: 192.168.100.129~158

3. FLSM과 VLSM

  • FLSM: 모든 서브넷을 동일한 크기로 분할
  • VLSM: 필요한 호스트 수에 맞춰 서로 다른 크기로 분할

192.168.1.0/24를 60대, 30대, 10대의 장비가 사용할 네트워크로 나누면 큰 네트워크부터 배정할 수 있다.

요구 호스트할당 대역사용 가능한 주소
60대192.168.1.0/26192.168.1.1~62
30대192.168.1.64/27192.168.1.65~94
10대192.168.1.96/28192.168.1.97~110

4. 공인 IP, 사설 IP와 NAT

대표적인 사설 IPv4 대역은 다음과 같다.

  • 10.0.0.0/8
  • 172.16.0.0/12
  • 192.168.0.0/16

사설 IP는 인터넷에서 직접 라우팅되지 않는다. NAT는 네트워크 경계에서 IP 주소를 변환한다.

NAPT(PAT)는 IP와 포트를 함께 변환해 여러 내부 호스트가 하나의 공인 IP를 공유할 수 있게 한다.

NAT는 주소 변환 기술이지 방화벽 그 자체는 아니다. 외부 접근 허용 여부는 별도의 방화벽 정책으로 통제해야 한다.

5. DHCP와 DORA

DHCP는 호스트에 IP 주소와 네트워크 설정을 동적으로 임대한다.

  1. Discover: 클라이언트가 DHCP 서버를 탐색한다.
  2. Offer: 서버가 사용할 수 있는 IP 주소를 제안한다.
  3. Request: 클라이언트가 선택한 주소를 요청한다.
  4. Ack: 서버가 임대를 확정한다.

공격자가 Rogue DHCP 서버를 운영하면 악성 게이트웨이나 DNS 서버를 배포할 수 있다. 스위치의 DHCP Snooping을 통해 신뢰할 수 있는 포트에서만 DHCP 응답을 허용할 수 있다.

6. Routing Table과 Default Route

라우터는 라우팅 테이블을 참고해 목적지까지의 다음 홉을 결정한다.

  • Hop: 호스트와 라우터 또는 라우터 사이의 한 번의 이동
  • Next Hop: 목적지로 가기 위해 다음으로 전달할 장비
  • Default Route: 더 구체적인 경로가 없을 때 사용하는 경로로, IPv4에서는 0.0.0.0/0으로 표현
  • Static Routing: 관리자가 경로를 직접 설정
  • Dynamic Routing: 라우팅 프로토콜을 통해 경로를 자동 학습

7. Routing Protocol

하나의 관리 주체가 운영하는 라우터와 네트워크의 집합을 AS(Autonomous System)라고 한다.

  • RIP: 홉 수를 기준으로 경로를 선택하는 Distance Vector 방식
  • OSPF: 링크 상태 정보를 이용해 AS 내부의 최적 경로를 계산하는 Link State 방식
  • BGP: AS 사이의 경로 정보를 교환하는 대표적인 Exterior Gateway Protocol

8. IPsec과 VPN

IPsec은 IP 패킷에 인증과 암호화를 적용해 다음 보안 기능을 제공하는 프로토콜 모음이다.

  • 기밀성
  • 무결성
  • 통신 상대 인증
  • Replay Attack 방지

VPN은 공중망 위에 논리적인 사설 네트워크를 구성한다.

  • Site-to-Site VPN: 지점과 지점의 네트워크 연결
  • Point-to-Site VPN: 개별 사용자가 사내 네트워크에 원격 접속
  • Tunneling: 원본 패킷을 새로운 패킷 안에 캡슐화하여 전달

Day 8 한 줄 정리

Subnetting으로 주소 공간을 효율적으로 나누고, DHCP로 주소를 할당하며, 라우팅 프로토콜로 경로를 학습하고, IPsec VPN으로 네트워크 간 통신을 보호할 수 있다.


Day 9 — 전송 계층, TCP·UDP와 DNS

1. 전송 계층과 Port

IP는 목적지 호스트까지 패킷을 전달하지만 특정 애플리케이션까지 구분하지는 않는다. 전송 계층은 포트 번호를 사용해 호스트에서 실행 중인 프로세스를 식별한다.

범위분류
0~1023Well-known Port
1024~49151Registered Port
49152~65535Dynamic·Private Port

서버는 주로 Well-known 또는 Registered Port에서 요청을 기다리고, 클라이언트는 연결할 때 임시 포트를 할당받는다.

2. TCP

TCP는 연결형·신뢰성 있는 바이트 스트림 통신을 제공한다.

  • Sequence Number: 데이터 순서 관리
  • Acknowledgment Number: 다음에 받기를 기대하는 바이트 번호
  • Checksum: 전송 중 오류 검출
  • Window: 수신 가능한 데이터 양을 알려 흐름 제어
  • 재전송: 손실된 것으로 판단한 데이터 재전송
  • 혼잡 제어: 네트워크 상황에 맞춰 송신량 조절

TCP 3-way Handshake

Client                          Server
  | -------- SYN -------------> |
  | <------ SYN + ACK ---------- |
  | -------- ACK -------------> |
  |        연결 수립 완료         |

MSS와 MTU

MSS(Maximum Segment Size)는 TCP 세그먼트에 담을 수 있는 데이터의 최대 크기다. 일반적인 IPv4 Ethernet 환경에서 옵션이 없다면 다음 값이 흔히 사용된다.

1500(Ethernet MTU) - 20(IPv4 Header) - 20(TCP Header) = 1460bytes

TCP 오류·흐름 제어

TCP는 ACK와 재전송 타이머를 이용해 데이터 손실을 감지한다. 타임아웃이나 중복 ACK 등으로 손실을 추정하면 필요한 데이터를 재전송한다.

수신 측은 Window Size를 통해 현재 받을 수 있는 데이터 양을 알린다. 송신 측은 ACK를 기다리지 않고 윈도우 범위 안에서 여러 세그먼트를 연속 전송할 수 있다.

3. UDP

UDP는 연결을 미리 수립하지 않으며 전달, 순서, 중복 제거를 보장하지 않는다. 헤더와 처리 과정이 단순해 지연을 줄이기 쉽다.

  • 실시간 스트리밍
  • 온라인 게임
  • 단순한 질의·응답
  • 일부 DNS 통신

TCP와 UDP의 차이는 단순히 느림과 빠름이 아니라 신뢰성, 지연, 메시지 경계와 애플리케이션 요구사항의 차이다.

4. DNS

DNS는 사람이 읽기 쉬운 도메인 이름을 IP 주소 등의 자원 레코드로 변환한다. 일반 DNS는 53번 포트를 사용하며 상황에 따라 UDP 또는 TCP로 동작한다.

  • 정방향 조회: 도메인 이름 → IP 주소
  • 역방향 조회: IP 주소 → 도메인 이름
  • FQDN: 루트까지의 전체 계층을 포함한 완전한 도메인 이름

DNS 조회는 일반적으로 다음 순서로 진행된다.

브라우저·OS 캐시 확인
  ↓
재귀 Resolver 질의
  ↓ 캐시 미스
Root DNS → TLD DNS → 권한 있는 DNS
  ↓
IP 주소 반환 및 TTL 동안 캐시

DNS 응답이 위조되면 사용자가 공격자의 서버로 유도될 수 있다. DNSSEC은 DNS 데이터의 출처 인증과 무결성 검증을 돕지만 통신 내용을 암호화하지는 않는다.

5. Traceroute

traceroute는 TTL을 1부터 차례로 증가시킨 패킷을 전송한다. 각 라우터에서 TTL이 0이 되면 반환되는 ICMP 응답을 이용해 목적지까지 거치는 경로를 확인한다.

Day 9 한 줄 정리

IP가 호스트까지의 전달을 담당한다면 TCP와 UDP는 포트 번호를 이용해 애플리케이션까지 데이터를 전달하고, DNS는 도메인 이름을 통신에 필요한 주소로 변환한다.


Day 10 — URI와 HTTP

1. URI, URL과 URN

URI(Uniform Resource Identifier)는 네트워크상의 자원을 식별하는 통합 개념이다.

  • URL: 자원의 위치를 기준으로 식별
  • URN: 자원에 부여한 이름을 기준으로 식별

URL은 일반적으로 다음 요소로 구성된다.

https://example.com:443/posts/1?lang=ko#summary
└scheme └── authority ──┘└ path ┘└query┘└fragment┘
  • Scheme: 사용할 프로토콜
  • Authority: 호스트와 포트 등의 접속 정보
  • Path: 자원이 위치한 경로
  • Query: 서버에 전달하는 추가 매개변수
  • Fragment: 문서 내부의 특정 위치

2. HTTP의 특징

HTTP는 클라이언트와 서버가 웹 자원을 주고받기 위한 응용 계층 프로토콜이다.

  • 요청·응답 기반: 클라이언트가 요청하고 서버가 응답한다.
  • 미디어 독립적: MIME 타입으로 다양한 종류의 자원을 전달한다.
  • Stateless: 프로토콜 자체는 이전 요청의 상태를 저장하지 않는다.
  • 지속 연결: 하나의 연결에서 여러 요청과 응답을 처리할 수 있다.

3. HTTP Method

Method용도
GET자원 조회
HEAD본문 없이 응답 헤더 조회
POST서버에 데이터 제출 또는 처리 요청

HTTP가 TCP 위에서 동작한다는 사실만으로 통신 내용이 보호되지는 않는다. HTTPS는 HTTP를 TLS로 보호해 기밀성, 무결성과 서버 인증을 제공한다.

Day 10 한 줄 정리

URL은 접근할 자원의 위치를 표현하고, HTTP는 해당 자원을 요청과 응답의 형태로 주고받는다.


전체 흐름 정리

브라우저에서 웹사이트에 접속하는 과정을 지금까지 배운 내용으로 연결하면 다음과 같다.

  1. URL에서 접속할 호스트와 자원을 확인한다.
  2. DNS를 통해 도메인 이름에 대응하는 IP 주소를 찾는다.
  3. Routing Table을 이용해 목적지까지의 다음 홉을 결정한다.
  4. 같은 링크에서 프레임을 전달하기 위해 ARP로 목적지 또는 게이트웨이의 MAC 주소를 찾는다.
  5. TCP 연결을 수립하고 포트 번호를 이용해 서버 프로세스와 통신한다.
  6. TCP 위에서 HTTP 요청과 응답을 주고받는다.
  7. 각 링크에서는 Ethernet 프레임으로 캡슐화되어 전달된다.

MAC 주소, IP 주소와 포트 번호는 서로 대체되는 주소가 아니다.

  • MAC: 현재 링크에서 다음 장비로 어떻게 전달할까?
  • IP: 여러 네트워크를 지나 어느 호스트로 갈까?
  • Port: 도착한 호스트의 어느 프로세스가 받을까?

0개의 댓글