본문 바로가기

ComputerScience/Network

컴퓨터 통신 - 1. 정의, 기본개념, 다중화

728x90

 1. 컴퓨터 통신

* 컴퓨터기반 기기 혹은 응용프로그램들이 필요에 따라 중계기/스위치를 경유 하면서, 디지털 데이터를 담고 있는 신호를 교환해서 의미를 교환한다.

ex) 휴대폰 문자 교환, 메신저, 스트리밍, 파일 교환

2. 의미교환?

- 문자, 음성 등을 디지털화한 데이터를 기기를 통해 전달하는 것.

- 컴퓨터기반 기기 위에서 돌아가는 응용 프로그램들이 교환의 주체가 된다.

- 그럼 0,1로 구성된 디지털 데이터를 어떻게 보내는가? 이 데이터를 아날로그 혹은 디지털 신호화 해서 유/무선 전달을 구현한다.

3. 신호 교환

- 디지털 데이터가 아날로그 신호 혹은 디지털 신호로 변환되면 매체를 통해 전파된다.

- 블루투스 같은 경우는 직접적으로 통신을 하지만 불특정 다수와의 신호 교환을 위해 대개는 기지국/공유기를 거친다. (간접)

- 기지국/공유기가 이루는 형태를 망, network라고 한다. 

- 직접 내가 미국에 있는 친구와 연결되는 것은 어렵지만 여러 기지국 혹은 망을 거쳐 미국으로 연결되는 건 가능하다.

- 즉 network는 거리의 한계를 극복해서 신호가 약해지기 전에 잡을 수 있어야 하고(중계) 올바른 목적지로 신호가 전달 될 수 있도록 해야한다(스위치)

- 여러 종류의 통신망이 존재할 수 있다. 따라서 서로 간의 이질성을 극복하는 것 또한 필요하다 (ex. 인터넷) 

4. Network

- 통신 주체인 단말기(terminal)들이 신호를 주고 받을 수 있도록 연결해야 한다. 

- 유/무선 연결가능

- Node : 휴대폰 같은 단말기, 휴대폰 위에서 도는 응용 software, 라우터 등 네트워크 구성 요소들을 말한다.

- Link : 광케이블, 무선채널

5. Direct Link

- 두 노드간의 direct link, point to point

- 가장 기본적인 네트워크

- 불특정 다수와 통신을 위해서는 링크가 너무 많이 필요하다.

- 다중 접근을 위한 네트워크

- 하나의 링크에 여러 단말기를 부착, 하나의 링크를 공유 

- 링크 개수를 줄였지만 여러 단말기가 한정된 자원인 하나의 링크를 공유할 수 있도록 제어가 필요함

- 블루투스 같이 직접 통신할 경우에 활용.

6. Indirect Link (Switched Networking)

- switching network

- 중계, 스위칭을 해주는 라우터(스위치) nodes들로 infra를 구축한다.

- 단말(host) nodes는 이 network에 접속하여 통신한다.

- inter networks (network of networks)

- 기술, 관리 방식이 전혀 다른 네트워크 간의 통신이 이루어지도록 한다. (Internet)

- 단순한 중계, 스위칭을 넘어서 네트워크간 이질성을 극복한다.

7. 스위칭 정책

circuit switching

- 전화 네트워크

- 스위치동작 :  point-to-point 연결, switch가 사전에 output link에 회선을 확보하고 연결한다.

- bit stream을 중단 없이 흘려보낸다.

- 전통적인, 오래된 switching 방식이다.

- 남과 섞이지 않는 전용회선이 보장되기 때문에 일정한 성능을 유지할 수 있다. (사용자 입장에서 유리한 면이 있음)

packet switching

- 인터넷

- bursty traffic 환경(데이터 전송을 할때도 있고 안할때도 있고)에서의 통신에 적합

- 미리 링크를 확보해놓으면 데이터를 안보내고 쉬는 시간이 많이 생길 수 있다.

- 또한 전용 회선을 만들어 놓고 누군가 사용할 때 남이 못쓰게 하는 방식은 비효율 적이다. 

