logo
Published on

Network Overview

Authors
  • avatar
    Name
    valery
    Twitter

0. 용어 정리

  • 홉(hop): 데이터가 라우터를 하나 거칠 때마다 세는 단위. "다음 노드까지 한 번 건너뛴다"는 그 한 번이 1홉

1. 네트워크 개요

정보공유를 위해 통신망을 깔아놓고 그 위에서 단말들이 데이터를 주고받게 만든 시스템.

1. 구성요소

  1. 단말장비
    • 데이터를 생산·저장·소비하는 주체.
    • 서버, PC, 스마트폰
  2. 교환장비
    • 단말들 사이에서 데이터를 중계하는 중간장비
    • 라우터, 스위치
  3. 관리장비
    • 내부망 지키는 시스템
    • 방화벽

2. 라우터 vs 스위치

  • 라우터는 서로 다른 네트워크를 잇고 IP 주소 보고 경로를 결정(라우팅).
  • 스위치는 같은 네트워크 안에서 단말들을 묶어주는 역할이고 경로 판단은 안한다.

그래서 라우터가 네트워크 계층, 스위치가 데이터링크 계층 장비로 갈림(2.네트워크 프로토콜에서 계속)

3. 발전사

美 국방부 ARPANET(71)에서 시작 → TCP/IP가 표준 프로토콜로 지정(82) → OSI 참조모델 발표(84) → ARPANET이 '인터넷'으로 개명(85) → 버너스리가 WWW로 웹페이지 표준화(90) → 현재는 모바일·보안·클라우드·IoT.

TCP/IP가 OSI보다 먼저 표준이 됐다.

현실에선 OSI 모델은 이론용으로 박제됐고 TCP/IP가 실제로 굴러감.

4. 동작원리

  1. PC가 "이 데이터 줘" 요청 메시지에 서버 IP를 적어서 가까운 라우터로 던진다
  2. 라우터가 목적지 IP 읽고 경로 검색해서 다음 라우터로 넘긴다
  3. 이걸 라우터들이 릴레이로 반복
  4. 서버가 요청 받고 데이터 만들어서 이번엔 목적지를 "요청한 PC의 IP"로 바꿔 다시 라우터로 던진다
  5. 역방향으로 릴레이 → PC가 받아서 화면에 띄운다.
  • 라우터는 매 홉마다 목적지 주소를 새로 읽고 경로를 다시 검색
  • 경로 전체를 미리 알고 보내는 게 아님
  • 주소(IP)가 데이터 안에 들어가 있어야 이게 작동

5. 물리구성

건물 안 단말들 스위치에 UTP로 물린다

2. 네트워크 프로토콜

1. 프로토콜 정의

통신규칙, 데이터에 주소를 어디에 어떤 형식으로 적을지, 크기는 얼마로 자를지, 속도는 어떻게 맞출지 — 서로 미리 약속해둔 규칙 전부를 프로토콜이라고 한다

2. 계층화 필요성

네트워크는 단일 장비가 아닌 장비들이 결합되어 있는 시스템으로서 이 거대한 프로토콜들을 효과적으로 표준화하기 위하여 네트워크 동작에 따른 계층화된 모델이 필요하다

계층화의 장점

  1. 각 층이 독립적이라 문제 생기면 그 층만 들여다보면 된다.
  2. 새 기술 갈아끼울 때 그 층만 수정하면 된다

3. OSI 7계층

ISO가 84년에 내놓은 기능별로 7층 케이크처럼 쪼갠 OSI 모델

    1. 응용(Application) — 사용자가 직접 쓰는 서비스. HTTP, FTP.
    1. 표현(Presentation) — 암호화·압축·인코딩 등 데이터 형식 변환.
    1. 세션(Session) — 연결을 언제 열고 닫고 유지할지 관리.
    1. 전송(Transport) — 양 끝 단말의 포트끼리 연결, 신뢰성 보장. TCP/UDP.
    1. 네트워크(Network) — 서로 다른 망 넘어 경로 찾기. IP 주소, 라우터.
    1. 데이터링크(Data Link) — 같은 망 안에서 인접 장비끼리 전달. MAC 주소, 스위치.
    1. 물리(Physical) — 비트를 전기신호·빛으로 바꿔 선에 흘려보냄. 케이블, 허브.

