Link layer는 인접한 node 간에 datagram을 전달하는 역할을 한다. “Link”는 통신 경로를 따라 인접 node를 연결하는 통신 채널이다.

서비스설명
FramingNetwork layer datagram을 frame으로 encapsulate. Header, trailer 추가
Link access공유 매체의 경우 채널 접근을 조율하는 MAC(Medium Access Control) protocol
Reliable delivery인접 node 간 신뢰성 있는 전달. 오류율 높은 link(wireless)에서 주로 사용. 오류율 낮은 link(fiber)에서는 드물게 사용
Error detection전기 신호 감쇠나 noise에 의한 bit error 검출. Receiver가 오류 발견 시 재전송 요청 또는 폐기
Error correction재전송 없이 receiver가 직접 bit error를 수정

Link layer는 모든 host에서 NIC(Network Interface Card) 또는 칩에 구현된다:

  • NIC: Ethernet card, WiFi card, 또는 칩셋에 통합
  • NIC는 link layer와 physical layer를 구현
  • NIC는 host의 system bus에 연결
  • Hardware(NIC) + software(driver) + firmware의 조합

2. Error Detection과 Correction

전송 중 bit error가 발생할 수 있으므로, 이를 검출(detection)하고 수정(correction)하는 메커니즘이 필요하다. Sender가 data bits 에 error detection/correction bits(EDC)를 추가하여 전송한다.

2.1 Parity Checking

Single bit parity: Data bits의 1의 개수가 짝수(even parity) 또는 홀수(odd parity)가 되도록 1 bit를 추가한다. 단일 bit error를 검출할 수 있지만, 짝수 개의 bit error는 검출하지 못한다.

Two-dimensional bit parity: Data bits를 2차원 행렬로 배열하고, 각 행과 열에 parity bit를 추가한다. 단일 bit error를 검출하고 수정할 수 있으며, 2 bit error도 검출할 수 있다(수정은 불가).

2.2 Internet Checksum

UDP, TCP에서 사용하는 checksum:

  • Data를 16-bit integer의 sequence로 취급
  • 모든 16-bit integer를 더함 (1’s complement sum)
  • 합의 1’s complement를 checksum으로 사용
  • Receiver가 같은 계산을 하여 결과가 0이면 error 없음

2.3 CRC (Cyclic Redundancy Check)

Link layer에서 가장 강력한 error detection 방식이다. 실무에서 널리 사용된다.

원리:

  • : Data bits (주어진 data)
  • : Generator bit pattern ( bits). Sender와 receiver가 합의
  • : CRC bits ( bits). 에 추가하여 전송
  • 목표: (즉 )이 정확히 나누어지도록 을 결정

계산: (modulo-2 arithmetic, XOR 사용)

CRC는 bits 이하의 burst error를 100% 검출할 수 있다. Ethernet, WiFi, ATM 등에서 사용된다.

3. Multiple Access Protocol

단일 공유 broadcast 채널에서 여러 node가 동시에 전송하면 collision(충돌)이 발생한다. Multiple access protocol은 node가 채널을 공유하는 방식을 결정하는 distributed algorithm이다.

Link의 두 유형:

  • Point-to-point: Ethernet switch-host 간 전용 link, PPP 등
  • Broadcast (shared medium): 구형 Ethernet(shared bus), WiFi, upstream HFC, 4G/5G

이상적인 multiple access protocol의 요건 (채널 rate bps):

  1. 하나의 node만 전송 시 rate 로 전송 가능
  2. 개 node가 전송 시 각각 평균 의 rate
  3. 완전 분산: 조율을 위한 특별한 node나 clock 동기화가 불필요
  4. 단순

3.1 MAC Protocol 분류

분류설명예시
Channel Partitioning채널을 작은 “조각”(time slot, frequency, code)으로 나누어 각 node에 배정TDMA, FDMA, CDMA
Random Access채널을 분할하지 않고, collision을 허용하되 복구ALOHA, Slotted ALOHA, CSMA, CSMA/CD, CSMA/CA
Taking TurnsNode가 순서대로 전송하되, 보낼 데이터가 많은 node가 더 긴 차례를 가짐Polling, Token passing

3.2 Channel Partitioning

TDMA (Time Division Multiple Access)

  • 시간을 고정 길이 slot으로 나누고, 각 node에 전용 slot을 배정
  • 장점: Collision 없음. 단점: 사용하지 않는 slot은 낭비

FDMA (Frequency Division Multiple Access)

  • 채널 주파수 대역을 분할하고, 각 node에 고정 대역을 배정
  • 장점: 동시 전송 가능. 단점: 사용하지 않는 대역 낭비

3.3 Random Access Protocol

전송할 packet이 있으면 전체 channel rate 로 즉시 전송한다. 사전 node 간 조율이 없다. Collision이 발생하면 이를 검출하고 복구한다.

Slotted ALOHA

  • 모든 frame이 동일 크기이고, 시간이 동일 크기 slot으로 분할됨 (slot = 1 frame 전송 시간)
  • Node는 slot 시작 시점에만 전송 시작
  • Collision 발생 시: 다음 slot에서 확률 로 재전송

