1. Link Layer 하는 역할
Link Layer 는 error detection 및 correction 을 한다.
또한 broadcast channel 에서 각각의 패킷이 충돌하지 않고 다음 hop 으로 전송될 수 있도록 control 해준다.
2. Link Layer의 구조
link layer 에서 host들과 router들을 node로 보고, 이 node들을 잇는 communication channel들을 link 라고 한다.
node들을 잇는 communication path로는 wired links(유선 통신), wireless links(무선 통신), LAN 이 있다.
link layer 는 컴퓨터의 network interface card (NIC) 에 구현되어 있다.
3. MAC protocol 의 의미
broadcast medium 은 한 네트워크 상에 여러 host들이 매체(medium)를 공유해서 사용하고 있다는 의미이다. 그런데 이 여러개의 Host들이 매체에 접근할 때 동시에 두 개 이상 한번에 접근할 수 없으며, 동시에 여러 host가 접근할 경우 충돌이 일어날 것이다.
이러한 충돌을 방지하기 위해 만든 프로토콜이 Medium Access Control 의 약자인 MAC protocol 이다.
4. MAC protocol 의 종류
1) 이상적인 MAC protocol
이상적인 MAC protocol 은 다음과 같을 것이다. 우선, 전송할 node가 단 하나뿐이라면 전체 broadcast channel 을 R bps 로 다 사용할 수 있어야 한다. 그리고 전송할 node 개수가 M개라면, 각각의 node를 R/M bps로 전송할 수 있어야 한다.
또한 분산처리가 가능하고 간단한 protocol 이라면 이상적일 것이다.
2) MAC protocol 의 종류
a. channel partitioning
우선 시간을 기준으로 나누는 channel partitioning 이 있다.
channel을 더 작은 크기의 단위로 나누어서 사용하는 개념인데, 나누는 기준은 시간이다. 시간 단위로 나누어서 고정된 길이의 slot을 만든다. 다수의 node들을 전송하기 위해서 사용할 수 있게 한다.
단점은 그림에서도 확인할 수 있듯이, 2번 slot과 같이 사용하지 않는 slot 이 발생하며 이로 인해 자원의 낭비가 있다.
또한 주파수 대역을 기준으로 나누는 FDMA ( frequency division multiple access ) 방식이 있다. 주파수 대역을 나눠서 사용하는 것이며, 이 방법 역시 사용하지 않는 부분에 대한 자원의 낭비가 발생한다.
b. random access
channel partitioning과 달리, channel 을 나누지 않는다.
충돌이 발생할 것이라는 것을 인정하고, 충돌이 발생한 후 어떻게 해결할지에 좀 더 집중하고 있다.
CSMA (carrier sense multiple access) 방식이 있으며, 이는 전송하기 이전에 상태를 확인하라는 것이다. idle 상태를 감지했을 때 node를 전송하고, 이미 channel 을 다른 누군가 사용하고 있다면 전송을 보류한다.
그러나 충돌은 여전히 발생할 수 있다. propagation delay 가 발생할 수 있기 때문이다. 이는 어느 한 node가 다른 node가 전송이 되고 있는 상태인 것을 시간 차이로 인해서 알지 못하는 경우이다. 그런데 propagation delay는 빛의 속도와 같다. 즉, 이 delay 를 해결하는 것은 불가능하며 충돌이 발생한다면 이미 전송한 frame들도 날라가서 비효율적이다.
이를 해결하기 위한 방법이 CSMA/CD (CD: collision detection) 방식이다.
충돌이 발생하게 되면, 멈춘다. 이 멈춰서 기다리는 상태를 backoff라고 한다.
충돌이 m번 일어나게 되면, NIC는 {0, 1, 2, ... 2^m-1} 중에 하나를 랜덤 선택해서 그 만큼의 시간동안 기다린다.
예를 들어, 충돌이 1번 일어나면 {0, 1} 중에서 backoff시간을 정할 것이며, 충돌이 2번 일어나면 {0, 1, 2} 중에서 선택할 것이다. 즉, 충돌이 많이 일어날 수록 backoff의 범위는 늘어나게 될것이며 범위가 넓어야 각자 다른 숫자를 고르게 될 것이다.
생각해보면 당연한 것인데, 사용자가 많은 경우, 충돌이 많이 일어날 것이다. 충돌이 많이 일어나면 backoff 범위가 넓어지고 이 말은 지연 시간이 늘어난다는 것이다. 학교에서 wifi를 사용할 때 같은 wifi를 사용하는 학생들이 많으면 많을 수록 지연시간이 늘어난다는 것과 동일한 의미이다.
CSMA/CD는 Ethernet 유선 통신에 적합하여 쓰인다.
c. taking turns
taking turns 방법은 말그대로 순서대로 channel을 사용한다는 의미이다.
- polling : master - salve 구조로, master가 가리키는 slave 만 data를 전송할 수 있다. 단점은 single point of failure이다. 즉, master 가 가리키는 pointer 에 문제가 발생하면 시스템 전체에 장애가 발생할 것이다.
- token passing : token 을 가지고 있는 node만 data를 전송할 수 있다. 단점은 polling 과 마찬가지로, single point of failure이다. token을 잃어버리는 경우 (token에 문제가 발생한다면) 시스템 전체에 장애가 발생할 것이다.
'Computer Science > 네트워크' 카테고리의 다른 글
[Network] IP 클래스와 IPv4, IPv6 주소체계 (2) | 2023.03.05 |
---|---|
[네트워크] SSL/TLS Handshake 과정 (0) | 2023.02.12 |
[Network] Link Layer(2) - 이더넷(Ethernet)과 ARP 테이블, 프레임 구조 (0) | 2022.12.31 |
[네트워크] IP주소 체계 (0) | 2022.12.26 |
[네트워크] OSI 7 계층 (2) | 2022.12.25 |