캡슐화

  • 송신단: 위(응용)에서 데이터가 출발해서 한 계단씩 아래로 내려간다, 각 층이 자기 헤더를 덧붙이면서.
  • 수신단: 정반대, 아래(물리)에서 받아서 한 계단씩 위로 올라가며 각 층이 자기 헤더를 떼어내고 읽는다.

4. TCP/IP 모델

  • 실제로 인터넷에 적용되는 계층 모델

  • OSI 7층을 현실에 맞게 4층으로 통합한 것이다

  • 응용계층 = OSI의 응용 + 표현 + 세션 (위 3층을 하나로 뭉침).

  • 전송계층 = OSI 전송 그대로 (TCP, UDP).

  • 인터넷계층 = OSI 네트워크 (IP, ICMP, ARP).

  • 네트워크접속계층 = OSI 데이터링크 + 물리 (LAN 카드, 드라이버).

3. 네트워크 계층

1. 역할

라우팅 담당. 송신자부터 수신자까지 데이터를 보낼 적절한 경로를 찾는 층

2. 주소체계

IP 주소

32비트짜리 소프트웨어적 주소

0~255 사이 십진수 4개로 표기(0.0.0.0 ~ 255.255.255.255).

MAC 주소

네트워크 어댑터(랜카드)마다 박혀 나오는 하드웨어 고유번호

48비트, 16진수 표기(ex: 00-21-85-53-50-66)

IP와 MAC은 상호 보완적이다.

TCP/IP 인터넷계층 프로토콜에 ARP(Address Resolution Protocol)가 바로 "이 IP를 가진 놈의 MAC이 뭐냐"를 알아내는 프로토콜

예시

  • PC(A) → 라우터 R1 → 라우터 R2 → 서버(S), 이렇게 갈 때 IP는 처음부터 끝까지 출발지=A, 목적지=S로 고정.
  • MAC은 홉마다 새로 쓰이기 때문에(라우터 2개, 라우터 수 +1) 총 3번 바뀌게 된다.
구간 1 (AR1)
  출발지 MAC = AMAC
  목적지 MAC = R1 (A) 인터페이스 MAC

구간 2 (R1R2)
  출발지 MAC = R1 (R2) 인터페이스 MAC
  목적지 MAC = R2 (R1) 인터페이스 MAC

구간 3 (R2S)
  출발지 MAC = R2 (S) 인터페이스 MAC
  목적지 MAC = SMAC

4. IP 주소체계

1. IP주소 기본

1. 왜 필요한가?

인터넷에서 정보를 정확하게 전달하기 위한 유일한 식별자

2. 어떻게 생겼냐?

  • IPv4는 32비트.
  • 이걸 8비트(=1바이트)씩 4토막 낸 게 옥텟(Octet)
  • 사람이 읽기 쉽게 십진수로 바꿔 점으로 잇는 표기가 DDN(Dotted-Decimal Notation)
  • 각 옥텟은 8비트라 0~255 범위. 그래서 0.0.0.0 ~ 255.255.255.255.

2. 구조

Network ID와 Host ID의 경계가 클래스마다 다르다. 그리고 클래스는 첫 비트 패턴으로 갈린다

  1. Network ID(어느 동네냐)
  2. Host ID(그 동네 몇 호냐)

3. 클래스

클래스첫 비트NetID 비트HostID 비트1옥텟 범위호스트 수
A08240~1272²⁴−2 = 16,777,214
B101616128~1912¹⁶−2 = 65,534
C110248192~2232⁸−2 = 254

