Chapter 01: Internet Overview and Roadmap
1.1 인터넷이란? (What is the Internet?)
🔹 1.1.1 "Nuts and Bolts" 관점
인터넷의 물리적/기술적 기반에 초점을 맞춘 관점.
✅ 핵심 구성 요소
-
호스트 (Host, End System)
네트워크에 연결되어 통신이 가능한 컴퓨팅 장치.
→ 예: 서버, 스마트폰 등
→ 네트워크 애플리케이션(Network Application)을 실행
-
통신 링크 (Communication Link)
데이터를 전달하는 물리적/무선 경로
→ 유선: 광섬유, 구리선
→ 무선: 전파, 위성
→ 전송 속도는 대역폭(Bandwidth)에 의해 결정됨
-
패킷 (Packet)
전송할 데이터를 작은 조각으로 나눈 단위
→ 데이터를 여러 패킷으로 나누어 전송하여 효율성 및 신뢰성 향상
→ 이 과정을 세그멘테이션(Segmentation)이라고 함
-
패킷 스위치 (Packet Switch)
패킷을 받아서 목적지로 전달하는 네트워크 장치
→ 예: 라우터(Router), 스위치(Switch)
→ 높은 신뢰성과 낮은 비용으로 데이터 전달
-
인터넷 (Internet)
네트워크들의 네트워크 (Network of Networks)
→ 다양한 인터넷 서비스 제공자(ISP, Internet Service Provider)들이 상호 연결되어 구성
-
프로토콜 (Protocol)
네트워크에서 데이터를 주고받기 위한 규칙의 집합
→ 예: TCP, IP, HTTP, 802.11 등
-
인터넷 표준 (Internet Standards)
IETF(Internet Engineering Task Force)가 RFC(Request for Comments) 문서를 통해 정의
→ 모든 인터넷 기술은 RFC를 통해 공식화됨
-
노드(Node) & 엣지(Edge)
- 노드(Node): 네트워크에 연결된 장치 (서버, 클라이언트, 라우터 등)
- 엣지(Edge): 두 노드를 연결하는 링크 (연결 경로)
- 노드와 엣지는 상호 의존적 관계이며, 네트워크의 기본 구조를 형성
🔹 1.1.2 서비스 관점 (Service View)
인터넷은 단순한 물리 네트워크를 넘어,
애플리케이션(web, VoIP, email 등)에 서비스를 제공하는 인프라(Infrastructure) 역할을 함.
- 각 앱은 프로그래밍 인터페이스(Programming Interface)를 통해 네트워크 기능에 접근
- 개발자는 네트워크를 직접 구성하지 않고도 앱 간 통신 구현 가능
🔹 1.1.3 프로토콜이란? (What is a Protocol?)
네트워크 개체 간에 메시지를 어떻게, 어떤 순서로 주고받을지 정의한 규칙

- 메시지 포맷, 순서, 송수신 동작을 명시
- 예: TCP에서는 연결 설정 3-way handshake, HTTP에서는 요청-응답 구조
1.2 네트워크 엣지 (Network Edge)
🔹 1.2.1 대역폭 (Bandwidth)
- 대역폭(Bandwidth)은 단위 시간당 전송 가능한 데이터의 양을 의미
- 단위: bps (bits per second)
- 대역폭이 클수록 더 빠른 데이터 전송 가능
🔹 1.2.2 DSL (Digital Subscriber Line) 방식 – 전용 회선 기반 접근

- 사용자는 전화선(구리선)을 통해 중앙 사무소(Central Office)의 DSLAM(Digital Subscriber Line Access Multiplexer)에 연결됨
- 전용 회선(Dedicated Line)이므로 다른 사용자와 회선을 공유하지 않음
- 음성과 데이터는 서로 다른 주파수 대역(Frequency Band)을 사용하므로 동시에 전송 가능
✅ 속도 특성
- 업스트림 속도(Upstream): 일반적으로 1 Mbps 미만 (최대 약 2.5 Mbps)
- 다운스트림 속도(Downstream): 일반적으로 10 Mbps 미만 (최대 약 24 Mbps)
🔹 1.2.3 케이블 네트워크 (Cable Network) – 공유 회선 기반 접근

- 주파수 분할 다중화(FDM, Frequency Division Multiplexing) 사용
→ 각 채널이 서로 다른 주파수 대역을 사용해 충돌 없이 전송 가능

