Network Layer (네트워크 계층, 3계층)

 

- 송신 호스트에서 수신 호스트로 세그먼트를 전송한다.

 

- 송신 호스트에서 세그먼트를 데이터그램(datagram)으로 캡슐화한다.

 

- 수신 호스트에서 세그먼트를 전송 계층(4계층)으로 전송한다.

 

- 네트워크 계층이 모든 호스트와 라우터에서의 프로토콜을 지정한다.

 

- 라우터는 해당 라우터를 통과하는 모든 IP 데이터그램에 있는 헤더 필드를 검사한다.

 

 

 

Network Layer Functions and Plane

 

- 라우팅 (Routing) : 출발지에서 목적지까지의 모든 경로를 결정한다. 라우터에서 라우팅 알고리즘으로 포워딩 테이블을 만든다. 포워딩 테이블에는 목적지 IP 주소와 해당 포트번호가 저장되어 있다.

 

- 포워딩 (Forwarding) : 라우터 내부에 입력 버퍼와 출력버퍼가 있다. 입력버퍼로 들어온 패킷의 헤더에 있는 IP주소와 포워딩 테이블의 IP주소를 비교하여 적절한 포트번호를 가진 출력 버퍼로 패킷들을 옮긴다.

 

- 라우팅이 출발지에서 목적지까지 여행을 계획하는 과정이라면, 포워딩은 여행 중간의 하나의 지점을 지나가는 과정이다.

 

- Control plane

  • 넓은 네트워크의 논리적인 부분을 담당하는 뇌의 역할을 한다.

  • 데이터그램이 종단 사이에 라우터들에 의해 어떻게 라우팅되는지 결정한다.

  • 하드웨어 측면에서 라우터에 의해 구현되는 전통적인 라우팅 알고리즘 방식
  • 소프트웨어 측면에서 서버에 의해 구현되는 SDN(Software-Defined Networking) 방식
  • Per-Router Control plane : 각 라우터마다 있는 라우팅 알고리즘이 Control plane의 상호작용을 한다.

  • Logically Centralized Control plane : 별도로 중앙에 배치된 컨트롤러가 local control agents(CAS)로 각 라우터와 상호작용한다. 중앙에서 control plane이 이루어짐.

- Data plane

  • 각 라우터의 포워딩 함수들을 동작한다. , 다리가 동작하는 것과 유사하다.

  • 라우터 입력 버퍼에 도착한 데이터그램이 어떻게 출력 버퍼로 포워딩되는지 결정한다.

 


 

 

 

Network Service Model

 

- 송신자에서 수신자에게 데이터그램들을 전송하는 채널에 대한 서비스 모델은 두 가지가 있다.

 

- 각각의 데이터그램에 대한 서비스 : 지연 시간이 40ms 보다 적은 상태로 전달된다.

 

- 일련의 데이터그램들에 대한 서비스 : 순서가 중요한 데이터그램을 위한 서비스로, 전송을 위해 최소한의 대역폭이 보장된다. 또한 각 패킷간의 간격에서 변화(ex : Jitter)가 제한적이다.

ex) 영상코덱(MPEG)

 

 

 

라우터 입력 포트의 기능 (3계층)

 

- 패킷의 헤더 필드 값(목적지 IP주소)을 보고, 포워딩 테이블에 있는 출력 포트 번호를 찾는다.

 

- 포워딩 테이블에 있는 IP주소와 패킷의 목적지IP주소를 비교하는데 시간이 오래 걸린다.

 

- 큐잉(Queuing) : 데이터그램이 포워딩하는 속도보다 더 빨리 입력 포트에 도착하면, (입력 버퍼)에 저장된다.

 

- 목적지 기반의 포워딩 : 목적지 IP 주소만을 이용하여 포워딩한다. 전통적인 방식이다.

 

- 일반화된 포워딩 : 헤더 필드 값의 전체를 이용하여 포워딩한다.

 

 

 

목적지 기반의 포워딩

 

원래는 IP 주소를 범위로 정해 포트 번호를 구분한다. ]

 

- IP 주소가 32비트이다보니 전체 값을 저장하면 테이블이 너무 커진다. 따라서 IP 주소에서 앞부분에 정해진 비트까지만 보여주고 범위(range)를 정하여 포트번호를 구분한다. , 주소의 앞쪽만 매칭시켜서 해당 포트번호로 보낸다.

 

- Longest prefix matching : 패킷의 목적지 IP주소가 포워딩 테이블에서 둘 이상의 IP주소 범위에 포함될 경우, 그 중 비트가 가장 많이 공개된(가장 긴 prefix) IP 주소 범위의 포트번호로 포워딩한다.

 

[ 밑에 있는 예제의 정답은 위에서부터 01이다. ]


- TCAMs : Ternary Content Addressable Memories 의 약자로, 실제 라우터가 포워딩 테이블에서 IP 주소를 탐색하는데 시간이 많이 걸리므로 라우팅의 속도를 빠르게 하기 위해 IP 주소 검색을 위한 포워딩 테이블이 저장되는 메모리이다.

 

 

 

Switching fabrics

 

- 스위치 내부에서 각 입출력 포트를 가상의 회선으로 그물 또는 직물처럼 연결하여 구성되는 모양을 섬유(fabric)로 비유한 것이다. , 스위치 내부가 직물 또는 망처럼 보이는 모양

 