호스트 수에서 -2 하는 이유: Host ID가 전부 0이면 그건 "네트워크 ID 자체"를 가리키는 주소라 못 쓰고, 전부 1이면 "브로드캐스트(그 망 전체에 뿌리기)" 주소라 또 못 쓰기 때문에 2개를 뺀다.

4. 왜 굳이 NetID / HostID로 나누는 이유

  1. 제한된 IP를 효율적으로 사용하기 위해서
  2. 그룹화하면 라우팅이 빨라져서

5. 서브넷팅

  • IP주소를 분할하여 2개 이상의 소규모 네트워크로 구성하는 것
  • 쪼개는 이유: 큰 망 하나를 통째로 쓰면 IP낭비가 심하고 브로드 캐스트 트래픽도 한덩어리로 다 퍼져서 비효율적이기 때문에

IP주소를 쪼개는 방법

Host ID 앞쪽 비트 몇 개를 떼어다가 "서브넷 번호"로 쓰는 거 N비트를 빌리면 2ᴺ개로 쪼개져.

예시

C 클래스(197.90.21.0)를 4개로 나눈다고 치자. 4 = 2², 그러니 앞 2비트를 빌린다. 마지막 옥텟(Host ID)의 앞 2비트 조합이 4가지:

00 0000000197.90.21.0
01 00000064197.90.21.64
10 000000128197.90.21.128
11 000000192197.90.21.192

6. 서브넷 마스크

  • 32비트 중 어디까지가 Network ID인지 표시하는 값
  • 규칙: Network ID 자리엔 1, Host ID 자리엔 0
Subnet-mask

7. 임의의 IP가 어느 서브넷 소속인지 찾는 방법

문제: 192.168.4.67/26은 어느 서브넷 소속이냐?

규칙: IP와 마스크를 비트끼리 AND 때리면 Network ID가 나온다

IP   192.168.4.67   11000000 10101000 00000100 01000011
Mask /26            11111111 11111111 11111111 11000000
                    ─────────────────────────────────── AND
NetID               11000000 10101000 00000100 01000000
                    = 192      168      4        64

8. 호스트 수 구하기

2^(남은 호스트 비트) − 2.

192.168.4.64/26 동네를 풀어보면:

네트워크 ID 주소(동네 대표 주소): .64 (호스트 비트 전부 0) (네트워크 id와는 다름 네트워크 id = 26)
브로드캐스트: .127(111111) (호스트 비트 전부 1, 64+63)
쓸 수 있는 호스트: .65 ~ .126 = 62

9. IPv6, IPv4

IPv6

  • IP 부족 문제 및 기존 IP 프로토콜의 문제 해결하기 위해 개발
  • 현재는 가상 IP 등의 방법으로 IP 부족 문제를 해결하고 있음
  • 32bit의 IPv4의 주소를 128bit로 확장하여 주소의 개수가 큰 폭으로 증가
  • 주소의 표현 : 4개의 16진수의 숫자들이 하나의 그룹을 형성하고, 8개의 그룹으로 하나의 주소를 표현
  • 기존 IPv4와의 호환성을 최대로 하는 방향으로 설계

5. 라우팅

1. 정의

데이터를 가장 빠르고 효율적으로 보낼 경로를 판단하는 게 라우팅이고, 그걸 하는 장치가 라우터

그 경로 정보를 누가 등록하냐로 정적/동적이 갈린다

2. 정적 vs 동적

구분정적 라우팅 (Static Routing)동적 라우팅 (Dynamic Routing)
경로 등록관리자가 손으로 입력라우터끼리 자동 교환
장점단순, 오버헤드 0, 예측 가능, 보안 유리망 변화·장애에 자동 적응, 우회 가능
단점망이 커지면 관리 지옥, 장애 시 수동 대응프로토콜 오버헤드(대역폭·CPU), 구성 복잡
적합소규모·경로가 고정된 망대규모·자주 변경되는 망

