Computer Network Chapter 01

Jeong-yun Lee·2025년 3월 10일

Computer Network

목록 보기
1/4

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: 패킷이 완전히 수신된 후에야 다음 링크로 전달

  • 한 링크의 전송 시간:

    전송 시간=LR\text{전송 시간} = \frac{L}{R}

    → L: 패킷 크기 (bits), R: 링크 속도 (bps)

  • 예시:
    L = 7.5 Mbit, R = 1.5 Mbps → 링크당 5초 소요
    총 2링크를 거치면:

    총 전송 시간=2×LR=10 초\text{총 전송 시간} = 2 \times \frac{L}{R} = 10\ \text{초}


🔹 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%

분석

  1. 회선 스위칭(Circuit Switching)
    → 최대 10명까지 수용 가능

  2. 패킷 스위칭(Packet Switching)
    → 35명 사용자 중 11명 이상 동시에 활성일 확률:

P(X11)=k=1135(35k)(0.1)k(0.9)35kP(X \geq 11) = \sum_{k=11}^{35} \binom{35}{k} (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 간 직접 연결 시 연결 수:
O(N2)O(N^2)

  • 글로벌 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\text{Total Delay} = d_{\text{proc}} + d_{\text{queue}} + d_{\text{trans}} + d_{\text{prop}}

지연 종류설명
처리 지연(Processing Delay)오류 검사, 라우팅 결정 등 (보통 ms 미만)
큐잉 지연(Queueing Delay)큐에서 대기하는 시간, 혼잡도에 따라 가변
전송 지연(Transmission Delay)LL: 패킷 길이, RR: 링크 속도 → L/RL/R
전파 지연(Propagation Delay)거리 dd, 전파 속도 ssd/sd/s

🔹 1.4.3 Caravan 유추 비유 (Caravan Analogy)

  • 자동차 → 비트(bit), 캐러밴 → 패킷(packet)

예시

  • 자동차 속도: 100 km/h
  • 톨게이트 지연: 차량당 12초
  • 차량 수: 10대

총 시간 =

120 sec+60 min=62 분120\ \text{sec} + 60\ \text{min} = \boxed{62\ \text{분}}

속도 1000 km/h, 톨게이트에서 1분 소요 →
앞 차량이 빠르게 다음 톨게이트에 도착 가능 (병렬 처리 개념과 유사)


🔹 1.4.4 Queueing Delay와 트래픽 강도 (Traffic Intensity)

📌 비트 기반 수식

Traffic Intensity (TI)=LaR\text{Traffic Intensity (TI)} = \frac{L \cdot a}{R}
기호의미
LL패킷 크기 (bits)
aa평균 도착률 (packets/sec)
RR링크 전송 속도 (bps)

해석

  • TI<1TI < 1: 안정적, 혼잡 없음
  • TI1TI \approx 1: 경계 상황
  • TI>1TI > 1: 혼잡, 큐잉 지연과 손실 발생

📌 큐잉 이론 기반 수식

ρ=λμ\rho = \frac{\lambda}{\mu}
기호의미
λ\lambda평균 도착률
μ\mu서비스율 (1초당 처리 가능한 패킷 수)

→ 두 수식은 다음처럼 연결됨:

ρ=aR/L=LaR\rho = \frac{a}{R/L} = \frac{L \cdot a}{R}

🔹 1.4.5 GPS와 푸아송 분포

  • GPS (Generalized Processor Sharing): 각 흐름이 최소 처리율 보장 → 대기 시간이 유한하게 제한됨(bounded)
  • 푸아송 분포(Poisson Arrival): 시간 tt 동안 kk개의 패킷이 도착할 확률
P(N(t)=k)=(λt)keλtk!P(N(t)=k)= \frac{(\lambda t)^k e^{-\lambda t}}{k!}

→ GPS가 있으면 푸아송 분포 기반 도착에도 안정적인 처리 가능


🔹 1.4.6 실제 인터넷에서의 지연 및 경로

  • traceroute 도구를 통해 라우터별 왕복 시간 측정 가능

🔹 1.4.7 패킷 손실 (Packet Loss)

  • 버퍼 용량 초과 시 패킷 폐기
  • TCP는 재전송, UDP는 무시

🔹 1.4.8 처리량 (Throughput)

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


  • 전체 경로 중 가장 느린 링크가 전체 처리량을 결정
min(Rc,Rs,R/10)\min(R_c, R_s, 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)
  • 비교 대상:
    1. 세그멘테이션 없음 (Segmentation Off)
    2. 세그멘테이션 있음 (Segmentation On, 예: 1Mb 단위)

🔹 ① 세그멘테이션 없음 (Segmentation Off)

흐름

  • 8Mb 데이터를 2Mbps로 전송:
8 Mb2 Mbps=4 초\frac{8\ \text{Mb}}{2\ \text{Mbps}} = 4\ \text{초}
  • 각 스위치는 전체 데이터를 모두 받은 후에야 다음 홉으로 전송 시작
  • 따라서 각 홉마다 4초씩 소요
총 전송 시간=4+4+4=12 초\text{총 전송 시간} = 4 + 4 + 4 = \boxed{12\ \text{초}}

🔹 ② 세그멘테이션 있음 (Segmentation On)

설정

  • 데이터: 1Mb 세그먼트 × 8개
  • 각 세그먼트 전송 시간:
1 Mb2 Mbps=0.5 초\frac{1\ \text{Mb}}{2\ \text{Mbps}} = 0.5\ \text{초}

파이프라이닝 구조

세그먼트송신자 → 스위치1스위치1 → 스위치2스위치2 → 수신자
#10~0.5초0.5~1초1~1.5초
#20.5~1초1~1.5초1.5~2초
............
#83.5~4초4~4.5초4.5~5초
  • 총 전송 시간:
총 전송 시간=5 초\text{총 전송 시간} = \boxed{5\ \text{초}}

✅ 비교 요약

항목세그멘테이션 없음세그멘테이션 있음
총 전송 시간12초5초
처리 방식직렬 처리 (Serial)파이프라이닝 병렬 처리 (Pipelined)
효율성낮음높음

🔸 핵심 요약

세그멘테이션(Segmentation)을 적용하면 데이터를 작은 단위로 나눠서 병렬 전송(Pipelining)이 가능함.
Store-and-Forward 방식에서는 이로 인해 전체 전송 시간이 크게 단축되며, 네트워크 자원을 효율적으로 활용할 수 있음.

profile
push hard 🥕

0개의 댓글