- 입력 버퍼로부터 적절한 출력 버퍼로 패킷을 전송한다.

 

- Switching rate : 입력 포트에서 출력 포트로 패킷을 전송할 수 있는 속도로, 종종 다수의 입출력 라인 속도에서 측정되어진다. n개의 입력이 있을 때, 스위칭 속도는 입력 라인 속도의 N배가 요구된다.

 

[ 스위칭 구조 분류  ]


- Switching via Memory

  • CPU의 직접적인 제어 아래에 스위칭하는 전통적인 컴퓨팅 방식으로, 첫 세대 라우터들의 스위칭 구조이다.

  • 패킷이 시스템 메모리로 복사된다.

  • 속도가 메모리 대역폭에 의해 제한된다.

  • 메모리에 접근하는 시간도 많이 걸린다.

 

- Switching via a Bus

  • 버스 구조는 2 이상의 신호선들을 모아놓은 것으로, 디지털 시스템에서 디지털 요소들을 상호 연결하는데 필요한 데이터 신호 통로들의 구조화된 그룹이다.

  • 입력 포트 메모리로부터 출력 포트 메모리까지 하나의 공유된 버스를 통해 데이터그램을 스위칭한다.

  • Bus contention : 스위칭 하는 속도는 버스의 대역폭에 의해 제한된다.

  • ex) Cisco 5600 제품이 32Gbps의 속도를 가진 버스 구조로 접근성에 있어서 충분한 속도를 가진다.

 

- Switching via Crossbar

  • 제한적인 버스 대역폭을 해결한다.

  • 다수의 프로세서들을 연결하기위해 개발된 interconnection nets, banyan networks, crossbar 망이다.

  • 진보된 구성으로는, 데이터그램을 고정된 길이의 셀들로 분할하여 단편화한다.

  • ex) Cisco 12000 제품이 interconnection network를 통해 60Gbps의 속도로 스위칭한다.

 

 

 

입력 포트 큐잉(Queuing)

 

- 큐잉은 입력 큐(버퍼)에서 패킷이 저장되는 것을 의미한다.

 

- 입력 큐(버퍼)가 꽉 차면 오버플로우(Overflow)가 발생했다고 한다.


- 큐잉 지연(Queuing delay) : 큐에서 패킷들이 대기하는 시간이다.

 

- 오버플로우가 발생하면 큐잉 지연(Queuing delay)이 일어나고 전송 속도가 저하된다. 또한 큐에 들어오지 못한 패킷들은 손실된다.

 

- HOL blocking : Head-of-the-Line blocking 의 약자로, 큐에서 저장된 패킷들 중 앞에 있는 패킷이 속도가 느려 뒤에 있는 패킷이 못가는 상황을 말한다. , 둘 이상의 다른 입력 버퍼에서 같은 출력 버퍼로 이동하는 패킷들이 있을 때, 하나가 이동하면 다른 입력 버퍼의 맨 앞의 패킷은 이동할 수 없다. 그러면 대기하는 패킷의 뒤에 있는 패킷들도 덩달아 대기해야하는 상황을 말한다.

 

 

 

라우터 출력 포트의 기능 (3계층)

 

- 버퍼링(Buffering)

  • 더 빠른 속도의 구조(fabric)로 인해 발생한다. 혼잡 제어나 버퍼공간의 부족으로 데이터그램(패킷들)이 손실될 수 있다.

  • 스위치를 통해 도착하는 속도가 출력 라인 속도보다 크면, 버퍼링이 발생한다.

  • 출력 버퍼에서 오버플로우가 발생하게 되면 큐잉 지연 및 패킷의 손실이 발생한다.

- 스케줄링(Scheduling) : 최고의 성능을 내기 위해 전송할 패킷의 우선순위를 조정하는 기능이다. 기본적으로 FIFO(First-In-First-Out)방식이다.

 

 

 

출력 포트 스케줄링(Scheduling)

 

- 스케줄링이란 링크로 보낼 다음 패킷을 결정하는 것이다.

 

- FIFO 스케줄링 : 기본적인 방식으로 처음 큐에 도착하는 패킷이 먼저 전송된다. 즉 순서에 맞게 전송한다.

 

- 오버플로우 발생 시 패킷을 버리는 방법

  • tail drop : 꼬리 자르듯이 도착하는 패킷들을 버린다.

  • priority : 우선순위를 기반으로 낮은 순위의 패킷들을 버린다.

  • random : 무작위로 패킷을 뽑아 버린다.

 

- Priority Scheduling : 가장 높은 우선순위를 가진 큐에 담긴 패킷들을 먼저 링크로 보낸다. 즉 순위가 낮은 큐는 순위가 높은 큐가 비어 있어야 패킷들을 전송할 수 있다.

 

- Round Robin(RR) Scheduling : 다수의 큐들이 돌아가면서(Cyclically) 각각의 패킷들을 전송한다.

 

- Weighted Fair Queuing (WFQ) : 라운드 로빈(RR) 스케줄링과 유사하나, 각 큐마다 대기 시간이 있다는 점에서 차이가 있다. , 각 큐는 돌아가면서 패킷을 전송하지만 전송되는 시간간격이 정해져 있다.

 

 

 

 

 

 

 

 

Data

 