3. 라우팅 테이블

정적이든 동적이든 라우터는 "라우팅 테이블"을 보고 다음 어느 라우터로 보낼지 판단한다.

라우터는 들어온 패킷의 목적지 IP를 테이블의 (NetID + 마스크)랑 맞춰보고(아까 한 AND 연산) 일치하는 동네로 가는 포트로 밀어낸다.

구성요소

  • 목적지 네트워크 ID (어느 동네냐)
  • 서브넷 마스크 (그 동네 경계가 어디까지냐)
  • 인터페이스 또는 next hop 주소 (그럼 어느 포트로/누구한테 던지냐)

4. 동적 프로토콜 — RIP vs OSPF

경로결정의 요소

  • 라우터를 몇 개를 거치는가?
  • 데이터를 목적지까지 보내는데 시간이 얼마나 걸리는가?
  • 한번에 얼마나 많은 데이터를 보낼 수 있는가?
  • 어떤 경로를 안정적으로 이용할 수 있는가?
  • 특정 시점에 트래픽이 과하게 사용되지 않는가?

RIP vs OSPF

구분RIPOSPF
방식Distance-VectorLink-State
경로 기준홉 수(거친 라우터 개수) 최소비용(Cost) 최소
비용 산정홉 수만 고려대역폭·왕복시간·신뢰성 등 링크 상태 기반
교환 범위인접 라우터하고만 교환지역 내 전체 라우터의 경로 정보 공유
경로 계산단순 거리 벡터 방식최단 경로 알고리즘으로 비용 계산
한계최대 15홉, 16홉 = 도달 불가무겁고 복잡하며 계산 부담 존재

참고

BGP(Border Gateway Protocol)는 AS(자율 시스템) 사이를 잇는, 인터넷 백본을 굴리는 프로토콜

IGRP는 시스코 독자 프로토콜이고 지금은 거의 안 쓴다.

6. 전송계층(TCP, UDP)

지금까지 네트워크 계층이 "어느 컴퓨터까지 보낼까" 였다면 전송계층은 그 위에서 "컴퓨터의 어느 프로그램한테 줄까 를 담당" 그리고 그 프로그램을 지목하는 게 포트(port)

1. 대표적인 기능

  • 흐름제어: 수신자가 감당할 속도에 맞춰 송신 속도 조절 (수신자 안 터지게)
  • 오류제어: 빠지거나 깨진 데이터 확인하고 복구
  • 혼잡제어: 네트워크 막힘 상태 보고 보낼지 말지 조절 (네트워크망 안 터지게)

2. 대표적 프로토콜: TCP(연결형), UDP(비 연결형)

3. TCP(Transmission Control Protocol)

  • 연결형 서비스 지원(신뢰성 보장, 무겁다, ex: 전화(연결하고 통화))
    • 연결형이란: 송수신 포트가 먼저 논리적 연결을 수립하면, 그 연결을 끊지 않고 스트리밍으로 쭉 데이터를 흘려보내는 방식
  • 응용계층이 준 데이터를 **세그먼트(Segment)**라는 블록으로 쪼개서 IP 계층에 넘긴다
  • 3단계의 과정으로 송수신 단말이 연결된다
접속 구축  →  접속 유지  →  접속 해제
           (오류/흐름/
              혼잡 제어)

1. 접속구축

  • Three-Way Handshake를 통해 연결

Three-Way Handshake 과정

  • SYN 패킷은 | Src | Dst | Seq | Ack | Flag | 으로 이루어져 있다.
    • SYN-ACK 패킷도 동일하게 생겼다. 차이점은 수신단말이 보낸다는 것.
예시

SYN      AB   "연결하자, 내 시작번호 Seq=1200"
                 Seq=1200, Ack=0,    Flag=SYN

SYN-ACK  BA   "오케이(=네 SYN 받음), 내 시작번호 Seq=4800"
                 Seq=4800, Ack=1201, Flag=SYN+ACK