- 동일한 케이블(Coaxial Cable)을 통해 TV, 데이터 등 다양한 신호를 전송
- 여러 사용자가 공유 케이블(Shared Cable)을 사용하여 ISP와 연결됨
- 이 구조를 케이블 분배망(Cable Distribution Network) 또는 공유 네트워크 구조라 함
✅ HFC (Hybrid Fiber Coax) 사용 시 속도
- 업스트림 속도(Upstream): 최대 2 Mbps
- 다운스트림 속도(Downstream): 최대 30 Mbps
📌 DSL과의 차이점
- DSL: 사용자와 중앙 사무소 간 전용 회선(Dedicated Access)
- Cable: 사용자와 케이블 헤드엔드 간 공유 회선(Shared Access)
→ 사용량이 많은 시간대에 성능 저하 가능성 있음
1.3 네트워크 코어 (Network Core)
🔹 1.3.1 패킷 스위칭 (Packet Switching)
- 패킷 스위칭(Packet Switching)은 호스트가 응용 계층 메시지를 패킷(Packet)으로 나눈 뒤, 여러 라우터를 경유하며 전송하는 방식
- 각 패킷은 독립적으로 경로를 선택하며, 사전 연결 설정 없음
- 전송 속도는 링크의 대역폭(Bandwidth)에 의해 결정되며, 패킷 크기는 해당 링크의 최대 전송 단위에 맞춤

🔹 1.3.2 저장 후 전달 (Store & Forward)
-
Store-and-Forward: 패킷이 완전히 수신된 후에야 다음 링크로 전달
-
한 링크의 전송 시간:
전송 시간=RL
→ L: 패킷 크기 (bits), R: 링크 속도 (bps)
-
예시:
L = 7.5 Mbit, R = 1.5 Mbps → 링크당 5초 소요
총 2링크를 거치면:
총 전송 시간=2×RL=10 초

🔹 1.3.3 큐잉 지연과 손실 (Queuing Delay & Packet Loss)
- 링크에 도착하는 패킷의 양이 링크 처리율을 초과하면, 큐(Queue)에 대기
- 버퍼(Buffer)가 가득 찰 경우 패킷 손실(Packet Loss) 발생 가능
🔹 1.3.4 핵심 기능: 라우팅 & 포워딩
✅ 라우팅 (Routing)
- 라우팅 알고리즘(Routing Algorithm)을 통해 출발지에서 목적지까지의 경로를 결정
✅ 포워딩 (Forwarding)
- 수신한 패킷을 라우터 내에서 올바른 출력 포트로 전달
- 즉, 다음 홉으로 패킷을 실제로 이동시키는 동작
🔹 1.3.5 회선 스위칭 (Circuit Switching)
- 송신자와 수신자 간 자원을 사전에 할당하여 전용 회선을 구성
- 전송 도중 다른 트래픽과 공유하지 않음 → 지속적 대역폭 보장
- 사용하지 않을 경우에도 자원이 유휴 상태로 낭비됨
✅ FDM vs. TDM
- 주파수 분할 다중화(FDM, Frequency Division Multiplexing)
→ TV, 라디오, 위성, 전화 등에서 사용
- 시분할 다중화(TDM, Time Division Multiplexing)
→ VoIP, 컴퓨터 네트워크 등에서 사용

🔹 1.3.6 패킷 vs. 회선 스위칭 비교

가정
- 링크 속도: 1 Mbps
- 각 사용자 요구 속도: 100 Kbps
- 사용자 활성 확률: 10%
분석
-
회선 스위칭(Circuit Switching)
→ 최대 10명까지 수용 가능
-
패킷 스위칭(Packet Switching)
→ 35명 사용자 중 11명 이상 동시에 활성일 확률:
P(X≥11)=k=11∑35(k35)(0.1)k(0.9)35−k
→ 약 0.0004의 확률로만 초과
- 패킷 스위칭은 버퍼를 이용한 대기로 더 많은 사용자 수용 가능
결론
- 패킷 스위칭은 자원 공유와 유연성 면에서 우수
- 다만 혼잡(Congestion) 시 지연(Delay), 손실(Loss) 발생 가능
→ 이를 해결하기 위한 혼잡 제어(Congestion Control)와 신뢰성 프로토콜 필요
🔹 1.3.7 인터넷 구조 (Internet Structure)
- 종단 시스템(End System)은 접근 ISP(Access ISP)를 통해 인터넷에 연결
- ISP 간 상호 연결이 필요 → 복잡한 연결 구조 발생
- 정책 및 경제적 고려에 따라 인터넷 구조가 결정됨
구조적 확장
- 모든 Access ISP 간 직접 연결 시 연결 수:

- 글로벌 ISP(Global ISP) 간 인터넷 익스체인지 포인트(IXP)와 피어링(Peering)을 통해 상호 연결
- 대형 콘텐츠 제공자(Google, MS 등)는 직접 네트워크를 구축하여 사용자에 서비스 제공