- Analog Data(아날로그 정보) : 연속적인(continuous) 정보 ex) 사람의 음성

 

- Digital Data(디지털 정보) : 불연속적인(discrete) 정보 ex) 비트(0, 1)

 

- 데이터는 링크로 전송되기 위해 전자기 신호로 변형된다.

 

 


Signal

 

- Analog Signal(아날로그 신호) : 정해진 범위(time) 내의 무한히(infinitely) 많은 값이 신호값을 가진다.

 

- Digital Signal(디지털 신호) : 특정 범위에서만 신호값이 나타난다. , 정의되는 신호값들이 제한적이다.


- Periodic Signal(주기적 신호)

  • 측정 가능한 시간 프레임(주기) 내에 하나의 패턴이 나타나며, 동일한 주기 내에 특정 패턴이 반복적으로 나타난다.
  • Cycle : 하나의 패턴이 완성되기까지 걸린 시간(주기)

 

- Nonperiodic Signal(비주기적 신호)

  • 주기 동안 패턴이나 Cycle이 반복적이지 않고 항상 변한다.

 

- 데이터 통신에서 우리는 공통적으로 주기적 아날로그 신호(periodic analog signal)와 비주기적 디지털 신호(Nnonperiodic digital signal)를 이용한다.

 

 


Periodic Analog Signal (주기적 아날로그 신호)

 

- 대부분 근본적인 형태는 사인 모양의 파형(Sine Wave)이다.

 

- 최대 진폭(Peak amplitude) : 가장 높은 강도(전압)의 절댓값

 

- 주파수(Frequency)

  • 1초 안에 반복되는 패턴(Cycle)
  • 단위 : Hz
  • 주기와 반비례

[빨간색이 최대 진폭, 파란색이 주기]


위상(Phase) : 0초에 대해 상대적인 파형(위치)의 변화이며각도로 나타난다.

 

 (A : 진폭, f : 주파수, t : 시간, : 위상)

 

- 파장(Wavelength)

  • 하나의 신호가 한 주기동안 이동할 수 있는 거리
  • 파장 = 전파 속도(Propagation speed) * 주기
  • 주파수와 매체에 따라 다르다.
  • 종종 광섬유 내부에 빛의 전송을 표현하기위해 이용되어 진다.

 


 

Domain

 

- Time Domain : 시간(x)을 기준으로 진폭(y)을 나타낸 것이다.

 

- Frequency Domain : 주파수(x)을 기준으로 진폭(y)을 나타낸 것으로, 최대 진폭과 주파수에 대한 정보만 있다.

 

[좌 Time Domain, 우 Frequency Domain]


 


 

Composite Signal(복합 신호)

 

- 하나의 사인 파형이 많이 합쳐져서 만들어진 모양이다. , 아날로그 신호이다.

 

- 푸리에 해석(Fourier Analysis)에 의하면, 복합 신호는 다른 주파수, 위상, 진폭을 가진 사인 파형들이 합쳐진 것이다.

 

S(t) = S(t1) + S(t2) + S(t3) + .... ( f는 기본주파수이다.)

 

- Periodic Composite Signal(주기적 복합 신호) : 불연속적이고 값(개수)이 제한적인 주파수를 가진 일련의 사인파형들이 모인 신호이다.

 

  • Time Domain에서는 각 사인 파형들이 연속적으로 나타남
  • Frequency Domain에서는 불연속적인 주파수 모형

 

- Nonperiodic Composite Signal(비주기적 복합 신호) : 연속적이고 무한한 값의 주파수를 가진 사인 파형들이 모인 신호이다.

 

  • Time Domain에서는 무한한 시간값에 대해 신호값을 모두 가진 사인 파형들이 결합된 형태로 나타난다.
  • Frequency Domain에서는 연속적인 주파수값을 보여준다.

- Frequency Spectrum(주파수 스펙트럼) : 모든 신호의 구성요소들을 포함하고 주파수 도메인으로 표현되는 하나의 신호를 나타낸다. 넓을수록 다양한 신호를 포함한다.

 

 


Bandwidth(대역폭)

 

- 복합 신호 내에 가장 높은 주파수와 가장 낮은 주파수간의 차이


- 주파수 스펙트럼의 너비

[해당 이미지에서 Bandwidth = 4000Hz 이다.]

 



Digital Signal

 

[파란선이 디지털 신호, 검은 색이 신호레벨]

 

- 왼쪽이 4(22)개의 Signal Level을 가지고 있고, 오른쪽은 8(23)개의 Signal Level을 가지고 있다.

 

- 신호 레벨에 log2를 취하면 표현할 수 있는 값의 종류가 나타난다. 즉 몇 비트로 나타내는가를 알 수 있다.

 

- Bit rate(or Data rate) : 1초당 비트의 수(bits per second)로 단위는 bps이다.

 

- Bit Length = 전파 속도(Propagation speed) * 1비트당 걸린 시간(bit duration)

전송 매체에서 1비트당 이동한 거리

 

- 디지털 신호는 무한한 대역폭을 가진 복합적 아날로그 신호이다.

 

- 대역폭(bandwidth)와 자료 전송율(data rate)이 비례한다. 이유는 주파수 범위가 넓을수록 초당 더 많은 데이터를 담을 수 있기 때문이다.



 Time Domain

Frequency Domain