ACK      AB   "오케이(=네 SYN-ACK 받음), 시작하자"
                 Seq=1201, Ack=4801, Flag=ACK

Seq(1200, 4800)는 양쪽이 각자 임의로 정한 값
Ack 번호 = 상대한테 받은 Seq + 1.
③에서 ASeq가 1201인 건, ②에서 B"다음 1201 줘"라고 했으니 그대로 1201로 맞춰 보내는 거
  • 왜 굳이 3번인지
  • ①→② 거치면: A는 "B가 내 신호 받았구나"를 확인해 (A→B 방향 검증됨).
  • ②→③ 거치면: B는 "A가 내 신호 받았구나"를 확인해 (B→A 방향 검증됨).
  • 그래서 두 방향이 둘 다 확인돼야 양방향(전이중, full-duplex) 통신 준비가 끝난다
    • 만약 ③가 이뤄지지 않으면? B는 A의 마지막확인을 못받아서 타임아웃 후 SYN-ACK를 재전송한다.

2. 접속유지

공통 토대

  • ACK번호의 의미: ACK N은 "N−1까지 다 잘 받았으니 다음은 N 줘"라는 뜻

  • 슬라이딩 윈도우(W). ACK를 기다리지 않고 한꺼번에 날릴 수 있는 세그먼트 개수.

    • W=3이면 한번에 3개까지 연속으로 쏠 수 있고 ACK를 받으며 창을 민다

1. 오류제어

ACK-재전송 (Go-Back-N)

보냄 DATA1,2,3  →  받음 ACK2,ACK3,ACK4   ("DATA 3까지 다 받음")
보냄 DATA4,5,6
   DATA5가 도중에 유실 ✗
   수신자: DATA4 받음 → ACK5 ("다음 5 줘")
           DATA6 옴 → 근데 5를 기다렸으니 버림,ACK5
           DATA7 옴 → 또 버림,ACK5      ← 중복 ACK
송신자: 두 번째 ACK5 보고 "5가 빵꾸났구나"DATA5 재전송
   수신자: DATA5 받음 → ACK6
  • 수신자는 순서 어긋난 놈(6,7)을 그냥 버린다

2. 흐름제어(수신자가 속도를 정한다)

  • 수신자가 자기 버퍼 여유 크기(=윈도우 크기 W)를 ACK 패킷에 적어서 보낸다. 송신자는 그 값보다 더 많이 안 쏜다.
  • 수신자 버퍼가 차면 W를 줄여서 ACK 패킷에 적어서 보낸다 → 송신자 느려짐

3. 혼잡제어(네트워크가 속도를 정한다)

ACK가 제때 오는 정도로 망 혼잡을 파악해서 W를 조절

아래는 혼잡 제어 순서

1. 알고리즘 Slow Start

작은 W에서 시작해 ACK 받을 때마다 **지수적(2배씩)**으로 키운다. 망이 얼마나 받아주나 빠르게 떠보기.

2. 알고리즘 threshold(임계치) 도달

지수적으로 키우다가 임계치에 도달하면 Congestion Avoidance로 전환 후 **선형(+1씩)**으로 조심조심 키운다.

3. 타임아웃 발생(=패킷 유실=혼잡 신호)

W를 확 떨궈버리고 임계치도 절반쯤으로 재설정. 그리고 다시 Slow Start

4. 최종 W = min(흐름제어 윈도우, 혼잡제어 윈도우)

송신자는 윈도우를 두 개 들고 있다 — 수신자가 정해준 흐름제어 윈도우, 망이 정해준 혼잡제어 윈도우.

둘 중 더 작은 값으로 실제 W를 잡는다. 왜냐, 수신자도 안 터뜨리고 네트워크도 안 터뜨리려면, 더 빡빡한 쪽 제약을 따라야 하니까

3. 접속해제