1.4 네트워크에서의 지연, 손실, 처리량 (Delay, Loss, Throughput in Networks)
🔹 1.4.1 Loss와 Delay의 발생 과정
- 라우터의 버퍼(Buffer) 내부에는 패킷 큐(Queue)가 존재
- 패킷 도착률이 링크의 전송률을 초과할 경우 → 지연 및 손실 발생
상황
- 패킷이 전송되는 동안 → 전송 지연(Transmission Delay)
- 패킷이 큐에서 대기하는 동안 → 큐잉 지연(Queueing Delay)
- 버퍼가 가득 찼을 때 도착한 패킷은 → 폐기(Packet Loss)

🔹 1.4.2 패킷 지연의 네 가지 구성 요소
총 지연 시간:
Total Delay=dproc+dqueue+dtrans+dprop

| 지연 종류 | 설명 |
|---|
| 처리 지연(Processing Delay) | 오류 검사, 라우팅 결정 등 (보통 ms 미만) |
| 큐잉 지연(Queueing Delay) | 큐에서 대기하는 시간, 혼잡도에 따라 가변 |
| 전송 지연(Transmission Delay) | L: 패킷 길이, R: 링크 속도 → L/R |
| 전파 지연(Propagation Delay) | 거리 d, 전파 속도 s → d/s |
🔹 1.4.3 Caravan 유추 비유 (Caravan Analogy)
- 자동차 → 비트(bit), 캐러밴 → 패킷(packet)
예시
- 자동차 속도: 100 km/h
- 톨게이트 지연: 차량당 12초
- 차량 수: 10대
총 시간 =
120 sec+60 min=62 분
속도 1000 km/h, 톨게이트에서 1분 소요 →
앞 차량이 빠르게 다음 톨게이트에 도착 가능 (병렬 처리 개념과 유사)
🔹 1.4.4 Queueing Delay와 트래픽 강도 (Traffic Intensity)
📌 비트 기반 수식
Traffic Intensity (TI)=RL⋅a
| 기호 | 의미 |
|---|
| L | 패킷 크기 (bits) |
| a | 평균 도착률 (packets/sec) |
| R | 링크 전송 속도 (bps) |
해석
- TI<1: 안정적, 혼잡 없음
- TI≈1: 경계 상황
- TI>1: 혼잡, 큐잉 지연과 손실 발생
📌 큐잉 이론 기반 수식
ρ=μλ
| 기호 | 의미 |
|---|
| λ | 평균 도착률 |
| μ | 서비스율 (1초당 처리 가능한 패킷 수) |
→ 두 수식은 다음처럼 연결됨:
ρ=R/La=RL⋅a
🔹 1.4.5 GPS와 푸아송 분포
- GPS (Generalized Processor Sharing): 각 흐름이 최소 처리율 보장 → 대기 시간이 유한하게 제한됨(bounded)
- 푸아송 분포(Poisson Arrival): 시간 t 동안 k개의 패킷이 도착할 확률
P(N(t)=k)=k!(λt)ke−λt
→ GPS가 있으면 푸아송 분포 기반 도착에도 안정적인 처리 가능
🔹 1.4.6 실제 인터넷에서의 지연 및 경로
traceroute 도구를 통해 라우터별 왕복 시간 측정 가능
🔹 1.4.7 패킷 손실 (Packet Loss)
- 버퍼 용량 초과 시 패킷 폐기
- TCP는 재전송, UDP는 무시

🔹 1.4.8 처리량 (Throughput)
- 단위 시간당 성공적으로 수신된 데이터 양 (bps)
| 용어 | 설명 |
|---|
| 순간 처리량 (Instantaneous Throughput) | 특정 시점 처리 속도 |
| 평균 처리량 (Average Throughput) | 일정 시간 동안의 평균 |

✅ 병목 링크 (Bottleneck Link)
- 전체 경로 중 가장 느린 링크가 전체 처리량을 결정
min(Rc,Rs,R/10)


모든 지연/손실/처리량 요소는 혼잡 제어(Congestion Control) 및 신뢰성 보장 프로토콜 설계의 기반이 됨.
1.5 프로토콜 계층과 서비스 모델 (Protocol Layers, Service Models)
🔹 1.5.1 계층(Layer)의 개념
- 각 계층(Layer)은 자체 동작을 수행하며, 하위 계층이 제공하는 서비스에 의존하여 상위 서비스를 구현함
- 네트워크 구조를 계층화하면 복잡한 시스템을 모듈화(Modularization)하여 설계, 유지보수, 업그레이드가 쉬워짐
🔹 1.5.2 계층화의 필요성 (Why Layering?)
- 복잡한 통신 시스템을 잘게 나누어 이해하고 설계하기 쉬움
- 명시적인 계층 구조는 각 역할과 데이터 흐름을 명확히 설명함
- 예: 브라우저 개발자는 HTTP만 신경 쓰고, IP나 MAC은 몰라도 됨
🔹 1.5.3 인터넷 프로토콜 스택 (Internet Protocol Stack)