Periodic

odd harmony(discrete) 

Nonperiodic 

continuous 


 

 


디지털 신호의 전송

 

- 기저대역 전송 (Baseband Transmission)

  • Baseband : 변조되기 이전에 또는 변조되지 않는 원래 정보 신호들이 있는 저주파 영역
  • Low-pass Channel(저대역 통과채널) : 주파수가 0에서부터 시작하는 대역폭을 가진 채널
  • 자료 전송율(Bit rate)과 대역폭이 서로 비례한다. 고속링크를 원한다면 더 넓은 대역폭이 요구된다.
  • 디지털 신호를 아날로그 신호로 변조하지 않고, 저대역 통과채널만 전용으로 사용하는 매체(dedicated medium)를 이용하여 전송하는 방법
  • , 하나의 링크(매체)에 통신가능한 한 개의 채널을 공급한다. 따라서 복수의 단말기로부터 동시에 데이터 전송이 불가능하다.
  • 넓은 대역폭을 가진 저대역 통과채널을 사용하기 때문에 디지털 신호의 모양을 유지할 수 있다. , 디지털 신호가 저대역 통과채널을 이용할 때만 제대로 간다.


- 광대역 전송 (Broadband Transmission)

  • Bandpass Channel(특정대역 통과채널) : 주파수가 0에서 시작하지 않는 대역폭을 가진 채널
  • 이 채널을 이용하려면, 다른 주파수 대역으로 이동시키기 위해 전송 전에 디지털 신호를 무조건 아날로그 신호로 변조해야한다.
  • 디지털 신호를 아날로그 신호로 변조하여 전송하는 방식으로, 하나의 단일 링크에 주파수를 여러 개의 대역으로 분할하여 채널을 할당하므로 사용하고자 하는 대역으로 각각 독립된 신호를 전송하는 것이 가능하다.
  • 각각의 채널은 서로 다른 주파수에서 이뤄지기 때문에 다른 네트워크 통신을 방해하지 않는다.


 

 

OSI Model

 

- OSI Model (OSI 7계층 모형) : Open Systems Interconnection Reference Model의 약자로서, 국제 표준화기구(ISO)에서 개발한 모형이다. 이 모형은 컴퓨터 네트워크의 프로토콜을 기능별로 나누어 각 계층으로 설명한다. 각각의 계층은 하위 계층의 서비스(기능)만을 이용할 수 있고, 반대로 상위 계층에 서비스를 제공한다. 주로 하위 계층은 하드웨어 측면, 상위 계층은 소프트웨어 측면을 구현한다.



* 각 계층마다 데이터 단위(Data Unit)에 관한 용어가 다르다. 위 사진의 계층 왼쪽에 해당 데이터 단위가 적혀 있다.


네트워크를 계층 구조로 나눈 이유

    1. 데이터의 흐름이 한눈에 보인다.
    2. 하나의 문제를 7개의 작은 문제로 나누기 때문에 문제 해결이 쉽다. 
    3. 각 계층마다 사용하는 장비가 다른데, 표준화를 통해 여러 회사의 네트워크 장비를 사용하더라도 이상 없이 작동할 수 있게 된다.


- 7계층 : 응용 계층(Application Layer)

    => 응용 프로세스와 직접 연관되어 일반적인 응용 서비스를 수행한다. 예시로 네트워크 소프트웨어의 UI(User Interface), 사용자의 입출력(Input/Ouput, IO)부분이 있다.

 

- 6계층 : 표현 계층(Presentation Layer)

    => 코드 간의 번역을 담당하여 사용자 시스템에서 데이터의 형식상 차이를 다루는 계층으로, 인코딩이나 암호화 등의 기능이 이 계층에서 이루어진다.


- 5계층 : 세션 계층(Session Layer)

    => 종단간(End-to-End)의 응용 프로세스가 통신을 관리하는 방법을 제공하는 계층으로, 동시 방식(duplex), 반이중 방식(half-duplex), 전이중 방식(full-duplex)의 통신을 가지고 체크 포인팅 및 종료, 다시 시작 등의 과정을 수행한다. , 통신하는 사용자들을 동기화하고 오류복구 명령들을 일괄적으로 다룬다.

 

- 4계층 : 전송 계층(Transport Layer)

    => 송수신측(End-to-End) 간의 신뢰성 있는 데이터 전송(Reliable Data Transfer, RDT)을 가능하게 해주는 계층으로, 상위 계층들이 데이터를 전달하는데 효율성을 신경쓰지 않게 해준다. 예시로 TCP(Transfer Control Protocol)가 있다.

 

- 3계층 : 네트워크 계층(Network Layer)

    => 여러 개의 노드(사용자)를 거칠 때마다 경로를 안내해주는 역할을 하는 계층으로, 길이가 다양한 데이터들을 각 네트워크를 통해 전달하고, 그 과정에서 전송 계층(상위 계층)에 서비스를 위한 기능적, 절차적 수단을 제공한다.

 

- 2계층 : 데이터 링크 계층(Data Link Layer)

    => 점대점(Point-to-Point) 간 신뢰성 있는 전송을 위한 기술들로 이루어져 있으며, 네트워크 계층으로 데이터를 전달하고, 물리 계층으로부터 발생할 수 있는 오류를 찾아내고, 수정하기 위한 기능적이고 절차적인 수단을 제공한다.

 

