본문 바로가기

Computer Network

[Lecture] 컴퓨터 네트워크 기초

ARPAnet (알파넷)

- 미국 국방부에서 관련 기간의 정보 공유를 위해 개발한 컴퓨터의 연동망

- 최초로 컴퓨터간의 네트워크 통신이 연결돼 Packet 교환을 성공한 기술

- 4개의 호스트 컴퓨터를 연결하는 네트워크로 구축

 

현재의(개념적인) 인터넷 모습

 

- 노드 개수를 셀 수 없다

- 계속 팽창하고 있다

 

인터넷 상에서 우리의 위치는?

가장자리 (Internet edge)

// 사용자는 노트북을 열고 닫으며 인터넷 접속을 기호에 따라 할 수 있다. Web Server도 가장자리에 포함된다.

// 일반적으로 사용자와 서비스 사이에서 데이터 교환 및 처리가 가장 활발히 일어나는 지점으로 생각한다.

 

인터넷 상에서 가운데(Internet core)는?

Router

* 메세지를 전달받아 목적지까지 옮기는 기능

 

 

A closer look at network sturcture

network edge :

application and hosts

 

network core :

routers

network of networks

 

원기둥에 X표시를 하는 것이 Router의 기호이다

Router 사이 link의 종류는 다양하다(유선, 무선(Wifi, LTE 등))

 

The network edge

- end systems(hosts)

  • run application programs
  • e.g. Web, email

- client / server model

  • client host requests, receives service from always-on werver
  • e.g. Web browser/server, email client/server

- peer-peer model

 

client와 server(24시간동안 요청에 대한 응답을 해야한다)는 인터넷에서 제공하는 통신서비스로 데이터를 주고받는다

  • Connection oriented service (TCP)
  • Connectioness service (UDP)

 

Network edge: connection-oriented service

Goal : data transfer between end systems

 

Connection : prepare for data transfer ahead of time

  • Request / Respond
  • set up "state" in two communicating hosts

TCP - Transmission Control Protocol

* Internet's connection-oriented service

즉, connection-oriented service를 제공하는 통신방법을 뜻한다

 

TCP service (아래와 같은 기능이 제공된다)

  • reliable(메세지 유실 X), in-order byte-stream data transfer(메세지 순서유지)

상태로 사용자에게 제공해준다 e.g. 웹 브라우저, 영화 등에 사용된다

