본문 바로가기

Computer Science/Computer Systems

[Lecture 19] Networking / 네트워킹

#PART I: The Internet

인터넷이란 전 세계의 컴퓨터가 서로 연결되어 정보를 교환할 수 있는, 하나의 거대한 컴퓨터 통신망을 말한다.

  • 수십억 개의 연결된 컴퓨팅 장치
    • hosts = end systems
    • 인터넷의 "엣지"에서 네트워크 앱 실행
  • 패킷 교환 / Packet switches 
    • forward packet / 전달 패킷(데이터 모음)
      • 라우터, 스위치
  • 통신 회선 / Communication links
    • 광섬유, 구리, 라디오, 위성으로 구성됨
    • 전송 속도: 대역폭
  • 네트워크
    • 장치, 라우터, 링크 모음: 보통 어느 한 조직에서 관리

하늘색은 네트워크, X모양은 packet switches

  • 인터넷: 네트워크의 네트워크
    • 상호 연결된 ISP(Internet Service Provider)들
  • 프로토콜은 어디에나 존재한다
    • 메시지 보내기, 받기 제어
    • 예: HTTP(웹), 스트리밍 비디오, 디스코드, TCP, IP, WiFi, 4G, 이더넷
  • 인터넷 표준 / Internet standard
    • RFC: Request for Comments
    • IETF: Internet Engineering Task Force

# "Service" view of Internet

  • 애플리케이션에 서비스를 제공하는 인프라
    • 웹, 스트리밍 비디오, 멀티미디어 원격 회의, 이메일, 게임, 전자 상거래, 소셜 미디어, 상호 연결된 가전기기
  • 분산 응용프로그램에 프로그래밍 인터페이스 제공
    • 인터넷 전송 서비스에 앱을 "연결"하고 사용할 수 있는 "후크"
    • 우편 서비스와 유사한 서비스 옵션을 제공한다

#protocol

프로토콜은 무엇일까? 우리가 흔히 알고 있는 외교적인 의미의 프로토콜은 국가 또는 외교 행사의 사무를 관장하는 공식적인 절차 또는 규칙 체계를 말한다. 하지만 네트워크 프로토콜은 사람이 아니라 인터넷의 측면의 프로토콜을 의미한다. 인터넷 측면에서 프로토콜이란 컴퓨터와 컴퓨터 사이, 또는 한 장치와 다른 장치 사이에서 데이터를 원활히 주고받기 위하여 약속한 여러 가지 규약을 말한다. 이 규약에는 신호 송신의 순서, 데이터의 표현법, 오류 검출법 따위가 있다. 짧게 말해 프로토콜은 네트워크 엔티티 간에 주고받는 메시지의 형식, 순서 및 msg 전송, 수신에 대해 수행되는 조치를 정의한다

 

인간 프로토콜과 컴퓨터 네트워크 프로토콜:

  • Network edge:
    • 호스트: 클라이언트와 서버
    • 서버는 대부분 데이터 센터에 위치해 있다

#클라이언트 VS 서버

  • 연결 지향 프로토콜에서 사용되는 경우
    • 클라이언트: connection을 생성하는 쪽
    • 서버: 연결을 기다리는 쪽
  • 엔드 호스트를 분류하는 데 사용되는 경우
    • 클라이언트: 응용 프로그램 수준의 클라이언트 역할을 하는 프로그램을 대부분 실행하는 컴퓨터
    • 서버: 응용 프로그램 수준 서버 역할을 하는 프로그램을 대부분 실행하는 컴퓨터
  • 애플리케이션 레벨 프로토콜에서 사용되는 경우
    • 클라이언트: 무언가를 요청하는 당사자
    • 서버: 무언가를 제공하는 당사자

이제 다시 네트워크 구조로 한번 돌아가 보자. 네트워크 액세스, 물리적 매체에 접근할려면, 유선또는 무선 통신 링크가 필요하다. 물리적 매체란 두 지점 간의 통신을 위해 연결된 실제 매체를 말한다. 전화 회선, 동축 케이블, 마이크로파, 무선 설비, 광섬유 등이 있다

  • 네트워크 코어
    • 상호 연결된 라우터
    • 네트워크의 네트워크

#Host / 호스트

호스트란 네트워크를 구성하는 컴퓨터 시스템에서, 각각의 단말기로부터의 자료 처리 요구를 받아 처리하는 중심이 되는 컴퓨터를 말한다. 호스트는 데이터 패킷 전송을 한다.

  • 호스트 전송 기능
    • 응용 프로그램 메시지를 수신
    • 길이 L 비트의 패킷으로 알려진 더 작은 청크로 나눈다
    • 패킷을 전송 속도 R로 액세스 네트워크로 전송한다
      • 링크 전송 속도(링크 용량또는 링크 대역폭)

패킷 전송 지연 = L비트 패킷을 링크로 전송하는 데 필요한 시간 = L (bits) / R (bits/sec)