효율: 개 node가 확률 로 전송할 때, 성공 확률 = . 에서 최대 효율 = (37%)

Pure ALOHA (Unslotted)

  • Slot 동기화 없이 데이터가 있으면 즉시 전송
  • Collision 확률이 더 높음
  • 최대 효율: (Slotted ALOHA의 절반)

CSMA (Carrier Sense Multiple Access)

“Listen before transmit” - 전송 전에 채널이 사용 중인지 감지한다:

  • Channel idle: 전체 frame 전송
  • Channel busy: 전송을 보류(defer)

그러나 CSMA에서도 collision이 발생할 수 있다. Propagation delay 때문에 두 node가 상대방의 전송을 듣지 못하고 동시에 전송을 시작할 수 있기 때문이다. Collision 발생 시 전체 packet 전송 시간이 낭비된다.

CSMA/CD (Collision Detection)

CSMA에 collision detection을 추가한다:

  • 전송 중에 collision을 감지하면 즉시 전송을 중단(abort), 채널 낭비를 줄임
  • 유선 LAN(Ethernet)에서 쉽게 구현 가능. 무선에서는 어려움

Ethernet CSMA/CD 알고리즘:

  1. NIC가 network layer에서 datagram을 받아 frame을 생성
  2. Channel sensing: idle이면 전송 시작, busy이면 idle이 될 때까지 대기
  3. 전체 frame이 collision 없이 전송되면 완료
  4. 전송 중 다른 전송을 감지하면(collision): 전송을 중단하고 jam signal 전송
  5. Binary (Exponential) Backoff: 번째 collision 후, 에서 랜덤 선택. bit times 대기 후 Step 2로 복귀
    • Collision이 반복될수록 backoff 범위가 넓어져, 더 오래 기다릴 확률이 높아짐

3.4 Taking Turns

Polling

  • Master node가 각 node를 순서대로 초대(poll)하여 전송하게 함
  • 단점: Polling overhead, single point of failure (master 장애 시 전체 마비)

Token Passing

  • 제어 token이 node 간 순서대로 순환
  • Token을 가진 node만 전송 가능. 전송이 끝나면 token을 다음 node에 전달
  • 단점: Token overhead, single point of failure (token 분실 시), latency

4. LAN (Local Area Network)

4.1 MAC Address (Physical Address)

네트워크 interface를 식별하는 두 가지 주소 체계:

IP AddressMAC Address
크기32 bits (IPv4)48 bits
용도Network layer forwarding (source destination)Link layer, 같은 subnet 내 frame 전달
관리Subnet에 의존 (hierarchical)NIC ROM에 고정 (flat)
Portability이동 불가 (subnet에 종속)이동 가능 (LAN을 바꿔도 MAC 유지)
관리 기관ICANNIEEE
표기Dotted decimal (128.119.40.136)Hexadecimal (1A-2F-BB-76-09-AD)
비유우편 주소 (위치 기반)주민등록번호 (신원 기반)

Broadcast MAC address: FF-FF-FF-FF-FF-FF - LAN 내 모든 node에 frame을 전송

4.2 ARP (Address Resolution Protocol)

IP address만 알고 있을 때, 같은 LAN에 있는 destination의 MAC address를 어떻게 알아낼 것인가? 이것이 ARP의 역할이다.

각 IP node(host, router)는 ARP table을 유지한다:

ARP Table Entry설명
IP address대상 node의 IP 주소
MAC address대상 node의 MAC 주소
TTL이 매핑이 만료되는 시간 (보통 20분)

ARP 동작 (A가 B의 MAC address를 알고 싶을 때):

  1. A가 B의 IP address를 담은 ARP query를 LAN에 broadcast (dest MAC = FF-FF-FF-FF-FF-FF)
  2. LAN의 모든 node가 ARP query를 수신
  3. B만이 자신의 IP address임을 인식하고, A에게 ARP reply로 자신의 MAC address를 응답 (unicast)
  4. A가 B의 (IP, MAC) 매핑을 ARP table에 저장 (TTL 이후 만료)

ARP는 “plug-and-play” 프로토콜이다 - 관리자 개입 없이 자동으로 동작한다.

4.3 다른 Subnet으로의 Routing: IP와 MAC Address의 역할

Host A(111.111.111.111)가 다른 subnet의 Host B(222.222.222.222)에 datagram을 보내는 과정:

핵심 원리: IP address는 end-to-end로 유지되지만, MAC address는 hop-by-hop으로 바뀐다.

  1. A가 IP datagram 생성: src IP = A, dest IP = B
  2. A가 link-layer frame 생성: src MAC = A의 MAC, dest MAC = R(router)의 MAC (B가 아님!)
    • A는 B가 다른 subnet에 있음을 알고, default gateway R의 MAC address를 사용 (ARP로 획득)
  3. Frame이 R에 도착, R이 frame에서 datagram을 추출
  4. R이 forwarding table로 outgoing interface를 결정
  5. R이 새 frame 생성: src MAC = R의 outgoing interface MAC, dest MAC = B의 MAC (ARP로 획득)
    • IP datagram은 변경 없이 유지 (src IP = A, dest IP = B)
  6. Frame이 B에 도착, B가 datagram을 추출하여 IP layer로 전달