- 1계층 : 물리 계층(Physical Layer)

    => 네트워크 통신 중 하드웨어의 전송 기술로 이루어져 있으며, 다양한 특징의 하드웨어적인 기술이 드러나기 때문에 가장 복잡한 계층으로 간주된다.

 



네트워크 장비

 

- Hub(허브) : 한 케이블의 입력 신호를 연결된 다른 신호로 그대로 전달하는 리피터(신호 재생기)기능을 한다. , 단순 전송 장비

 

- Switch(스위치) : 2계층(데이터 링크 계층) 장비(네트워크 장비), 스위치에 꼽힌 케이블을 통해 목적지 포트를 향해 데이터들이 전송된다. 허브(Hub)도 유사한 역할을 하지만 가장 큰 차이는 허브의 경우 컴퓨터 간의 연결을 통해 데이터가 전달되기 때문에 데이터가 많아질 경우 속도가 느려진다.

 



- Switching hub(스위칭 허브) : 허브의 기능과 스위치의 기능을 접목한 장비로 단순한 전달 기능을 넘어 목적지 주소에 해당하는 통신 링크로 데이터를 전송한다.

 

- Router(라우터) : 3계층(네트워크 계층) 장비로, 서로 다른 네트워크 간의 정보를 주고받기 위해 사용하는 네트워크 통신 장치

 

 * 과거에 스위치는 링크에 있는 데이터의 헤드를 보고 해당 포트번호로 데이터를 보내는 기능(소프트웨어적인 기술)을 하고, 라우터는 더 넓은 범위(IP를 보고 포워딩)까지 다룬다는 차이를 가지고 있었다. 즉, 스위치와 라우터의 경계가 현재보다 뚜렷했었다. 그러나 현재는 스위치가 발전되어 그 경계가 모호해졌고 기존에 MAC(자료접근제어)을 보고 포워딩하던 스위치는 하드웨어적으로 IP를 분석해서 경로를 설정하고 포워딩할 수 있는 기술에 이르게 되었다. (IP는 복잡하기 때문에 하드웨어로 구현하는 것이 어렵다.)

 



용어 정리

 

- Module (모듈) : 전체나 조직을 이루는 구성 요소 또는 구성 단위

 

- Modularity (모듈성) : 컴퓨터 시스템에서 하드웨어나 소프트웨어의 각 구성 요소의 일부를 변경하고 증설할 때 그 변경이 전체에 영향을 미치지 않도록 해당 부분만 수정할 수 있는 성질. , 통신에 있어서 각각의 독립된 계층(Layer)들이 여러 입출력을 가진 구성 요소(모듈)로서 정의되어 진다. 따라서 각 계층들은 모듈성을 가진다.

 

- Encapsulation(캡슐화) : 위 계층에서 하위 계층으로 갈수록 데이터의 헤더에 목적지 IP주소, 포트번호 등을 추가하여 해당 데이터를 외부에서 볼 수 없도록 하는 것이다. 물리 계층에서 통신링크로 데이터가 보내질 때 데이터(정보)를 보호할 수 있다.

 

- Decapsulation : 캡슐화의 반대어로, 하위 계층에서 상위 계층으로 데이터가 수신자에게 도착하기 까지 오버 헤드된 데이터의 헤드를 하나씩 벗겨내는 과정을 의미한다.

 

[ 검은색 선은 전체적인 데이터의 이동 경로이지만 세부적으로 보자면,

왼쪽 아래방향 검은색 선이 Encapsulation 과정이고 오른쪽 위 방향 검은색 선이 Decapsulation 과정이다. ]




▶ Peer-to-Peer Processes




- 같은 계층에서 정보를 주고 받는 레이어(Peer)


- 또래 계층 간의 데이터 전송에서는 오버 헤드가 해당 계층까지만 이루어지지만 전체 계층을 통과할 경우 캡슐화로 오버 헤드가 커지게 된다. 즉, 전달되는 데이터의 오버 헤드된 부분(AH, PH, SH 등)이 캡슐화의 결과이다.




▶ Communication Summary


 

 

 - Client A 가 보낸 데이터는 응용 계층(7계층) -> 물리 계층(1계층)까지 캡슐화를 거쳐 통신 링크로 전송되고, 링크 중간단계의 스위치와 라우터를 통해 목적지(Client B 또는 C)로 안내되어 진다. 링크로 받은 데이터는 수신측에서 캡슐화가 해제되면서 오버헤드가 벗겨지고 데이터만 수신자가 받게 된다.




▶ Physical Layer (물리 계층)


- 2계층의 데이터 단위인 프레임(Frame)을 전달받고 해당 프레임 안에 각 비트들을 신호로 바꾸어 통신 링크로 옮긴다.


- 각 비트(정보)들을 신호로 바꾸는 과정은 네 가지가 있다.

  • Digital to Digital : 디지털 정보를 디지털 신호로 바꾸는 방법
  • Analog to Digital : 아날로그 정보를 디지털 신호로 바꾸는 방법
  • Digital to Analog : 디지털 정보를 아날로그 신호로 바꾸는 방법
  • Analog to Analog : 아날로그 정보를 아날로그 신호로 바꾸는 방법
