컴퓨터 네트워크 02주차 Introduction/Application layer

2022. 12. 23. 13:09CS/컴퓨터네트워크

주 교재 : Computer Networking : A Top-Down Approach

 

2주차 Introduction/Application Layer

  1. Performance: loss, delay, throughput
  2. Security
  3. Protocol layers, service models
  1. Priciples of network applications

1. Performance: loss, delay, throughput

 

How do loss and delay occur?

packets queue는 router buffer에 있다.

  • packets queue는 자기 차례를 기다린다.
  • link에 도착하는 정도가 output link의 용량을 넘으면, packet loss 발생

Packet loss

  • queue(aka buffer)의 용량을 넘으면 loss 발생
  • Loss 처리 : 재전송, 안하는 경우, etc...

Packet Delay : four sources

Packet Delay 계산식

d_proc : nodal processing

  • 유효성 검사
  • output link 결정

d_queue : queueing delay

  • 전송되기 전까지 queue에서 기다리는 시간
  • router의 정체 수준에 따라 다름
d_trans : transmission delay
  • L : packet length
  • R : link transmission rate
  • d_trans : L/R

d_prop : propagation delay(전파지연)

  • d : length of physical link
  • s : propagation speed(매체 속도)
  • d_prop = d/s

Caravan Analogy(차에 비유)

  • 차의 속도 = 100 km/hr (d_trans)
  • 톨게이트에서 걸리는 시간 = 12 sec (d_proc)
  • 차가 10대 있을 때 모든 차가 고속도로에 진입하는 시간 = 12*10 = 120 sec (d_queue)
  • 차가 고속도로를 통과하는 데 걸리는 시간 = 1 hr (d_prop)
  • 마지막 차가 다음 톨게이트로 가는 시간 : 62 m

Queueing Delay

  • R : link bandwidth
  • L : packet length
  • a : average packet arrival rate(패킷 도착 속도)
  • La/R ~ 0 : avg. queueing delay가 작다
  • La/R -> 1 : avg. queueing delay가 크다
  • La/R > 1 : delay가 무한이다.
  • 고속도로 교통 체증 생각하면 편함.

Traceroute

  • Router를 추적해서 내 단말에서 목적지까지 거쳐가는 router를 확인할 수 있다.
  • CMD창에서 tracert [목적지]

Throughput

  • Throughput(이동량) : sender에서 receiver로 전송되는 bits의 양
  • core network의 link마다 크기가 다름

  • 각 link마다 용량이 다르기 때문에 병목 현상이 부분마다 생김.
  • 병목현상 해결을 위해 분산 네트워크가 개발되었고, Edge server라는 유저 가까이에 있는 서버가 생김

2. Security

  • virus
  • worm
  • spyware
  • DDos

Denial of Service (Dos)

  1. 타겟을 정하고
  2. 의미없는 메시지를 계속해서 던짐
  3. 서버가 마비

Dos

packet sniffing

  • 사용자가 보낸 데이터를 중간에 빼감

Sniffing

IP spoofing

  • 잘못된 주소로 데이터를 보냄

spoofing


3. Protocol layers, service models

Internet Protocol Stack

  • application : network application을 구성함
    - IMAP, SMTP, HTTP
  • transport : process - process로 데이터 전송
    - TCP, UDP
  • network : 출발지에서 목적지로 routing
    - IP, routing protocols (제일 중요)
    - TCP/IP = transport layer + network layer
  • link : router에서 router로 데이터를 보내는 것
    - Ethernet, 802.11 (WiFi), PPP
  • physical : 실제 선을 따라 가는 bits

Encapsulation

  • 자기 계층의 header를 뺀 나머지 header를 payload로 바꾸는 행위

1. Priciples of network applications

application에 필요한 protocol

  • HTTP
  • SMTP, IMAP
  • DNS

    이것들을 socket API 위에 얹어서 개발한다고 생각

 

Client-server paradigm

  • examples : HTTP, IMAP, FTP
  • 서버에 트래픽이 몰리면 속도가 저하됨

Peer-peer paradigm

  • 서버가 없다.
  • examples : P2P file sharing(torrent), 블록체인(성격은 좀 다르나 유사)
  • 다수에게서 데이터를 받는다는 장점이 있어 Client-server 구조에 비해 속도가 빠름

Processes Communicating

  • process : host 안에서 동작하는 프로그램
  • Inter-process communication(IPC) : 같은 host 안에서 두 process가 소통하는 것 

Sockets

  • 프로세스는 socket을 통해 message를 수신/발신한다.

Addressing Processes

  • message를 받기 위해 process는 반드시 식별자(identifier)가 있어야함.
  • identifier = IP address + port number
  • IP = 각각의 기기를 구분하기 위한 고유 번호
  • Port = 데이터를 받을 프로세스를 구분하기 위한 번호
    ex) 친구 노트북의 IP를 찾고, 카카오톡을 찾아야 서로 카톡을 보내는데, 카카오톡을 찾아주는 것이 port
    HTTP server : 80
    mail server : 25
    0 ~ 1023 (Well-known number)
    1024 ~ 65535 (Custom)

An Application-layer Protocol Defines

  • types of message exchaged
    - ex) request & response
  • message syntax
  • message semantics
  • rule
  • open protocol
    - RFC에 정의 되어 있음

What transport service does an app need?

  • data integrity(데이터 무결성)
    - 전송되는 데이터가 변하면 안됨
  • timing
    - 몇몇 앱은 낮은 딜레이가 요구됨
  • throughput
    - 최소한의 throughput이 필요함
  • security
    - encryption, data integrity, etc...

Transport service requirements : common apps

application data loss throughput time sensitive
file transfer/download loss 허용 X 유동적 X
e-mail loss 허용 X 유동적 X
Web documents loss 허용 X 유동적 X
real-time audio/video loss 허용 audio : 5Kbps-1Mbps
video : 10Kbps-5Mbps
10's msec
streaming audio/vide loss 허용 위와 같음 few secs
interactive games loss 허용 Kbps+ 10's msec
text messaging loss 허용 X 유동적 O and X

 

Internet transport protocols services

  • TCP service : 신뢰성
    - reliable transport(신뢰성)
        - flow control : 받는 쪽에서 버퍼가 꽉 차면 보내는 쪽에서 조절
        - congestion control : 혼잡도 조절
        - connection-oriented : client와 server 사이에 길이 필요함
        - 제공하지 않는 것 : timing, minimun throughput guarantee, security(app단에서 구현)
  • UDP service : 속도
    - unreliable data transfer : 속도가 중점이기 때문에 데이터의 신뢰성은 고려하지 않음 = Loss 발생을 고려하지 않음
    - 제공하지 않는 것 : reliability, flow control, congestion control, timing, throughput guarantee, security, connection setup

Securing TCP

  • TCP & UDP sockets은 보안을 고려하지 않음
  • Transport Layer Security (TLS) : Transport 단에서 보안을 강화하는 프로토콜

다음 주부터 제대로 들어감.

아직까진 맛보기