본문 바로가기
컴퓨터 네트워크

네트워크 3강 - Metric, Network, Protocol

by N.Damgom 2020. 8. 4.

이번 글도 본격적인 네트워크 얘기를 하기 전 네트워크 전반적으로 사용되는 용어를 설명하는 글이다.

 

 


Metric

  • Metric : 무엇을 측정할 것인가?

    • Metric이란? 지표라고 생각하자. 운영체제든 자료구조든 어떤 과목을 듣던지 이런 방식에는 이런 장단점이 있고 저렇게 하면 이런 장단점이 있다는 얘기는 빠지지 않고 나온다. 좀 더 크게 생각한다면 문제를 해결하는 여러 방법들은 각각 장단점이 있다.

    • 예를 들어 알고리즘 속도를 빠르게 한다면 메모리를 많이 사용하고 메모리를 적게 사용한다면 추가적인 연산이 필요해서 속도가 느려진다.

    • 이때 우리는 두가지에 관심을 갖는다. 속도와 메모리 사용. 이게 알고리즘에서의 Metric, 지표이다.

    • 그러면 네트워크에는 무슨 지표가 있는지 알아보자.


Metric 1. Delay

  • Metric 1-1. Processing Delay

    • 패킷을 프로세싱할 때 발생하는 딜레이다.

    • 한 홉(네트워크 장치라 생각하자)을 건너오는데 오류가 없었는지 체크하고, 다음에 어디로 보내줄지 결정하는 등 패킷을 Processing 하는데 발생하는 딜레이다. 일반적으로 msec 이하이다.

  • Metric 1-2. Queueing Delay

    • 바로 이전 게시글에서 라우터는 패킷을 라우터 버퍼안에 저장한다고 했다. 자세한 내용은 라우터 인사이드 포스팅에서 살펴보고, 여러 사용자가 라우터를 이용하고 있으면 패킷이 라우터 내에서 잠깐 기다리는 상황이 생긴다. 이 때 기다리는 시간을 Queueing Delay라고 하고. 유일하게 가변적이다.

  • Metric 1-3. Transmission Delay

    • 패킷을 링크에 밀어 넣는데 걸리는 시간이다. 패킷의 길이/Bandwidth이다. Bandwidth는 대역폭이라고도 한다. 대역폭을 파이프 굵기에 비유해서 생각해보자.

  • Metric 1-4. Propagation Delay

    • 게임할 때 북미섭에 접속하면 Delay가 많이 발생한다. 긴 링크를 타고 패킷이 지구 한 바퀴를 돌아올 때까지 시간이 많이 걸리는데 이를 Propagation Delay라고 하며 경로의 길이/속도이다.

    • 정확히는 비트가 다음번 노드에 가기까지 걸리는 시간이다.

 

  • 한 노드를 건너가는데 발생하는 딜레이 D_nodal = D_proc + D_queue + D_trans + D_prop

 

  • Queueing Delay를 좀 더 자세히 살펴보자
    • 패킷은 라우터 내의 버퍼에서 전송을 기다린다.
    • (패킷의 길이*패킷의 개수)/Bandwidth이다.(L*a/R)
      • Queueing Delay는 Stochastic Process(확률 모델)이기 때문에 La/R이 0.7만 되어도 꽤 느려진다.
      • 좀 더 자세한 내용을 알고 싶으면 Queueing Theory를 공부하자.

Metric 2. Loss

  • 라우터 내의 버퍼나 TCP내의 버퍼가 가득 찬다면 패킷 손실이 발생한다. Loss가 생기거나 전송 속도가 급격하게 느려지는 상황을 Congestion이라고 한다.
  • 저번 글에 굵은 글씨로 강조 표시했던 인터넷의 원칙을 떠올려보자. 인터넷 라우터는 Congestion Control을 하지 않고 오로지 전송만 담당한다. Congestion Control은 TCP에서 담당한다.
  • Loss가 일어나서 재전송을 해야 할 경우 속도 저하가 일어난다.

 


Metric 3. Throughput

  • 출발지(Source)로부터 목적지(Destination)까지 배달한 데이터의 양이다.
  • Capacity가 가장 작은 링크가 있으면 여기서 병목현상이 일어난다. 주로 엣지에서 발생한다.
  • 어떤 애플리케이션이냐에 따라서 Loss가 덜 생기는 것이 중요할 때도 있고 Throughput이 중요할 때도 있다. 예를들어 파일 전송이라면 Loss를 허용할 수 없고, 실시간 스트리밍이라면 어느정도의 Loss는 허용하되 Throughput을 일정 수준 이상으로 유지해야 한다.

 


Protocol

  • 프로토콜이란?
    • 통신을 위한 약속이다. 편지를 생각해보자.  편지의 봉투에는 받는 사람의 주소, 이름, 우편번호, 보내는 사람의 이름과 주소가 적혀있다.
    • 모든 사람이 이 약속을 지키지 않고 각자 마음대로 주소를 적는다면 서로 통신하기 곤란하다.
    • 앞으로 다양한 기능의 구현을 위해 다양한 프로토콜을 배우게 된다.
  • 계층적인 프로토콜
    • ISP에서도 보았듯이 방대하고 복잡한 구조를 계층적으로 나누면 꽤 편리해진다.
    • 모듈화 된 프로토콜로 기능들을 캡슐화해서 구현할 수 있다.
    • 물론 계층 간 기능 중복, 커뮤니케이션을 위한 오버헤드가 발생할 수 있지만 계층화되지 않은 프로토콜로 네트워크 애플리케이션에서 라우팅 알고리즘과 링크 프로토콜까지 모두 다 구현해야 한다면 주 7일제가 도입될 수도 있다.
  • Internet Protocl Stack
    • OSI 7 계층의 애플리케이션, 프레젠테이션, 세션 계층을 하나로 묶어서 애플리케이션 계층이라고 정의한다.
    • 1. Application 계층 : 유저가 만든 데이터를 Message라는 형식으로 만든다. -> PDU: Message
    • 2. Transport 계층 : Process 간 통신을 담당한다. -> PDU: Segment
    • 3. Network 계층 : Routing을 통해서 Host 간 통신을 담당한다 -> PDU: Datagram
    • 4. Link 계층 : 네트워크 장비 간 통신을 담당한다 ->PDU: Frame
      • 길 찾기 기능(Routing)은 담당하지 않고 그저 전달만 담당한다.
    • 5. Physical 계층 : 물리적으로 데이터를 실어 나르는 역할을 담당한다.

 

PDU : Protocol Data Unit. 각 프로토콜 계층에서의 데이터를 지칭한다.

 

더보기

본 게시물은 kocw 이화여자대학교 이미정 교수님의 컴퓨터 네트워크 강의를 듣고 정리한 글임을 밝힙니다.

내용상 틀린 부분이 있을 수도 있으며 이에 대한 책임을 지지 않습니다.

틀린 부분이나 오타 지적은 댓글로 남겨주세요.

www.kocw.net/home/cview.do?cid=e44bdd9b3a3f9bb5