- 바꾸어진 신호들은 다중화(Multiplexing) 방식을 거쳐서 복합신호가 되어 링크를 타고 수신측으로 전송된다.


- 두 기기가 전송 매체(통신 링크)에 의해 연결되어 진다.




▶ Data Link Layer (데이터 링크 계층)


- 점대점(Point-to-Point) 간 신뢰성 있는 전송을 위한 기술들로 이루어져 있다.


- 수신측일 경우 네트워크 계층으로 데이터를 전달하고, 송신측일 경우 3계층의 데이터 단위인 데이터그램(Datagram)을 전달받은 뒤, 프레임으로 캡슐화한다. 또래 계층간의 통신이면 링크로 옮기거나, 물리 계층(1계층)으로 프레임을 전달한다.


- 데이터그램에서 프레임으로 캡슐화하는 과정에서는 프레임에 MAC(자료접근제어)이라는 물리적주소를 부여한다.


- Medium Address Control(이하 MAC) : 매체 접근 제어 혹은 자료 접근 제어라고 불리며, 네트워크(LAN이나 WAN)에서 호스트의 물리적주소를 정의하며, 네트워크의 장비를 식별하는 역할을 한다.


- 물리 계층으로부터 발생할 수 있는 오류를 찾아내고수정하기 위한 기능적이고 절차적인 수단을 제공한다.


- Flow Control(흐름 제어) : 송수신 장비의 속도를 조절한다. 보내는 속도가 빠르나 받는 속도가 느릴 경우 수신 장비에서 놓치는 데이터가 발생하기 때문이다.


- Error Control(오류 검출 및 정정) : 신뢰도를 제공한다.


- Access Control(접근 제어) : 공유링크의 사용순서를 결정한다.




▶ Network Layer(네트워크 계층)


- 호스트 간의 통신을 담당하고, 해당 패킷을 라우팅하는 역할을 한다. 라우팅 시 목적지안내를 위해 각 라우터가 목적지 IP 주소에 대한 다음 노드(라우터나 목적지)로 패킷을 보낸다. 이 때 라우팅 알고리즘이 사용된다.


- 주로 라우터가 이 계층에서 동작하지만, 기술의 발전으로 L3용 스위치도 있다. 데이터를 다른 네트워크로 전달하여 네트워크끼리 연결함으로써 인터넷을 가능하게 만드는 계층이다.


- 캡슐화 과정에서 IP주소를 부여한다.