데이터 손실이 일어날 경우, 맨 처음으로 가서 다시 재전송한다

 

  • flow control (sender won't overwhelm receiver)

메세지를 보내는 속도를 알아서 맞춰준다

'알아서' : receiver가 받는 속도에 맞춰서 sender의 재생속도를 조절한다

 

  • congestion control (senders "slow down sending rate" when network congested)

두 시스템 사이에 연결되어 있는 네트워크가 감당가능할만큼의 능력치를 보내준다

 

 

Network edge: connectionless service

Goal : same as before

 

UDP - User Datagram Protocol

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

즉, 아무것도 안해준다 (내 맘대로 보낸다)

아무것도 고려하지 않고 sender가 보내기만 하면 되기 때문에, 속도가 빨라질수는 있으나 장점은 아니다

제대로 도착되는지 확인이 안되기 때문이다

 

그럼, 왜 아무 기능도 제공해주지 않는 UDP를 사용할까?

실시간 음성정보는 데이터가 유실되어도 상관이 없다 (unreliable)

TCP를 사용할 경우 컴퓨팅 리소스와 네트워크 리소스로 인해 비용이 높기 때문에, 이럴경우엔 UDP를 사용하는게 좋다

TCP UDP
Packet (message : like 100만원) Packet (message : like 뭐해? 같은 쓸데없는 말)
like 등기 (안전하게 도착되지만 비용이 비싸다) like 우편 (도착보장이 확실하지 않지만 비용이 싸다)

 

What's a protocol?

대화의 약속이다. 중요한 메세지를 주고받기 전 준비동작을 규정하는 역할을 한다(서로 다른 개체간 대화)

서로 다른 기기나 소프트웨어가 통신할 때 정확하고 일관된 방식으로 상호 작용할 수 있도록 규정된 규칙들의 집합이다

 

 

The Network Core

mesh of interconnected routers

각 라우터가 서로 직접 연결되어 있어 네트워크에서 여러 경로를 통해 통신할 수 있는 구조

 

How is data transferred through net?

  • circuit switching

dedicated circuit per call : telephone net

통화와 같은 실시간 통신에 주로 사용되며, 전송 중에 고정된 경로를 확보하여 데이터를 전송한다

 

  • packet-switching

data sent thru net in discrete chunks

데이터를 작은 패킷 단위로 나누어 전송하며, 각 패킷은 독립적으로 전송되어 목적지에서 다시 조립된다

 

The Network Core : Circuit Switching

미리 가는 길을 예약해서, 특정 사용자만이 사용할 수 있도록 한다 (e.g 예전 유선 전화망)

 

데이터가 전송되기 전에 두 통신 단말 간에 전용 경로 또는 회로를 설정하고, 이를 통해 데이터가 한 번에 전송된다.

이 설정된 회로는 통신이 완료될 때까지 계속 사용되며, 다른 통신이 사용할 수 없다. (리소스 낭비 발생 가능성 Y)

 

 

The Network Core : Statistical Multiplexing

그때 그때 올바른 방식으로 ! 유연하게 !

 

TDM(시간 분할 다중화) 방식에서 사용되는 프레임이 일정한 주기로 회전하면서 각 호스트에게 동일한 시간 슬롯이 할당된다. 여러 호스트가 동일한 통신 매체를 공유하면서 각각이 정해진 시간에 데이터를 전송할 수 있게 된다.

 

차이점

Packet switching이 더 많은 사용자를 허용한다

 

가정

나가는 link의 속도 : 1Mb/s(Mbits/sec) link (bandwidth가 클수록 좋다)

각 사용자 : 100 kb/s when active, active 10% of time

 

  • circuit-switching:

10 users

  • packet switching:

몇명 가능한지 모른다 (제약이 없다)

active가 시간의 10%를 차지한다고 가정했을때, 약 35명의 사용자를 들일 수 있다.

10명이 동시에 몰리는 확률은 0.0004보다 작다

 

보통 우리는 영상을 클릭하고, 한참 후에야 새로운 영상을 클릭한다.

인터넷을 사용하지 않는 시간이 더 길다는 것이다. 따라서, 10명만 사용하게 하면 낭비이다.

10명이 정확히 동시에 몰리지 않는다면 분산돼서 제약없이 사용이 가능하다.

 

Four sources of packet delay

  • nodal processing (=processing delay) 
    • check bit erros
    • determine output link
  • 목적지에 따라 알맞은 outgoing edge로 연결해줘야하는데, 이때 delay가 발생한다

 

  • queueing delay
    • time wating at output link for transmission
    • depends on congestion level of router
  • 나가는 것보다 들어오는 것이 더 빠를 경우, 임시 buffer or queue에 줄을 서게된다(임시저장)
  • 여기서 큐의 크기는 무한대가 아니다. 크기를 넘어설 경우 새로운 데이터는 그냥 버려진다. (데이터 유실)
  • 인터넷 상 대부분의 유실이 queue가 터져서 발생한다

 

  • Transmission delay
    • R = link bandwidth (bps)
    • L = packet length (bits) / packet(bit의 집합)
    • time to send bits into link = L/R
  • 첫번째 비트부터 마지막 비트까지 나가는 시간 (queue에서 다 기다리고 나갈 때 걸리는 delay)

 

  • Propagation delay
    • d = length of physical link
    • s = propagation speed in medium (빛의 속도)
    • propagation delay = d/s (link의 길이 / 빛의 속도)
  • link에 올라와서 router까지 도달하는 시간

 

Delay를 줄이기 위해선?

1. 좋은 router를 사용하면 processing delay를 줄일 수 있다

2. bandwidth를 늘리면 transmission delay를 줄일 수 있다

3. propagation delay는 빛의 영역이기 때문에 따로 줄일 방법이 없다

4. queueing delay는 사용자들에 의해 종합적으로 기여된(명절에 차막히는것 같이) 것이므로 방법이 없다

네트워크상 딜레이는 거의 queueing delay에서 발생한다

 

queueing delay과정에서 유실된 데이터는 어떻게 되는걸까? TCP에선 데이터를 보장한다고 했는데 !

> 끝단의 호스트나 노드에 의해 유실된 packet을 재전송한다

직전 router가 재전송하지 않는 이유 : 사이에 있는 router는 단순작업을 빨리하는데 목적을 두게 한다 (이걸 감당하기도 바쁨)

라우터가 주로 네트워크의 흐름을 빠르게 전달하고 패킷을 빠르게한다. 라우터가 패킷의 유실을 모두 감지하고 재전송하려면 이러한 기능을 처리하는데 필요한 리소스가 크게 증가하고, 효율성이 저하될 수 있다.