- 따라서 데이터를 우편처럼 묶어서(packet) 공유하고 있는 link를 통해 해당 목적지로 보내주는 방식이 생겼다.

- 여러명에게 서비스 할 수 있고 망이 노는 시간을 줄일 수 있기 때문에 네트워크 제공자 입장에서는 적합하다.

- 스위치동작 : store and forward

8. Addressing

- 연결하기 전의 사전과제, 상대방이 누구인지 id로 지정하는 일이 필요하다. 

- 상대방 node를 식별하는 바이트열을 address라고 한다. 

unicast : 특정 노드 하나를 지정해서 신호를 보냄

broadcast : 네트워크의 모든 노드에게 신호를 보냄

multicast : 네트워크 일부 노드 집합을 지정해서 신호를 보냄

9. Routing

- 목적지 노드를 향해 메시지를 전달할 때 어디를 거쳐서 갈 것인가를 결정하는 것. (경로찾기)

10. Resource Sharing

- 통신을 위한 Link를 까는 작업은 돈이 많이 든다. 따라서 한정된 자원을 효율적으로 공유하는 일이 중요하다.

- 한명이 이사 올 때마다 링크를 깔 수는 없으니 링크 하나를 잘 깔아놓고 여러명이 사용할 수 있도록 하는 것이다.

- 이를 위한 아래 해결책을 multiplexing(다중화) 라고한다.

- 망 사용자 L1,2,3의 데이터가 하나의 link를 통해 이동한다. R1,2,3로 도달할 때는 데이터들이 구분이 잘 되어 각각 전달 받아야 한다. (DEMUX)

- 즉 하나의 physical link를 기술적으로 여러 logical links가 있는 것처럼 통신을 할 수 있어야 한다.

11. Multiplexing

1) Frequency Division Multiplexing (주파수분할다중화)

- ex) 주파수로 여러 신호들을 분할할 수 있다. 89.1 MHz, FM, AM등이 이에 속한다.

- 참고로 주파수 분할을 할 경우 Channel간의 공백(gap)이 있어야 안정적인 multiplexing이 가능하다. 

- 이 gap들은 결국엔 자원의 낭비가 될 수 있다.

 

2) Time Division Multiplexing (시분할 다중화)

- ex) 시분할 멀티플렉싱

- 주파수를 쪼개지말고 time slot을 기준으로 구분하여 신호들을 보낸다.

- 낭비 공간이 줄어든다.

 

- 두 multiflexing 방식을 비교하면 다음과 같다.

 

3) Statistical Multiplexing (통계적 다중화)

- 비동기적 요구에 따른 시분할 방법.

- TDM 처럼 time으로 slot을 나누되 slot을 나누어주는 것은 동적으로 할당한다.

- traffic의 bursty한 특성 때문에 더 효율적인 방식을 찾고자 고안되었다. (기껏 time slot나누어 놨는데 5초 슬롯이 당분간 텅 비게 된다면?)

- 보낼 데이터가 없는 사용자가 link사용 시간을 잡아먹지 않도록 낭비를 최소화 할 수 있다.

- 또한 보내려는 데이터 양에 따라, 요구에 맞춰 자원을 할당할 수 있다.

- 하지만 이런 비동기식, 동적 할당 방식을 위한 overhead가 존재한다.

- TDM방식에서는 clock으로 demux가 가능하지만 async방식에서는 demux를 위한 key가 별도로 필요한다. 이런 모든 것이 overhead가 될 수 있다.

- 최악의 상황을 가정해보자. a,b,c,d가 끊임없이 데이터를 보낸다면 overhead 때문에 TDM보다 좋다고 할 수 없다.

- 네트워크 입장에서 장점을 지닐 수 있지만 사용자 입장에서는 안정적으로 자기 time이 보장되는 TDM이 더 좋을 수도 있다.

- 따라서 통계적으로 잘 계산해서 사용자 수를 고려하여 구축해야 한다.

12. Splitting

-  만약 한 사용자가 한 link로 커버하지 못할 만큼 대량의 데이터를 전송한다면?

- 여러 link를 동원해서 대량의 데이터 split/merge하여 처리한다.

728x90
반응형