#링크: 물리적 매체

  • 비트: 송신기/수신기 쌍 간에 전파됨
  • 물리적 링크: 송신기와 수신기 사이에 있는 것
  • guided media: 신호가 고형 배지로 전파됨: (구리, 섬유, 등등으로 만들어짐)
  • unguided media:신호가 자유롭게 전파됨, 예: 라디오
  • Twisted pair (TP): 각 쌍별로 꼬아진 간격을 서로 다르게하여 누화를 감소시킨 차폐 케이블류
    • 절연 구리선 두 개로 꼬아서 만들어짐:
      • Category 5: 100 Mbps, 1 Gbps Ethernet
      • Category 6: 10Gbps Ethernet

#네트워크 및 물리적 매체 액세스

  • 엔드 시스템을 에지 라우터에 연결하는 방법
    • 주택용 접속망
    • 기관 액세스 네트워크(학교, 회사)
    • 모바일 액세스 네트워크(WiFi, 4G/5G)
  • 찾을 내용
    • 액세스 네트워크의 전송 속도(초당 비트 수)?
    • 사용자 간의 공유 또는 전용 액세스?

#네트워크 액세스: 케이블 기반 액세스

frequency division multiplexing (FDM): 서로 다른 주파수 대역에서 전송되는 서로 다른 채널

  • HFC: hybrid fiber coax
    • 비대칭: 최대 40Mbps – 1.2Gbs 다운스트림 전송 속도, 30-100Mbps 업스트림 전송 속도
  • 케이블 네트워크, 광섬유는 ISP 라우터에 홈을 연결
    • 홈 공유 케이블 헤드엔드 액세스 네트워크
  • 예시: 신호 상태 페이지. 4개의 다운스트림 채널(34-37개) 및 4개의 업스트림 채널(25-28개)

#Home Networks

