이 포스팅은 컴퓨터 네트워크 시리즈 3 편 중 1 번째 글 입니다.

  • Part 1 - This Post
  • Part 2 - 02: 네트워크 넓게 보기 Part 2
  • Part 3 - 03: HTTP
▼ 목록 보기

기본 용어 정리

프로토콜

서로 다른 개체들이 서로 간의 의사소통을 하기 위해 만들어놓은 규약

사람이 대화를 하는 과정에도 일정한 흐름과 규약이 존재한다. 어떠한 객체가 소통하기 위해서는 서로의 방식을 맞추어야 한다.

패킷

한번에 전송할 데이터의 크기

편지를 내가 썼다. 그 편지를 누군가한테 보내는데, 글자하나하나를 보내지 않는다. 이 때 편지는 우체부 아저씨가 누군가한테 배달하는 단위가 된다. 이와 같은 개념이 패킷이다. 패킷은 데이터를 보내는 데 있어 발생하는 단위이다. 이 패킷의 구조에 대해서는 나중에 알아보자.

대역폭

수도관의 크기

결국 데이터는 흐름이다. 그렇기 때문에 어떤 관을 따라간다고 생각할 수 있다. 이 때 관의 지름이 대역폭이다. 한번에 보낼 수 있는 데이터의 양이라 생각하면 된다. 이 크기가 클수록 많은 데이터를 초 당 전송할 수 있는 양이 늘어난다. 인터넷 속도와 직결된다.

트래픽

어떤 통신장치나 시스템에 걸리는 부하(전송량)

요청에 대해 전송해주는 시간 대비 데이터의 총량을 말한다.

네트워크 구조

image

네트워크 엣지(Network Edge)

말단 device, 우리가 사용하는 대부분의 기기에 해당한다.

네트워크 코어(Network Core)

엔드 시스템을 연결하기 위한 중간의 매개들을 말한다.

물리적 링크

코어와 엣지 사이에 존재하는 데이터 전송 선과 같은 것들을 의미한다.

네트워크의 내부

라우터

image

네트워크 내부에 존재하는 장치(네트워크 코어)들로써, 라우터는 사용자들이 보낸 메세지를 목적지까지 전달하는 역할을 가지고 있다. 결국 라우터는 데이터를 전달하는 장치이다.

라우터의 데이터 전달방식

image

  1. Circuit Switching

    • 출발지부터 목적지까지의 대역폭을 예약해놓은 상태로써, 한번에 데이터를 전달하는 것이다. 하나의 회선을 할당받아 (회선을 독점하여) 데이터를 전달하기 때문에 아무런 방해없이 한번에 전달할 수 있다. 예시로 전화망이 있다. 전화를 걸게되면 전화를 건 송신자로부터 수신자의 전화기에 이르기까지의 경로를 찾아내고, 한번 설정된 송신자와 수신자의 경로는 데이터(음성) 이 전송되는 동안 계속 유지되는 것이다. 이 예로 부터 Circuit Switching은 언제든지 계속 사용하는 시스템에 적합하다는 것을 알 수 있다.
장점 단점
대역폭이 결정되므로, delay가 발생할 수 없다. 일정 사용자에게 할당해주므로 낭비가 발생한다.

image

  1. Packet Switching

    • 사용자가 보내는 데이터가 패킷단위로 잘게 나뉘어서 전달되는 것이다. 패킷은 출발지에서 다음 라우터로 전송하기 이전에 저장하고 어느 경로로 갈지 결정하는 Store and Forward 방식을 취한다. 패킷의 헤더에는 출발지(source) 와 목적지(destination) 에 대한 정보가 들어있다. 대부분의 경우는 이 사용법을 택한다. 인터넷을 사용하는 패턴이 Packet Switching 에 적합하기 때문이다. 연속된 요청이 필요없기 때문에 대역폭을 할당할 필요가 없다.
장점 단점
짧게 사용하는 다수의 사용자도 커버가 가능하다. 짧은 시간에 많은 요청이 들어올 경우 delay가 발생한다.

Packet Delay

패킷스위칭을 시 라우터는 패킷단위의 데이터를 전달받고 목적지로 전달하는 역할을 수행한다. 이 과정에서 라우터가 보낼 수 있는 대역폭보다 더 많은 유저가 더 빠른 속도로 데이터를 보낸다면 딜레이가 생길 수 밖에 없다. 톨게이트에 사람이 마구 몰리는 상황을 상상해보자.

Delay의 구분

image image

Processing Delay

패킷 자체를 평가한다.

필연적인 딜레이 중 하나로써, 목적지에 따른 어느 라우터로 전송할 지 결정하는 것에 대한 지연이다. 이 과정에서는 패킷의 형식을 검사하고, 목적지를 판단하는 과정을 수행한다.

Queueing Delay

들어온 패킷들을 줄세운다.

데이터를 전달하는 라우터의 큐에 들어가서 앞서서 도착해 큐에 대기중인 패킷들이 모두 나갈때까지 걸리는 지연이다. (큐에 얼마나 많이 들어가있는지에 따라서 큐잉 딜레이는 가변적)

Transmission Delay

패킷하나가 모두 전송되기 까지 걸리는 시간

라우터의 큐 제일 앞에 배치되어서 패킷 하나가 온전하게 마지막 비트까지 최종 목적지로 가는데까지의 지연이다. 패킷은 전송의 한 단위이기 때문에, 하나의 패킷이 모두 전송이 되어야 sender는 전송이 되었다고 판단한다. 예를 들면 패킷의 bit가 100bits이고 대역폭이 1bps 이면 1초당 1bit만 전송할 수 있기 때문에 100초 후에 이 패킷은 전송되었다고 판단할 수 있다.

Propagation Delay

실제로 비트가 선을 따라 전송되는데 걸리는 시간

마지막 비트까지 대역폭에 올라오고, 이후에 마지막 비트가 최종 목적지까지 도달하는 물리적 시간이다. 이 속도는 전자기파의 속도라 사실 많은 영향을 주지는 않는다. ( 가까우면 빨리, 거리가 멀면 오래 걸림)

결과적으로 라우터에서 패킷을 받을 때 걸리는 nodal delay 는 위 4가지의 지연의 합으로 표현된다.

\[nodal = proc + queue + trans + prop\]

Delay 줄이기

Processing Delay

라우터에 좋은 처리장치를 달아서 패킷에 대해 판단하는 속도를 향상시킨다.

Queueing Delay

사용자의 패턴에 의존하기 때문에 불가능하다. 통계적 기법을 사용해야 한다.

Transmission Delay

패킷하나가 빠져나가는 시간을 줄인다. 초당 선송할 수 있는 양을 늘리면 된다. 마치 톨게이트에서 5차선이었던 것을 10차선으로 바꾸면 한번에 빠져나갈 수 있는 차량의 수가 증가한다. 이 때, 이 차선에 대응되는 개념이 대역폭이다.

Propagation Delay

빛의 속도는 세상에서 가장 빠르다.. 불가능하다.

Packet Loss

큐에 패킷이 가득차있는 경우 버려진다. 라우터의 큐에 삽입되기 이전에 큐에 패킷이 가득차있는 경우 큐의 저장공간이 없기 때문에 Packet Loss 가 발생하며, 패킷은 버려진다.

TCP 작동

이런 경우 안전한 전송을 담당하는 Client 쪽의 TransportLayer 계층의 TCP 프로토콜이 해당 패킷을 재전송한다. 잘 몰라도 된다. 나중에 배운다.

Reference

KOCW 이석복 교수님 - 컴퓨터네트워크