이번 글도 본격적인 네트워크 얘기를 하기 전 네트워크 전반적으로 사용되는 용어를 설명하는 글이다.
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 이화여자대학교 이미정 교수님의 컴퓨터 네트워크 강의를 듣고 정리한 글임을 밝힙니다.
내용상 틀린 부분이 있을 수도 있으며 이에 대한 책임을 지지 않습니다.
틀린 부분이나 오타 지적은 댓글로 남겨주세요.
'컴퓨터 네트워크' 카테고리의 다른 글
네트워크 7강, 8강 - Electronic Mail과 DNS, P2P 아키텍쳐 (0) | 2020.08.07 |
---|---|
네트워크 6강 - 쿠키와 웹캐시 (0) | 2020.08.07 |
네트워크 5강 - RTT, Http의 종류와 메세지 (0) | 2020.08.06 |
네트워크 4강 - Application Layer의 소개 (0) | 2020.08.05 |
네트워크 2강 - 네트워크의 구성요소 (0) | 2020.08.04 |