4.4 Ethernet

Ethernet은 가장 널리 사용되는 유선 LAN 기술이다.

Ethernet Frame 구조:

Field크기설명
Preamble8 bytes7 bytes의 10101010 + 1 byte의 10101011. Clock 동기화에 사용
Dest Address6 bytesDestination MAC address. FF-FF-FF-FF-FF-FF이면 broadcast
Source Address6 bytesSource MAC address
Type2 bytes상위 layer protocol 표시 (주로 IP: 0x0800, ARP: 0x0806)
Data (Payload)46-1500 bytesIP datagram 등. 최소 46 bytes(미달 시 padding)
CRC4 bytesError detection. 오류 시 frame drop

Ethernet의 특성:

  • Connectionless: Handshaking 없이 전송
  • Unreliable: 수신 NIC가 ACK/NAK를 보내지 않음. Dropped frame은 상위 layer(TCP 등)에서 복구
  • CSMA/CD with binary backoff 사용 (traditional Ethernet)

Ethernet 표준

IEEE 802.3 Ethernet standard로 정의되며, link layer와 physical layer를 모두 다룬다:

  • 100BASE-TX: 100 Mbps, twisted pair (copper)
  • 100BASE-FX: 100 Mbps, fiber
  • 1000BASE-LX: 1 Gbps, fiber (long distance)
  • 10GBASE-T: 10 Gbps, twisted pair
  • 40GBASE-T: 40 Gbps, twisted pair

4.5 Ethernet Switch

Switch는 link layer device로, Ethernet frame을 store-and-forward하며 MAC address를 사용하여 incoming frame을 적절한 outgoing link로 전달한다.

특성:

  • Transparent: Host는 switch의 존재를 인식하지 못함
  • Self-learning: Switch가 스스로 forwarding table을 구성 (plug-and-play, 설정 불필요)

Self-Learning

Switch는 어떤 host에 어떤 interface를 통해 도달할 수 있는지를 학습한다:

  1. Frame이 도착하면 source MAC address를 기록하고, 해당 frame이 들어온 interface와 매핑
  2. 해당 (MAC, interface) 매핑을 switch table에 저장 (TTL 이후 만료)

Forwarding

Frame이 switch에 도착했을 때:

  1. Destination MAC이 table에 있으면 해당 interface로 forward (self-loop이면 drop)
  2. Table에 없으면 도착한 interface를 제외한 모든 interface로 flood

Switch vs Router

비교 항목SwitchRouter
LayerLink layer (Layer 2)Network layer (Layer 3)
주소MAC addressIP address
TableSelf-learning (plug-and-play)Routing algorithm으로 구성
BroadcastBroadcast storm 가능Broadcast domain 분리
TopologySpanning tree로 loop 방지임의 topology 가능

4.6 VLAN (Virtual Local Area Network)

물리적 LAN 인프라를 논리적으로 분할하여, 여러 개의 가상 LAN을 구성하는 기술이다.

VLAN의 필요성:

  • 단일 broadcast domain이 너무 크면 효율 저하 (모든 layer 2 broadcast가 전체 LAN에 전파)
  • 부서 이동 시 물리적 재배선 대신 software 설정만으로 LAN을 재구성하고 싶음

Port-based VLAN: Switch의 port를 VLAN 그룹으로 분류. 같은 VLAN의 port만 같은 broadcast domain을 형성.

VLAN 간 통신은 router를 통해서만 가능하다 (Layer 3 routing).

802.1Q VLAN frame: VLAN 간 frame을 전달하기 위해 Ethernet frame에 4-byte VLAN tag를 추가한다. Tag에는 12-bit VLAN ID가 포함되어, 어느 VLAN에 속하는 frame인지 식별한다.

5. Chapter 6 정리

주제핵심 내용
Link Layer 서비스Framing, link access (MAC), reliable delivery, error detection/correction
Error DetectionParity (single/2D), Internet Checksum, CRC (modulo-2, 가장 강력)
Multiple AccessChannel partitioning (TDMA, FDMA), Random access (ALOHA, CSMA, CSMA/CD), Taking turns (polling, token)
Slotted ALOHA최대 효율 37%. Pure ALOHA는 18%
CSMA/CDListen before transmit + collision detection + binary exponential backoff. Ethernet에서 사용
MAC Address48-bit, flat, NIC ROM에 기록. IEEE 관리. Broadcast: FF-FF-FF-FF-FF-FF
ARPIP MAC 변환. Broadcast query + unicast reply. Plug-and-play. TTL 20분
Subnet 간 RoutingIP address는 end-to-end 유지. MAC address는 hop-by-hop 변경
EthernetFrame: Preamble + Dest/Src MAC + Type + Data + CRC. Connectionless, unreliable. CSMA/CD
SwitchLayer 2, MAC 기반 forwarding. Self-learning, plug-and-play. Transparent
VLAN물리적 LAN을 논리적으로 분할. Port-based. 802.1Q tag (12-bit VLAN ID)