네트워크는 여러 통신장치들이 서로 통신할 수 있게 해주는 데이터 통신 체계이다. 네트워크는 어떻게 이루어져 있을까?
네트워크는 총 3가지로 구성되어 있다.
그 말대로 네트워크의 가장자리, 즉 말단을 의미한다. 이 말단에는 수많은 End System(=Host)가 존재한다. 이 호스트들은 네트워크에 연결된 수많은 기기들을 의미한다. 우리가 사용하는 스마트폰이나 PC, 서버 등이 그 예시이다. 이 호스트들은 각각 Client/Server로 나누어진다.
End System(Host)들이 인터넷을 사용할 수 있도록 그 End System에서부터 다른 End System까지의 경로 상에 있는 첫 번째 라우터(Edge Router)에 연결하는 네트워크를 의미한다.
다른 말로 네트워크에 연결되기 위한 네트워크이다. 랜선이나 와이파이가 대표적인 예시이다.
구분 기준 : 설치되는 위치
Residential, Institutional, Mobile
주거용, 기관용, 모바일용
구분 기준 : 공유 / 전용
Shared Network : 많은 사용자가 동일한 인터넷을 공유하므로, 네트워크의 리소스는 사용자별로 분할되어 공유된다. 일반 가정에서는 공유 네트워크를 사용한다.
Dedicated Network : 특정 사용자나 기기에 전용 리소스를 할당한다. 따라서 높은 대역폭과 빠른 응답 시간, 그리고 향상된 보안이 장점이다.
이더넷을 사용하여 인터넷에 연결되는 것을 말한다. 이더넷은 네트워크 연결을 위한 표준 유선 연결 기술을 의미한다. 이때의 Access Network를 Ethernet Switch라고 부른다.
Access Point를 기점으로 작동한다. 대표적으로 WLAN(Wireless Local Access Network), Cellular Access Network 등이 있다.
Host(Network Edge)들이 정보를 보내려고 한다. Access Network를 통해 네트워크에 연결되었다. 그렇다면 네트워크 안에서 정보는 어떻게 전달되는 걸까?
서로 연결되어 있는 라우터들의 집합인 Network Core를 통해 전달된다.
데이터 전달방식(노드들을 연결하는 방식)에는 Circuit Switching, Packet Switching 두 가지가 있다.
교수님 수업자료의 표현을 빌리자면, 네트워크 리소스를 여러 개의 조각(Pieces)로 나누어 사용한다. 각 조각들은 일반적으로 통화에 연결되어 사용된다. 이 조각들은 유저가 사용하지 않을 때까지 다른 유저가 사용할 수 없는, 각각이 독립된 채널이다. 채널을 할당하는 과정(setup)이 필요한 대신, 리소스를 공유하지 않아 속도와 성능이 일정하다.
회선을 분할하는 방식(링크를 공유하는 방식, 회선=링크)에는 대표적으로 세 가지가 존재한다.
주의 : 아래의 방식들은 Circuit Switching 뿐만 아니라 Packet Switching에서도 사용될 수 있다.
회선의 주파수 대역을 여러 개로 분할하여 각 채널에 배당함으로써 많은 채널의 하나의 회선을 공유하는 방식.
하나의 회선 대역폭을 시간 슬롯(Time Slot)으로 나누어 각 채널에 배당함으로써 각 채널은 정해진 시간동안 대역폭을 사용할 수 있다.
TDM은 각 채널의 데이터 존재 여부와 상관없이 시간을 할당하기 때문에 효율적이지 않다는 문제점이 있었다. 이를 해결하기 위해 만들어진 방식으로, 전송 데이터가 있는 경우에만 타임슬롯을 배정하여 효율성을 높인다. 대신 채널 식별자와 같은 정보가 필요하고, 채널주소 제어를 위한 마이크로프로세서가 필요하다.
송신할 데이터를 Packet으로 쪼개어 전송한다. 라우터는 패킷 하나를 받으면 잠깐 저장(Store)한 후, 어디로 보낼지(Forward) 판단하고 보내게 된다. 이를 Store and Forward 방식이라고 한다.
Circuit Switching 방식에 비해 더 많은 유저가 네트워크를 사용할 수 있도록 한다.
각각의 패킷들은 전송 링크의 전체 대역폭을 사용하여 최대한 빠르게 전송되며, Circuit Switching과는 다르게 각각의 패킷들은 Network resource를 공유하게 된다.
패킷들은 전송 링크를 사용하기 위해 경쟁(contention)하게 된다. 패킷은 라우터에서 전송되면 줄(Queue)을 서게 되고, 링크로 보내지길 기다리게 된다. 데이터가 전송되기 전에 모든 패킷이 반드시 라우터에 도달해야 한다.
일반적으로 링크를 사용할 때는 Statistical Multiplexing 방식을 사용한다.
패킷을 전송할 때 막힘없이 전송되면 좋겠지만, 실제로는 여러가지 요인들로 인해 전송이 지연되게 된다.
라우터에서 패킷의 헤더를 조사하고, 어디로 보내야할지 결정하는 데에 걸리는 지연시간. 이때 bit error 또한 체크한다.
패킷이 큐에서 기다리면서 생기는 지연시간. 라우터의 혼잡도에 따라 결정된다.
패킷이 큐를 빠져나간 후 링크까지 도달하는 데 걸리는 지연시간. 즉, 전송하려는 패킷을 링크로 밀어내는데 걸리는 시간을 의미한다. 링크의 대역폭에 따라 결정되며, (Packet Length / Link Bandwidth)로 계산할 수 있다.
패킷이 링크를 타고 전송될 때 생기는 지연시간으로, 거리와 링크의 매체(ex: 광통신)가 결정한다. 만약 assume zero propagation delay라는 가정이 있다면, 링크로 이동하는 시간을 계산하지 않고 위의 세가지 딜레이만을 고려하면 된다.
(Length of link / Propagation speed in medium)으로 계산할 수 있다.
위와 4가지 지연시간의 합을 Nodal Delay(총 지연시간)이라고 한다.
또한 라우터의 큐(=Buffer)는 제한된 수용 크기를 가지고 있는데, 큐가 꽉 차있을때 도달한 패킷은 버려지게(lost)되게 된다. 버려진 패킷은 이전의 노드나 End systems들에서 재전송될 수도 있고, 되지 않을 수도 있다. 이때 패킷 손실이 발생하게 된다.
네트워크에서 초당 실제로 처리되는 패킷의 양을 나타낸다. 일반적으로 bit를 사용한다.
고속도로에 차들이 움직이는 것을 상상해보자. 이론상 차들은 고속도로 위에서 모든 차선을 이용하여 최대 속도로 주행할 수 있다.이때 차들이 잠재적으로 얼마나 빠르게 이동할 수 있는지를 나타내는 것이 Bandwidth이다.
그러나 실제 고속도로에 CCTV를 달아 관찰해본다면, 실제로 차들이 얼마나 빠르게 이동하는지를 측정할 수 있을 것이다. 이것이 ThroughPut이다.
모든 이더넷 호환 기기에는 고유한 하드웨어 주소(MAC ADDRESS)가 존재한다.
부산을 목적지로 운전한다고 생각해보자. 물론 지구는 둥그니까 일직선으로 가다보면 나올 수도 있지만, 우리는 빠르게 도착하기 위해 내비게이션을 사용해 최적의 경로를 찾을 것이다. 이처럼 패킷을 목적지 IP(Host의 고유 번호)로 최적의 경로로 안내해주는 네비게이션이 라우터이다.
우체국에서 우편을 보낸다고 생각해보자.
1. 어디서 보내는지, 어디로 가야하는지 상자와 편지 봉투에 작성한다.
2. 우편의 내용을 작성한다.
3. 우편물을 잘 받았다는 것을 확신하기 위해 서명을 받는다. 서명이 올바르지 않거나 서명을 받지 않는다면, 우편물이 제대로 가지 않았다는 의미이다.
패킷은 우편과 동일하다. 패킷의 구성요소는 다음과 같다.
- 헤더 : 소스 주소(SA), 목적 주소(DA), 프로토콜 및 포트 번호, TTL(Time to live), 등등
- 페이로드 : 패킷에 의해 전송되는 실제 데이터가 담긴다.
- 트레일러 : 트레일러의 내용은 각 네트워크의 유형별로 달라지지만, 일반적으로 모든 패킷이 완전히 수신되었는지 확인할 수 있도록 하는 CRC가 트레일러에 들어간다.