[Network] DataLink Layer (1) - MAC Protocol

박주현·2024년 9월 1일

Network

목록 보기
9/16

DataLink Layer

node : host 와 router
link : node 간의 연결된 communication path

DataLink Layer는 data를 한 node에서 다른 node로 link를 통해 전달하는 것을 담당한다. NIC 혹은 chip 안에 구현된다.
ex) Ethernet, Wifi Card

Point to Point

node 간에 1:1로 이루어지는 link

Broadcast

node 간에 n:m으로 이루어지는 link
ex) shared wire or wireless medium

MAC Protocol (Medium Access Control)

2개 이상의 신호가 같은 시간 대에 node에 도착하게 될 시, Collision이 발생한다.

Channel partitioning

channel을 작은 조각으로 쪼갠다. (time slots, frequency, code) 조각을 독점해서 사용한다.

TDMA (Time Division Multiple Access)

Channel을 일정한 시간의 길이만큼 slot으로 나눈다. 각 node는 하나의 slot을 독점하여 사용한다. 사용되지 않는 slot만큼의 시간은 channel을 idle 상태가 된다.

FDMA (Frequency Division Multiple Access)

Channel을 Frequency에 따라 Station으로 나눈다. 각 Station은 고정된 Frequency Band를 가진다. 사용되지 않는 Station은 idle로 상태가 된다.

Taking turns

node마다 돌아가며 turn을 받아서 channel을 사용한다.

Polling

Master Node가 다른 slave node를 지정해서 전송할 수 있는 Turn을 준다. 이러한 과정을 polling이라고 한다. 이에 걸리는 시간을 Polling Overhead라고 한다. 또한 Turn을 받지 못한 다른 Node들은 Latency가 발생한다. 만약 Master Node에 고장이 발생하면 전체 Node의 전송이 불가해진다.

Token Passing

Token을 가지고 있는 Node의 전송이 끝나면 다음 Node에게 Token을 전달한다. 이 Token을 전달하기 위해 Node는 다음 Node에게 Token Message를 전송한다. Token Message 전달시간을 Token Overhead라고 하며, Token을 받을 때까지 대기하는 시간을 Latency라고 한다. Token을 가지고 있는 Node가 고장나면, 모든 Node가 대기하게 된다.

Random access

Collision을 허용하고 recover를 한다.
Recover를 위해 Collsion을 감지해아하며 Recover 방식을 구현해야한다.

CSMA (Carrier Sense Multiple Access)

전송하기 전에 수신을 한다.
Channel이 idle이면 전체 packet을 전달한다.
Channel이 busy면 전송을 지연한다.
Packet이 목적지 node에 도달하는 데에는 시간이 걸린다. => 도달 전까지는 Channel을 상태가 idle로 된다. => Collision 발생 (모든 전송에 대한 시간 낭비)

CSMA/CD (Collision Detection)

CSMA/CD의 알고리즘
1. Packet (Frame) 생성
2. 채널 감지
3. 전체 Frame이 전송되면 완료
4. 다른 전송 감지 시, 중단 (jam signal 전송)
5. 중단 후 binary backoff 실시
※ binary backoff : 랜덤한 k 선정 후 k만큼 wait (collision overhead)

profile
코딩초보의 공부일기

0개의 댓글