티스토리 뷰


이 포스트는 「Computer Networks: A System Approach , By L.Peterson , 5th, 2011」 을 참고하여 작성했습니다.



지난 강의에서 동기식 다중화 방법인 주파수분할 다중화(FDM)와 시분할 다중화(TDM)에 대해 살펴봤다.
동기식 다중화는 주파수나 시간을 고정적으로 분할하여 처리하지만 고정 분할로 데이터를 처리하게 될시 패킷 스위칭 과정에서 잉여자원이 생길 수 있다.

동기식 다중화의 고정분할로 인한 문제를 보완하기에 위해 나온 개념이 비동기식 다중화의 일종인 통계적 다중화이다.
통계적 다중화(Statistical Multiplexing)는 시분할 방법의 일종으로 고정적으로 자원을 분할하는 것이 아닌 요구에 따른 분할을 하기에 자원공유의 효율성이 증가한다.

그림 1.1 통계적 다중화

On-demand 방식으로 처리하여 자원을 효율적으로 사용할 수 있다.
다만 동기식 다중화와 달리 각각의 Cycle마다 Aderss를 담는 공간이 필요하다. 이를 Demux key 혹은 Demux select라고 부른다.

(참고)

지난 강의에서 다중화 정책에 사용하는 MUX와 DEMUX에 대해 살펴보았다.
그러나 오늘날 사용자들이 이용하는 데이터는 점점 커지고 있다.
그렇기에 여러 사용자의 input을 한번에 모아 하나의 링크를 통하여 전송하는 MUX, DEMUX를 사용하지 않고 큰 데이터를 처리하기 위해 데이터를 쪼개어 보내고 다시 합치는 과정이 존재한다. 이것을 Splitting이라고 한다.

그림1.2 Splitting


통계적 다중화와 패킷 스위칭

통계적 다중화와 패킷 스위칭은 비슷하지만 다른 개념이다. 
통계적 다중화는 MUX,DEMUX를 사용하여 링크를 공유하는 방법이지만, 패킷 스위칭은 노드들을 서로 연결하는 방법중 하나이다.

패킷 스위칭을 하게되면 링크는 대부분 통계적 다중화로 이루어지지만 링크를 무조건 통계적 다중화를 이용해야 하는 것은 아니다. 그러나 링크를 통계적 다중화로 이용한다면 노드는 패킷 스위칭을 필요로 한다.

더욱 쉽게 설명하면 패킷스위칭을 할때엔 시분할, 주파수 분할 등 여러 다중화 정책을 사용할 수 있지만 그 중에 가장 효율적인 통계적 다중화를 사용하는 것이다.
그러나 링크에서 통계적 다중화를 사용한다면 해당 노드의 연결방식은 반드시 패킷 스위칭 이어야 한다.
왜냐하면 서킷스위칭(회선)에선 요구에 따라 자원을 공유하는 작업이 불가능하기 때문이다.

패킷스위칭과 통계적 다중화를 사용하게 되면 여러 노드로 부터의 패킷이 링크에서 섞이게 된다.
링크로 나가기 위한 패킷들을 저장하는것을 버퍼링(buffering)이라고 한다. 패킷은 FIFO로 처리되거나 기타 다른 방식으로 처리된다. (패킷이 나가는 순서를 바꿀 수 있음)
패킷들을 담고 있는 버퍼가 꽉차 데이터 손실이 발생하는 것을 버퍼 오버플로우(buffer overflow)혹은 혼잡(congestion)이라 부른다.

그림1.3 패킷스케쥴링

만약 패킷스위칭이 아닌 서킷 스위칭을 사용한다면 TDM,FDM 등 동기식 다중화 방법을 사용한다.


통신 서비스

통신의 주체는 응용 프로그램이다. 그렇기에 네트워크는 응용 프로그램들이 원활히 통신할 수 있는 기능을 제공한다.

통신기술을 기반으로 응용프로그램이 요구하는 기능을 구현/제공하여 서로 다른 호스트간의 연결을 프로세스 간의 통신형태처럼 변경하는것이 통신 서비스의 목표이다.

상대방이 다른 네트워크에 있더라도 마치 같은 네트워크에 있는 것 처럼 서비스를 제공하게 하는것은 Network Transparency라고 한다. 네트워크는 채널(channel)을 지원하여 서로 다른 호스트의 응용프로그램 간의 통신을 가능하게 한다.

그림 1.4 통신 서비스

통신서비스는 통신 장애를 극복해야 한다. 통신기술의 핵심은 응용프로그램이 예상하는 것과 통신 기술이 제공하는 것 사이의 거리를 좁히는 일이다.

응용프로그램은 서로 다른 호스트간 연결을 같은 로컬내에서의 연결처럼 사용되는것을 원하며 통신 서비스는 이러한 서비스를 제공하기 위해 노력한다.

비트수준 오류(전자기 간섭), 패킷 수준 오류(혼잡), 링크/노드 고장, 메세지의 지연, 메세지의 순서가 바뀌어 전달, 도청 등의 문제를 해결해야 한다.


1장 - 네트워크 구조