Four-Way Handshake 방식으로 이루어짐

FIN  송신→수신   "나 보낼 거 끝났어, 연결 끊자"
ACK  수신→송신   "알았어" (그리고 자기 통신 끝날 때까지 대기)
FIN  수신→송신   "나도 다 끝났어, 끊자"
ACK  송신→수신   "알았어"
  • 4번인 이유
    • A가 "나 끝났어(FIN)" 했을 때, B는 일단 "알았어(ACK)"는 바로 보내지만 — B는 아직 보낼 데이터가 남아 있을 수 있기 때문에 FIN, ACK를 따로 보내야해서 4단계다

4. UDP

  • 비연결형
  • TCP가 전화라면 UDP는 확성기 방송
  • 헤더 구조가 훨씬 간단하고, 오류제어·흐름제어·혼잡제어를 아예 안 한다.
  • 그래서 신뢰도는 낮지만 빠르고 가볍다
  • 용도: 동영상 스트리밍, DNS, NTP(시간서버), 제어신호.

5. TCP vs UDP

항목TCPUDP
서비스연결형비연결형
수신 순서송신 순서와 동일하게 보장뒤바뀔 수 있음
오류·흐름·혼잡 제어있음거의 없음
속도 / 오버헤드느리고 무거움빠르고 가벼움
용도웹, 파일 전송스트리밍, DNS, 제어 신호

7. 무선 네트워크

1. 네트워크 분류 두 축

  1. 전송로로: 유선 vs 무선
  2. 크기로: LAN(건물·구내) < MAN(도시) < WAN(광역·국가)

무선 네트워크는 전파로 통신하는 망을 통칭하고, 종류로 Ad-Hoc / WMN / WSN가 있다.

2. AD-Hoc Network(인프라 없이 단말끼리)

  • 기반시설(라우터·AP) 없이 이동통신장비만으로 구성
  • 노드와 단말의 구분이 없다. 모든 단말이 동시에 중계기 역할을 함. 그래서 멀리 있는 단말한테도 옆 단말들 거쳐서 전달 가능 → 통신거리 제약 극복.
  • 전부 무선이라 이동 중에도 통신 보장.

AD-Hoc Network의 반대 개념 Infrastructure 네트워크

AP·기지국 중심이라 단말들이 무조건 AP를 거쳐야 통신 — 집·회사 WiFi가 이거

Ad-Hoc 라우팅 — Table-Driven vs On-Demand (trade-off)

구분Table-Driven (Proactive)On-Demand (Reactive)
경로 확보주기적으로 미리 모든 경로 정보를 유지필요할 때만 경로를 탐색
장점경로가 준비되어 있어 전송 지연이 적음라우팅 오버헤드가 적음
단점주기적 브로드캐스트로 오버헤드가 큼경로 탐색 시 초기 지연이 발생

이동이 잦고 토폴로지가 수시로 바뀌며 통신이 드문드문하면 On-Demand

반대로 통신이 빈번하고 즉각성이 중요하면 미리 깔아두는 Table-Driven이 유리

3. WMN (Wireless Mesh Network) — 메쉬 백본.

  • 대표 AP(게이트웨이)만 유선으로 인터넷에 물고, 나머지 무선 라우터들은 메쉬 노드가 돼서 자기들끼리 무선으로 다단 연결해 망을 펼친다
  • 도시 전역 WiFi 깔 때 쓰는 방식

4. WSN (Wireless Sensor Network) — 센서 수집망.

  • 무선 통신 되는 센서 노드들이 온도·소리·압력 같은 현상을 측정해서 **메인 노드(Sink Node)**로 보낸다.
  • Sink Node가 데이터를 종합·해석하고 인터넷에 연결해 내보내는 구조
  • 응용: 적 침입 알림, 공기오염·산불·산사태 감지.
  • 기술: ZigBee, 6LoWPAN(IPv6 over Low-power WPAN), IoT.