| 계층 | 설명 |
|---|
| Application Layer | 네트워크 애플리케이션 지원 (HTTP, DNS, SMTP 등) |
| Transport Layer | 프로세스 간 데이터 전송 (TCP, UDP) |
| Network Layer | 종단 간 데이터그램 라우팅 (IP, 라우팅 프로토콜) |
| Link Layer | 인접 노드 간 데이터 전송 (Ethernet, Wi-Fi 등), 오류 및 충돌 제어 |
| Physical Layer | 비트 단위 전송, 실제 물리 매체 사용 (케이블, 전파 등) |
📌 Packet Switching 기반 네트워크이므로:
지연(delay), 손실(loss), 순서 뒤바뀜(unordered) 등 불확실성 존재
✅ TCP의 역할
- 프로세스 간 논리적 연결(Logical Connection) 제공
- 포트 번호(port #)를 통한 다중 연결 관리
- 흐름 제어(Flow Control), 혼잡 제어(Congestion Control)
- RDT (Reliable Data Transfer): 신뢰성 있는 데이터 전송 구현
🔹 1.5.4 OSI 7계층 모델 (ISO/OSI Reference Model)

| 계층 | 역할 |
|---|
| Application | 사용자 인터페이스 및 응용 처리 |
| Presentation | 데이터 표현, 인코딩/디코딩 |
| Session | 세션 관리, 동기화, 복구 |
| Transport | 종단 간 신뢰성 있는 전송 |
| Network | 주소 지정, 경로 선택 |
| Data Link | 프레임화, 오류 제어 |
| Physical | 비트 전송, 전기적/기계적 인터페이스 |
실제 인터넷에서는 대부분 OSI 모델이 아닌 Internet Stack(5계층) 구조를 따름
🔹 1.5.5 캡슐화 (Encapsulation)

- 각 계층은 상위 계층 데이터에 헤더(Header)를 추가하여 하위 계층으로 전달
- 각 계층은 고유한 데이터 단위 이름을 가짐
| 계층 | 데이터 단위 |
|---|
| Application | 메시지 (Message) |
| Transport | 세그먼트 (Segment) |
| Network | 데이터그램 (Datagram) |
| Link | 프레임 (Frame) |
| Physical | 비트 (Bit) |
- 라우터(Router)는 Network Layer까지만 처리
- 스위치(Switch)는 Link Layer까지만 처리
→ Transport Layer는 일반적으로 종단 시스템(End System)에서만 다룸
참고) 데이터 세그멘테이션 유무에 따른 전송 시간 비교
✅ 문제 설정
- 데이터 크기: 8Mb (메가비트)
- 링크 속도: 2Mbps (메가비트/초)
- 거치는 스위치 수: 2개 → 총 3 홉 (송신자 → 스위치1 → 스위치2 → 수신자)
- 전송 방식: 저장 후 전달 (Store-and-Forward Switching)
- 비교 대상:
- 세그멘테이션 없음 (Segmentation Off)
- 세그멘테이션 있음 (Segmentation On, 예: 1Mb 단위)
🔹 ① 세그멘테이션 없음 (Segmentation Off)
흐름
2 Mbps8 Mb=4 초
- 각 스위치는 전체 데이터를 모두 받은 후에야 다음 홉으로 전송 시작
- 따라서 각 홉마다 4초씩 소요
총 전송 시간=4+4+4=12 초
🔹 ② 세그멘테이션 있음 (Segmentation On)
설정
- 데이터: 1Mb 세그먼트 × 8개
- 각 세그먼트 전송 시간:
2 Mbps1 Mb=0.5 초
파이프라이닝 구조
| 세그먼트 | 송신자 → 스위치1 | 스위치1 → 스위치2 | 스위치2 → 수신자 |
|---|
| #1 | 0~0.5초 | 0.5~1초 | 1~1.5초 |
| #2 | 0.5~1초 | 1~1.5초 | 1.5~2초 |
| ... | ... | ... | ... |
| #8 | 3.5~4초 | 4~4.5초 | 4.5~5초 |
총 전송 시간=5 초
✅ 비교 요약
| 항목 | 세그멘테이션 없음 | 세그멘테이션 있음 |
|---|
| 총 전송 시간 | 12초 | 5초 |
| 처리 방식 | 직렬 처리 (Serial) | 파이프라이닝 병렬 처리 (Pipelined) |
| 효율성 | 낮음 | 높음 |
🔸 핵심 요약
세그멘테이션(Segmentation)을 적용하면 데이터를 작은 단위로 나눠서 병렬 전송(Pipelining)이 가능함.
Store-and-Forward 방식에서는 이로 인해 전체 전송 시간이 크게 단축되며, 네트워크 자원을 효율적으로 활용할 수 있음.