프로토콜(Protocal) : 통신에 사용되는 약속이며, 반드시 서로 대칭관계를 이루어야 한다.
프로토콜의 구조화를 통하여 복잡성을 해결하는 구조적인 기법이 필요하다.

계층화(Layering)

복잡한 문제를 한번에 푸는 것은 굉장히 어렵다. 그렇기에 복잡한 내용/문제를 숨겨 문제를 단순화 해야한다. 이러한 과정을 추상화(abstractions)라고 하며 이렇게 추상화된 문제/내용을 recursive하게 적용하여 어려운 문제를 해결할 수 있다.

추상화는 자연스럽게 계층화를 유도한다.
예를들어, APP을 하나 개발할때 한번에 프로세스,통신,하드웨어 등을 고려하여 제작한다면 굉장히 어려울 것이다.
그러나 각각의 단계를 계층화하여 접근하면 쉽게 해결할 수 있다.

그림 1.5 계층화

이처럼 통신 프로토콜 역시 여러 계층으로 정의되어 있다. 각 계층은 하나의 기능을 하는 부품/개체 로서 다른 프로토콜에서 재사용이 가능하다.

우리는 큰 프로토콜을 구성하는 각각의 계층(구성요소)을 프로토콜이라고 부르며 그렇게 완성된 전체적인 프로토콜 역시 프로토콜이라고 부른다. 프로토콜 약속의 동작을 실체화 하면 프로토콜 개체라고 부른다.

정상적인 프로토콜의 개체들은 두 개의 다른 인터페이스를 갖는다.

첫번째는 서비스 인터페이스(service interface)로 해당 프로토콜의 작업을 정의한다.
그리하여 다른 Level에서 그 프로토콜 이용이 가능하게 한다.(ex.API) 대부분 함수형태로 구현되어 있다.

두번째는 동료 인터페이스(peer-to-peer interface)로 동료 간에 교환되는 메시지를 정의한다.
이것은 다른 프로토콜과의 통신을 가능하게하는 인터페이스이다. 서로 다른 호스트간 통신을 하기 위해 필요한 약속,통신규약이다.

그림 1.6 프로토콜의 인터페이스


프로토콜 그래프 (또는 프로토콜 스택)

프로토콜의 모음과 그들 사이의 의존관계를 나타낸다.
전체적으로 보면 그래프 형태이며 특정 응용프로그램에선 스택형태를 띄고 있다.

그림을 먼저 보자.

그림 1.7 프로토콜 그래프

먼저 호스트1과 호스트2가 서로 대칭관계를 이루는것을 볼 수 있다. 따라서 두 호스트는 서로 통신이 가능하다.

호스트1과 호스트2에는 File, Digital library, Video Application이 존재한다. 이 응용 프로그램들이 서로 통신하려고 한다.
File과 Digital library는 RRP 프로토콜을 사용하고 Video는 MSP 프로토콜을 사용하고 있다.

예를들어, 호스트1과 호스트2의 Video aplication이 서로 통신을 하려고 한다. 먼저 추상적으로 접근하여 하위 계층을 생각하지 않고 보면 그저 호스트1과 호스트2의 Video app이 서로 통신을 한다고 생각 할 수 있다.
하지만 실제로 이루어지는 통신은 하위계층들을 이용하여(위임하여) 이루어진다. 

이해하기 쉽게 회사에 비유를 들어 설명해보겠다. A회사 사장이 B회사 사장에게 우편을 보내려고 한다.
그렇다면 A회사 사장이 집적 차를 타고 B회사에 가서 B회사 사장에게 우편을 전달할까? 

절대 그렇지 않을것이다.
A회사 사장은 자신의 비서에게 B회사 사장에게 우편을 전달해달라고 우편을 위임할 것이고, 비서역시 다른 직원에게 그 우편을 위임할 수 있으며 실제적으론 우체국 기사에 의해 B회사에 도착을하고 B회사에 도착해서도 마찬가지로 다른 직원, 비서를통하여 B회사 사장에게 전달이 될 것이다.

우리가 위 과정을 추상적으로 생각해보면 'A회사 사장이 B회사 사장에게 우편을 보냈다'라고 생각할 수 있지만 실제적으론 그 아래에서 물리적으로 전달이 이루어지는 과정이 존재했다. 통신도 이와 마찬가지이다.

우리는 응용프로그램 간 통신을 추상적으로 이해하지만 실제로는 여러 하위계층을 거쳐 하드웨어 수준에서의 물리적 전달이 이루어진다는 점을 반드시 알아야 한다.

따라서 위 그림에서 호스트1의 RRP와 호스트2의 RRP는 peer관계이고 app과 RRP에는 서비스 인터페이스가 존재한다.
그리고 호스트1에서 호스트2로 보내는 과정이 MUX, DEMUX의 개념이다. 여러 데이터를 섞어서 MUX를 이용해 네트워크 망을 통하여 전송을하고 호스트2쪽에선 섞여있는 데이터를 DEMUX를 이용하여 분류한다. 따라서 이러한 과정을 수행하기 위해 DEMUX KEY가 필요하다.

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함