- Internet Protocol(이하 IP

  • 패킷의 형식과 주소들의 구조 및 형식을 정의한다.
  • IP 주소는 흔히 로컬 주소(Local Address)라고도 하며, 통신 장치의 인터페이스 식별자 역할을 한다.
  • 쉽게 말해서, 인터넷에 기기가 연결되었음을 정의한다.

- Internet Control Message Protocol(이하 ICMP) : 데이터그램이 문제가 발생했을 때 해당 통보를 송신자에게 보내기 위해 호스트와 게이트웨이에서 사용되는 메커니즘이다. 즉, 전송 에러를 보고한다.


- Internet Group Management Protocol(이하 IGMP) : 받는 사람이 개인이 아닌 그룹일 때, 어떤 그룹에 몇 개의 메시지가 속해있는지 확인하여 메시지(데이터)를 동시에 전송할 수 있게 한다.


- Dynamic Host Configuration Protocol(이하 DHCP) : IP주소를 동적으로 할당하기 위한 프로토콜


- Address Resolution Protocol(이하 ARP) : IP주소가 주어지면 MAC주소를 확인하여 추가하기 위한 프로토콜




▶ Transport Layer(전송 계층)


- 응용 계층에 서비스를 주는 역할을 한다.


- Transmission Control Protocol(이하 TCP)

  • 연결 지향 프로토콜로서 데이터 전송 전에 두 호스트간의 전송 계층 사이에 논리적인 연결을 설정한다.
  • 스트림 지향적이고 신뢰성 있는 통신규약이다.
  • Flow Control(흐름 제어) : 송신 속도를 수신 속도에 맞추어 목적지 호스트에서 데이터 손실이 발생하는 것을 막는다.
  • Error Control(오류 검출 및 정정) : 손실된 데이터들을 재전송하고 오류 없이 목적지로 패킷을 전송하는 역할을 한다.
  • Congestion Control(혼잡 제어) : 데이터가 너무 많이 전송되어 세그먼트의 손실이 발생하는 것을 막는 역할을 한다.
- User Datagram Protocol(이하 UDP)
  • 비연결 지향 프로토콜로서 논리적 연결을 설정하지 않고 사용자의 데이터를 전송한다.
  • 연결이 없으므로 상태정보를 알기 어렵고 데이터가 컨트롤되지 않는다.
  • 즉, 흐름 제어, 오류 제어, 혼잡 제어 기능이 없다.
  • 단순하고 작은 오버헤드를 가진다.

- TCP가 편지라면, UDP는 소포와 유사하다.


- Stream Control Transmission Protocol(이하 SCTP)

  • TCP와 UDP를 결합한 형태로 멀티미디어 통신에 사용되는 통신규약이다.
  • 멀티스트림(다수의 데이터 요소), 연결 지향, 신뢰성있는 데이터 전송, 전이중성 서비스를 제공한다.
- 포트 번호(Port Number) : 16비트로 이루어져 있으며, 동시에 운영되고 있는 여러 프로세스 사이에서 하나의 로컬 주소를 식별할 수 있는 식별자 역할을 한다. 흔히 80번은 웹페이지 전송 포트 번호(HTTP)이고, 20번, 21번은 파일전송프로토콜(FTP)의 데이터 및 제어포트이다.
  • 0~1023번 : Well-known port, 잘 알려진 포트번호들이다.
  • 1024~49151번 : Registered port, 등록된 포트번호들이다.
  • 49152~65535번 : Dynamic port, 동적 포트번호들이다.



▶ Multiplexing & Demultiplexing


- 출발지(Source)에서의 Multiplexing : 상위 계층으로부터 받은 데이터를 해당 계층의  프로토콜이 데이터의 헤더에 정보를 추가하여 캡슐화하는 것을 의미한다.


- 도착지(Destination)에서의 Demultiplexing : 해당 계층의 각 프로토콜이 하위 계층으로부터 받은 데이터의 캡슐화를 해제하고 다음 상위 계층으로 데이터를 전송하는 것을 의미한다.


- 회선 교환 방식에서 사용하는 다중화와는 약간 다른 의미를 가진다.


 

용어 설명

 

- Packet(패킷) : 네트워크 계층에서 사용하는 데이터의 형식화된 단위

 

- Host(호스트) : 인터넷에 연결된 컴퓨터

 

- Queue() : FIFO(First-In-First-Out) 방식의 데이터 저장용 버퍼 (출구와 입구가 다름)

 

- Router(라우터) : 서로 다른 네트워크 간의 정보를 주고받기 위해 사용하는 네트워크 통신 장치

 


- Network(통신망) : 통신 시스템들을 통신 회선으로 연결하여 데이터(정보)를 주고받게 하는 시스템

 

 



Packet-Switching (패킷 교환 방식)

 


- Store-and-Forward 방식 : 다음 링크로 전송되기 전에 라우터의 큐(저장용 버퍼)에 패킷을 쌓아놓고 한 번에 전송(Forwarding)하는 방식.

 

- , 큐는 패킷을 수용할 수 있는 범위가 정해져 있기 때문에 패킷의 양이 큐의 범위를 넘어설 경우 해당 패킷은 손실(Loss)되며, 이를 오버플로우(Overflow)가 발생했다고 한다.

 

- 패킷의 헤더에는 출발지(Source)와 목적지(Destination)의 정보(포트 번호, IP주소)가 있어 이 정보들을 통해 라우팅 알고리즘을 이용하여 경로를 설정한다.

 

- 라우팅 알고리즘(Routing Algorithms) : 라우팅 프로토콜이 포함하고 있는 알고리즘으로, routing table에는 패킷의 헤더로부터 읽어낸 목적지 IP주소가 있다. 이 정보를 기반으로 라우터가 패킷을 어떤 목적지로 보낼지 결정한다. , 중간의 라우터(router)들이 표지판 역할을 하며 최종목적지까지 패킷들을 안내한다.

 

- 이 때, 패킷의 헤더에는 라우터를 지날 때마다 목적지 IP주소가 쌓이게 되므로 오버헤드가 점차 커지게 된다.

 

- 전송지연(Transmission-Delay) : L-bit 길이의 패킷을 속도가 R bps인 링크로 보낼 때, 큐에서 링크로 전달되는 시간은 L/R 초이다.

 

- 큐잉 지연(Queueing-Delay) : 라우터마다 큐가 각각 존재하기 때문에 다음 라우터로 이동되기 전에 패킷은 대기하게 된다. , 패킷이 큐에 머무는 시간이다.

  • 링크의 전송 속도(bps) < 큐에 패킷이 도착하는 속도 => 오버플로우 발생
  • 전송 지연 시간 > 큐잉 지연 시간 => 오버플로우 발생

 

- 네트워크 상황에 따라 지나친 혼전 가능성이 있으며, 이를 위한 해결책으로 TCP(전송 제어 프로토콜)가 있다.

 

- source에서 router, router에서 router, router에서 destination , 어떤 노드에서 다음 노드까지를 1hop이라고 표현한다.

 

- 이 방식은 주로 대용량 전송(Bursty Traffic)일 때 이용하며, 데이터가 한꺼번에 전송되므로 데이터가 활동하는 시간이 짧다고도 표현한다. 이러한 패킷 교환 방식은 컴퓨터 통신에서 쓰이는 방식이다.

 

 

Circuit-Switching (회선 교환 방식)

 

[ 보라색 선이 전용 회선이다. ]


- 하나의 전용 회선을 할당받아 데이터를 주고받는 방식

 

- 패킷마다 각각의 전용 회선을 할당해야 하므로 통신을 위해 미리 연결(Set-up)절차를 거쳐야 한다. 셋업 절차는 송신측에서 수신측까지의 경로에 맞는 대역폭(Bandwidth)을 미리 할당받는 과정이다.

 

- 전용 회선은 패킷이 전송되지 않더라도 다른 패킷(데이터)이 끼어들 수 없으므로 속도와 성능이 항상 일정하다.

 

- 주로 실시간이 중요한 전화망에 사용된다.

 

- 회선을 할당하는 방식에는 주파수 분할 다중화(FDM)과 시 분할 다중화(TDM) 방식이 있다.

 

 

Packet-Switching VS Circuit-Switching

 

- 패킷 교환 방식은 네트워크의 상황에 따라 대기시간이 다르므로 패킷의 순서가 보장되지 않는다. 그러나 회선 교환 방식은 정해진 경로를 따라 일정한 속도를 가지기 때문에 데이터의 전송 순서가 어긋나지 않는다.

 

- 패킷 교환 방식은 하나의 라우터가 잘못되어도 전송을 우회할 수 있기 때문에 오류에 강하다. 그러나 회선 교환 방식은 둘 사이에 오류가 생길 경우 데이터 전송이 실패하게 된다.

 

- 패킷 교환 방식은 라우터에 저장해놓는 시간(큐잉 지연)과 전파지연의 시간이 소비되어 전체 전송 시간이 지연된다. 그러나 회선 교환 방식은 미리 연결하는 시간을 제외하고 전파지연의 시간만 소비되므로 전체적으로 빠른 전송속도를 가지게 된다.

 

- 회선 교환 방식은 패킷 교환 방식에 비해 같은 네트워크 용량이라도 이용자 수가 제한되어 있다. 이는 전용 회선을 할당하기 때문이다.

 

1Mbps 짜리 링크에 각각의 사용자가 100kbps로 데이터를 전송한다면 패킷 교환 방식의 경우 10명 이상의 유저가 동시에 링크를 사용할 확률이 낮기 때문에 더 많은 이용자가 링크를 공유할 수 있다. 그러나 회선 교환 방식의 경우 각각의 사용자에게 전용 회선이 할당되기 때문에 최대 10명까지 이용자를 수용할 수 있다.

 

 

Multiplexing (다중화)

 

- 여러 개의 데이터 신호(저수준의 채널)들을 합쳐서 고속신호(고수준의 채널)로 만들어서 하나의 링크로 전송하는 방식이다.

 

- 하나의 링크를 다중화시켜 여러 사용자가 동시에 링크를 사용하게 되므로 링크의 효율성이 높아진다.

 

- 이 때 사용하는 장치를 다중화기(Multiplexer)라고 한다. 만약 다중화기를 사용하지 않으면 단말기(사용자)마다 모뎀(변복조기)이 필요하므로 비용이 많이 들게 되어 비효율적이게 된다.

 


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

 

- 링크의 대역폭(Bandwidth)주파수를 기준으로 분할하여 여러 개의 작은 채널을 할당하는 방식으로 한 전송로를 여러 단말기(사용자)가 이용한다.

 

- 링크의 대역폭이 전송할 신호들의 대역폭보다 클 경우에만 사용가능한 아날로그 기술이다.

 

- 간단한 구조로 모뎀(변복조기)이 필요 없어 비용이 저렴하다.

 

- 송신측 과정 : 각 단말기(Sender)가 비슷한 주파수 영역의 신호를 만들면 다중화기 내부에서 각 주파수를 각각의 다른 반송주파수(Carrier Frequency)로 변조(Modulate)한다. 만들어진 반송주파수들이 모여서 하나의 복합신호(Composite Signal)가 되면 수용 가능한 대역폭을 가진 전송 매체(전송로)를 통해 신호가 전송된다.

 

<Multiplexer - 다중화기>


- 수신측 과정 : 위의 과정에서 만들어진 복합신호는 다중 복구기(Demultiplexer) 내부에서 필터(Filter)를 통해 각각의 반송주파수로 분리되고, 제각각 복조기(Demodulator)를 통해 반송주파수에서 해당 주파수 영역의 신호로 복조(Demodulate)되어 해당 신호만 수신측으로 보내진다.





 

시 분할 다중화(Time Division Multiplexing, TDM)

 

- 링크의 대역폭을 시간 슬롯(Time Slot)으로 나누어 각각 채널을 할당하는 방식으로 다수의 채널이 하나의 링크의 시간을 분할하여 사용하는 방식이다.

- 링크의 높은 대역폭을 여러 채널이 공유할 수 있게하는 디지털 기술이다.

- , 어떤 채널이 사용되지 않을 경우(데이터를 전송하지 않는 경우)에도 시간이 할당되어 있기 때문에 시간 슬롯이 낭비 될 때가 있다. 이를 위한 해결책으로 비동기식 시분할 다중화기법(ATDM)이 있다.

 

- 송신측 과정 : 다중화기(Multiplexer)와 다중 복구기(Demultiplexer)는 각각 스위치의 역할을 한다. 서로 동시에 시스템이 동작되도록 설정(동기화)되어 같은 속도지만 서로 반대방향으로 돈다. 다중화기의 경우 스위치가 채널 앞에서 열리게 되며 그 채널은 링크에 보낼 수 있는 신호를 열린 순간 전송하게 된다. 이 과정을 끼워 넣기(Interleaving)이라고 한다.

 

- 수신측 과정 : 다중 복구기의 경우 스위치가 채널 앞에서 열릴 때, 그 채널은 링크에서 전송된 신호를 수신측으로 전송하게 된다.




 


▶ Multiplexing Summary


- 두 기술 모두 하나의 링크를 나누어 사용하는 점에서 같지만, FDM은 주파수 대역별로

나누어 채널을 할당하는 것이고, TDM은 시간별로 나누어 채널을 할당한다는 점에서 차이가 있다.


+ Recent posts