게으른 개발자

Introduction 본문

cs/네트워크

Introduction

Tomato_Coffee 2024. 3. 12. 11:43

Network Edge = hosts(사용자), applications

Network Core = routers, network of networks

server(서버) = 24시간 가동, client 요청 처리


Network edge : connection - oriented service

  • Connection : data 전송을 미리 준비합니다.
    • Request/Respond
    • 통신하는 host 사이에서 set up "state" 
  • TCP - Transmission Control Protocol
    • Internet's connection - oriented service
  • TCP service
    • reliable(신뢰성), in-order byte-stream data transfer
      • loss 발생 시 = acknowledgements and retransmissions
    • flow control
      • sender : data를 보냄
      • receiver : data를 받음
      • sender는 receiver에 속도를 맞춰서 data를 보냄
    • congestion control
      • sender는 네트워크 상황에 맞춰서 data를 보내야 함.
  • TCP를 사용하는 분야
    • HTTP(Web)
    • FTP(file transfer)
    • Telnet(remote login)
    • SMTP(email)

Network edge : connectionless service

UDP - User Datagram Protocol

  • connectionless
  • unreliable data transfer
  • no flow control
  • no congestion control

data가 유실돼도 상관없을 때 사용.

장점 : 속도가 빠르다.

  • UDP를 사용하는 분야
    • streaming media
    • teleconferencing
    • DNS
    • Internet telephony
    • realtime voice

 

The Network Core

circuit switching

  • 출발지 -> 목저지로 가는길을 미리 "예약(reserved)"
    • 특정 사용자들만 사용가능
      • ex) 예전 유선 전화망
    • 보장된 성능
    • call setup 필요
    • dedicated resource (전용자원): no sharing
      • 최대 사용 가능한 인원이 정해져 있다.

Packet Swithing

  • 패킷을 올바른 방향(목적지)로 보냄
  • 패턴이 고정되어 있지 않다.
    • statistical multiplexing = 통계적 다양화
  • 우리가 인터넷에 사용하는 패턴에 적합하다. = 사용하는 사람의 인원수가 정해져 있지 않음. 
    • 우리는 하루중에 매번 정보를 요청하지 않는다. 따라서 항상 우리를 위해서 자원을 배분해 놓는것은 낭비
    • 사용자가 몰리지만 않으면 좋은 방식이다.

Four sources of packet delay = 패킷 지연의 4가지 원인

1. nodal processing = 패킷검사

  • bit error 체크
  • output link 결정하기
  • 에러 체크, 링크 결정하는데 걸리는 시간 = processing delay
  • solution = 라우터 성능개선

2. queueing

  • packet이 output link를 나가는 속도보다 들어오는 속도가 빠를때 발생
  • output Link에서 전송을 위해서 대기
  • 라우터의 혼잡도에 따라서 대기시간이 달라진다.
  • Buffer or Queue 에 들어온 패킷을 저장한다.
  • queueing delay
  • 큐의 크기
    • 최악의 경우 큐의 크기를 넘어서는 패킷(data)이 들어올 수 있다.
    • 이때는 패킷 유실 발생 = packet loss
    • 인터넷 packet loss의  90% 차치
  • Solution
    • 제일 골치 아프다...
    • queueing delay문제는 인터넷 사용자의 패턴에 달려있다.

3. Transmission delay

  • 첫 번째 비트가 전송 시작한 때무터 마지막 비트가 온전하게 link로 나갈때 까지 걸리는 시간
  • R = link bandwidth (bps)
  • L = packet length (bits)
  • time to send bits into link = L/R
  • solution
    • 케이블 공사 ==> bandwidth 증가
    • ex) 고속도로 4차선 -> 12차선

4. Propagation delay

  • 마지막 비트가 link에 올라와서 다음 라우터까지 도달할때까지 걸리는 시간
  • d = 물리적인 link의 길이
  • s = propagation speed in medium = 빛의 속도
  • propagation delay = d/s

TCP는 패킷 손실에 어떻게 대응할까?

  • 재전송 
    • 처음부터 재전송한다. -> TCP에서 사용하는 방식
    • 재전송에 대한 기능은 Network edge가 담당한다.
    • 모든 기증적인 매카니즘은 Network edge가 담당한다. 

라우터 - 단순하게 전송만 한다.

Packet : Bit 들의 집합.