#무선 액세스 네트워크

  • 공유 무선 액세스 네트워크가 "액세스 포인트"라고 하는 기지국을 통해 엔드 시스템과 라우터를 연결
  • Wireless local area networks (WLAN)
    • 일반적으로 건물 내부 또는 건물 주변(~30미터)
    • 802.11b/g/n (WiFi): 11, 54, 450 Mbps 전송 속도
  • Wide-area cellular access networks (WAN)
    • 모바일, 셀룰러 네트워크 운영자가 제공(~10's km)
    • 10’s Mbps
    • 4G 셀룰러 네트워크

Wireless local area networks (WLAN)
Wide-area cellular access networks (WAN)

#네트워크 액세스: 엔터프라이즈 네트워크

  • 회사나 대학 네트워크 등등
    • 유선, 무선 링크 기술의 혼합, 스위치와 라우터의 혼합 연결
      • 이더넷: 100Mbps, 1Gbps, 10Gbps의 유선 액세스
      • WiFi: 11, 54, 450Mbps의 무선 액세스 포인트

#The network core

  • 상호 연결된 라우터의 망
  • 패킷 교환 (packet-switching): 호스트는 응용 프로그램 계층 메시지를 패킷으로 분할한다
    • 한 라우터에서 다음 라우터로 패킷 전달, 소스에서 대상으로의 경로에 있는 링크를 통해 전달
    • 전체 링크 용량으로 전송되는 각 패킷

#두 가지 주요 네트워크 핵심 기능

  • Forwarding / 포워딩:
    • 로컬 작업: 도착 패킷을 라우터의 입력 링크에서 적절한 라우터 출력 링크로 이동
  • Routing / 라우팅:
    • 글로벌 작업: 패킷이 사용하는 소스-대상 경로 결정
    • 라우팅 알고리즘

#인터넷 구조: "네트워크의 네트워크"

  • 호스트가 ISP(인터넷 서비스 공급자)에 액세스하여 인터넷에 연결
    • 주거용, 기업용(기업, 대학, 상업용) ISP
  • 액세스 ISP는 차례로 상호 연결되어야 한다.
    • 그래야 두 호스트가 서로 패킷을 보낼 수 있다
  • 결과적으로 발생하는 네트워크는 매우 복잡하다.
    • 단계적으로 인터넷 구조를 설명하기 위해 아래 사진들을 보자
  • 수백만 개의 액세스 ISP를 고려할 때, 어떻게 그것들을 함께 연결할 수 있을까?

각 액세스 ISP를 서로 직접 연결하면 확장되지 않는다 O(N^2).

옵션: 각 액세스 ISP를 하나의 글로벌 중계 ISP(global transit ISP)에 연결할 수 있다. 고객과 공급자 ISP는 경제적 합의를 맺고 있다

그러나 하나의 글로벌 중계 ISP(global transit ISP)가 실행 가능한 비즈니스라면 global transit ISP에 연결을 원하는 경쟁자가 있을 것이다.

그리고 지역 네트워크는 ISP에 접속망을 연결하기 위해 증가 할 수 있다

또한 컨텐츠 공급자 네트워크(예: Google, Microsoft, Akamai)는 최종 사용자에게 서비스와 컨텐츠를 제공하기 위해 자체 네트워크를 실행할 수 있다.

  • "Center": 잘 연결된 대규모 네트워크의 수가 적다
    • "tier-1" 상용 ISP(예: 레벨 3, 스프린트, AT&T, NTT), 국내 및 국제 범위
    • 콘텐츠 공급자 네트워크(예: Google, Facebook): 데이터 센터를 인터넷에 연결하는 사설 네트워크로, 종종 Tier-1, 지역 ISP를 우회함.

#미국 Tier-1 ISP Network map

#PART II: On Delay & Throughput

패킷 전환: 저장 후 전달 (store-and-forward)

  • 전송 지연: L-비트 패킷을 링크로 전송(push-out)하는 데 걸리는 L/R 초
  • 저장 및 전달(Store and forward): 전체 패킷이 다음 링크에서 전송되기 전에 라우터에 도착해야 한다
  • End-end delay: 2L/R(위), 전파 지연이 0인 경우
  • L = 10 Kbits
  • R = 100 Mbps
  • one-hop transmission delay = 0.1 msec

#패킷 전환: queueing delay, loss

  • Packet queuing and loss: 링크에 대한 도착 속도(bps)가 일정 기간 동안 링크의 전송 속도(bps)를 초과하는 경우
    • 패킷이 대기열에 들어감, 출력 링크에서 전송 대기
    • 라우터의 메모리(메모리)가 가득 차면 패킷이 손실될 수 있음

#Packet delay: four sources

  • d proc : nodal processing
    • 비트 오류를 검사
    • 출력 링크 확인
    • 일반적으로 <msec
  • d queue : queueing delay
    • 출력 링크에서 전송 대기 시간
    • 라우터의 혼잡 수준에 따라 다름
  • d trans: transmission delay
    • L: 패킷 길이(비트)
    • R: 링크 전송 속도(bps)
    • d trans = L/R
  • d prop : propagation delay:
    • d: 물리 링크의 길이
    • s: 전파 속도(~2x10^8m/sec)

#Packet queueing delay

  • R: 링크 대역폭(bps)
  • L: 패킷 길이(비트)
  • a: 평균 패킷 도착률
  • La/R ~ 0: 평균 대기열 지연이 작음
  • La/R -> 1: 평균 대기열 지연이 큼
  • La/R > 1: 도착하는 "작업"이 서비스할 수 있는 것보다 많다 (평균 지연 무한)

#Throughput

  • 처리량: 컴퓨터 시스템의 처리 능력을 나타내는 개념으로, 단위 시간당 처리할 수 있는 업무 단위량. 즉, 송신자에서 수신자로 비트가 전송되는 속도(비트/시간 단위)
    • instantaneous throughput: 주어진 시점의 속도, 즉 순간적인 처리량
    • average throughput: 정기적으로 계산된 평균 처리량

Rs < Rc일때 평균 end-to-end 처리량은 어떻게 될까?

반대로 Rs > Rc일때 평균 end-to-end 처리량은 어떻게 될까?

  • bottleneck link
    • end-end 처리량을 제한하는 end-end 경로의 링크

#Throughput: network scenario

연결당 엔드 엔드 처리량: 최소(Rc, Rs, R/10)

실제로 Rc 또는 Rs는 종종 병목현상(bottleneck)을 일으킨다

10개의 connection이(골고루) backbone bottleneck link R(bits/sec) 공유

#Part III: On Layering

프로토콜 "Layers" 및 참조 모델

  • 네트워크는 "조각"이 많고 복잡하다
    • 라우터
    • 다양한 매체의 링크
    • 응용 프로그램 (application)
    • 프로토콜
    • 하드웨어, 소프트웨어
  • 그렇다면, 네트워크 구조를 조금 더 쉽게 체계화 시킬수는 없을까?

#Why layering?

  • 복잡한 시스템 처리 
  • 명시적 구조는 복잡한 시스템 조각의 식별, 관계를 가능하게 한다 (layered reference model)
  • 모듈화를 통해 유지보수 및 시스템 업데이트가 용이함
    • layer의 서비스 구현 변경: 시스템의 나머지 부분에 대한 투명성
  • 다른 복잡한 시스템에서도 계층화를 사용할 수 있을까?

#Internet protocol stack

  • 애플리케이션: 네트워크 응용 프로그램 지원
    • IMAP, SMTP, HTTP
  • Transport: process-process 데이터 전송
    • TCP, UDP
  • 네트워크: 원본에서 대상으로의 데이터그램 라우팅
    • IP, routing protocols
  • 링크: 인접 네트워크 요소 간의 데이터 전송
    • Ethernet, 802.11 (WiFi), PPP
  • physical:  "전선"의 비트

#Services vs Protocols

layer k는 프로토콜을 통해서만 peer layer k와 상호 작용할 수 있다

#Encapsulation

#TCP/IP

#일반적인 구현