Computer/네트워크

[네트워크] 링크 계층

치즈랑 2026. 7. 14. 22:11

https://app.notion.com/p/6-1-358e2a9f374980768f9fd7c68c28e472

목표

  • 종단 간 통신 경로상의 개별 링크를 따라 패킷이 어떻게 전달되는지
    • 어떻게 캡슐화(L3 → L2) ⇒ 단일 링크 전송
    • 통신 경로 상의 링크마다의 링크 계층 프로토콜
    • 브로트캐스트 링크에서의 전송 충돌
    • 링크 계층 주소체계 (feat. 네트워크 계층 주소체계)
    • 스위치 vs 라우터
  • 링크 계층 채널
    • 링크 vs 채널
      • 링크 - 물리
      • 채널 - 논리
    1. 브로드캐스트 채널
      • LAN, 위성 네트워크, HFC(hybrid fiber-coaxial cable) 접속 네트워크에서 다수의 호스트 연결
      • 매체 접속 프로토콜(media access protocol) ⇒ 프레임 전송
        • 중앙 컨트롤러 전송 조정
        • 호스트 자체적으로 전송 조정
    2. 점대점(point-to-point) 통신 링크
      • 연결
        • 원거리 링크에 의해 연결된 두 라우터
        • 사용자의 사무실 컴퓨터와 이 컴퓨터에 연결된 근처 이더넷 스위치
      • 접근 제어 = PPP (Point-to-Point Protocol)
        • 전화선을 이용한 다이얼업 서비스 ~ 광 링크상에서의 고속 점대점 프레임 전송에 이용
  • 링크 계층 개념 및 기술
    • 오류 검출과 정정
    • 스위치 랜(switched LAN) ⊃ 이더넷, 다중 접속 네트워크
    • 가상 랜, 데이터 센터 네트워크
    • 와이파이 7장

링크 계층 Overview

  • 노드(node) : 링크 계층 프로토콜을 실행하는 장치
    • e.g. 호스트, 라우터, 스위치, 와이파이 AP(access point) 등
  • 링크(link) : 통신 경로상의 인접한 노드들을 연결하는 통신 채널
    • 데이터그램의 출발지 호스트 ~ 목적지 호스트 이동
      → 종단 간 경로의 개별 링크들로 이동

e.g. 기업 네트워크의 무선 호스트 → 서버 (데이터그램 전송)

  1. 송신 호스트 → 와이파이 AP 와이파이 링크
  2. AP → 링크 계층 스위치 이더넷 링크
  3. 링크 계층 스위치 → 라우터 링크
  4. 두 라우터 간의 링크
  5. 라우터 → 링크 계층 스위치 이더넷 링크
  6. 스위치 → 서버 이더넷 링크

 

  • (데이터그램→)링크 계층 프레임으로 캡슐화해서 전송

 

 

  • ※ 참고예시
    • 상황 : 여행사 직원이 여행객을 위해 파리 루브르박물관을 가기 위한 경로를 정해준다.
      1. 집에서 인천 공항까지 공항 리무진
      2. 인천 공항에서 파리 오를리 공항까지 비행기
      3. 파리 오를리 공항에서 루브르 박물관이 있는 역까지 지하철
    • 여행사 직원 = 라우팅 프로토콜
    • 여행객 = 데이터그램
    • 운송 수단 = 링크
    • 운송 방식 = 링크 계층 프로토콜

링크 계층 (프로토콜)의 제공 서비스

  • 기본 서비스 : 단일 통신 링크상으로 데이터그램을 한 노드에서 인접 노드로 이동
    • ※ 단일 통신 링크= 중간에 라우터 X
    • 점대점, 공유매체(브로드캐스트, 와이파이 AP 등)의 연결도 단일 링크라고 부른다.
    • 하나의 노드에 연결되어 있는 다른 노드의 통신 링크
  • 서비스의 세부사항 - 특정 링크 계층 프로토콜
  • 프레임화(framing)
    • 거의 모든 링크 계층 프로토콜은 네트워크 계층 데이터그램 → 캡슐화 → 링크 계층 프레임
    • 프레임 = 헤더 필드 여러 개 + 데이터 필드
    • 프레임 구조 by 링크 계층 프로토콜
  • 링크 접속(link access)
    • MAC (medium access control, 매체 접속 제어 프로토콜)
    • 프레임을 전송 규칙 명시
      • 점대점 링크
        • MAC 프로토콜을 단순하게 구현/구현X
        • 송신자는 링크가 사용되지 않을(idle) 때마다 프레임 전송 O
          • ※ idle란
            • 링크가 비어 있음
            • in 점대점
              • 송신자가 수신자에게 데이터 전송 X
            • in 브로드캐스트
              • 공유된 매체에 아무런 신호 X
      • 브로드캐스트 링크, 여러 노드 공유(다중 접속 문제)
        • MAC 프로토콜 여러 노드로부터의 프레임 전송 조정
  • 신뢰적 전달
    • TCP(전송 계층)처럼 확인응답 + 재전송
    • 무선 링크에서 주로 사용 (오류율 높은 링크)
      • 유선 링크 계층 프로토콜
        (낮은 비트 오류율 가진 링크 - 광섬유, 동축케이블, 다수의 꼬임상 선 링크)
        → 오버헤드로 인해 X
    • 오류가 발생한 링크에서 오류를 정정
      • 트랜스포트 계층과 애플리케이션 계층 vs 링크 계층 재전송 메커니즘
        • L4, L5 : 종단에서 재전송
        • L2 : 오류가 발생한 링크에서 재전송
  • (비트) 오류 검출과 정정
    • 수신 노드 링크 계층 하드웨어 1 → 0 (반대의 상황)
    • 오류 발생 원인 : 신호의 약화 / 전자기 잡음
    • 방식
      1. 송신 노드에서 프레임에 오류 검출 비트 설정
      2. 수신 노드에서 오류 검사 수행
    • 일반적인 서비스
    • 하드웨어 구현, 어느 곳에서 발생했는지 확인 O
    • 전송 계층과 네트워크 계층에서의 차이
      • 인터넷 체크섬(Internet checksum)으로 제한된 형태의 오류 검출
        (어디에서 틀렸는지 확인 X)

링크 계층이 구현되는 위치

  • 종단시스템에서 링크 계층을 구현하는 방법
    • 쟁점
      • 구현 방식 : 하드웨어 / 소프트웨어
      • 물리적 구현체 : 별도의 카드/칩
        • ※ 카드 vs 칩
          • 카드 : 칩과 커넥터(포트) 등이 박혀 있는 회로 기판
            • ≈ 메인 보드 (기판)
            • e.g. Network adapter
          • 칩 : 실질적인 연산을 처리하는 반도체 소자
            • ≈ CPU (연산 장치)
            • e.g. (Network) Controller
          • 카드 ⊃ 칩
      • 호스트의 나머지 하드웨어나 운영체제 구성요소와 어떻게 인터페이스

 

  • 이더넷 기능은 마더보드 칩셋, 저가의 이더넷 전용 칩으로 구현
    • 이더넷은 6.4절에서 자세히
  • 대부분 링크 계층은
    **네트워크 인터페이스 컨트롤러(Network Interface Controller, NIC = 네트워크 어댑터)**로 구현
    • 링크 계층 컨트롤러
      • 링크 계층 서비스(프레임화, 링크 접속, 오류 검출 등) 사용
        • 송신 컨트롤러 :
          • 프레임화 : 호스트 메모리에 있던 데이터그램 → 프레임으로 캡슐화 → 통신 링크로 전송
          • [오류 검출 : 오류 검출 비트 설정 (당연히 프레임 헤더!)] 선택 사항이지만 필수겠죠
        • 수신 컨트롤러 :
          • 프레임화 : 프레임 수신 → 네트워크 계층 데이터그램 추출 (=역캡슐화)
          • [오류 검출 : 오류 검출 수행]
      • 구현 방식 : 대부분 하드웨어
      • 물리적 구현체 : 단일의 특수 용도 칩
      • e.g. 인텔 700 계열 어댑터[Intel 2020] - 이더넷 프로토콜 구현, 6.4에서 자세히
        아테로스(Atheros) AR5006[Atheros 2020] 컨트롤러 - 802.11 와이파이 프로토콜 구현,
        7절에서 자세히
  • 나머지의 링크 계층 기능 = 상위 레벨의 링크 계층 기능
    • 구현 방식 : 소프트웨어
    • 호스트 계층 주소 정보 조립, 컨트롤러 하드웨어의 활성화(activation) 등 사용

오류 검출 및 정정 기술

  • 비트 레벨 오류 검출 및 정정
  • 대략적인 순서

  • 송신 노드
    • 데이터 D + 오류 검출 및 정정 비트 (EDC) 첨가
      • D = 데이터 그램 데이터 링크 프레임헤더(링크 레벨의 주소 정보, 순서 번호 및 기타 필드)
  • 수신 노드
    • D’, EDC’ 수신
    • D’, EDC’로 D와 D’ 동일한지 확인
    • 문제 : 미검출된 비트는?
      • 향상된 오류 검출 및 정정 기술 → 더 많은 오버헤드(계산 시간)
  • 패리티 검사 vs 체크섬
    • 체크섬은 오류가 발생할 확률이 낮다.
    • 패리티 검사는 단순하고 계산이 빠르나 버스트 오류인 경우 검출하기 어렵다.
      (짝수 패리티 기법에서 임의의 짝수 비트의 오류가 생기는 경우)

패리티 검사 - 오류 검출 및 정정(FEC)s

  • 오류 검출의 기본 개념
  • 패리티 비트 - 1의 개수
    • [짝수|홀수] 패리티 비트 = 1의 총 개수가 [짝수|홀수]
    • → 임의의 홀수개 비트 오류 검출 O
    • 비트 오류 확률 작고, 오류가 비트마다 따로 발생 → 다중 비트 오류 확률 적다 = 사용 O

  • 문제 : 임의의 짝수개 비트 오류 검출 X, 오류 정정 X
    • 다중 비트 오류 ‘burst’ 형태로 한꺼번에 발생 → 단일 패리티 비트 X
    • [Spragins 1991] 단일 비트 패리티 프레임 미검출 오류 확률 50%
  • 발전된 오류 기법 = 2차원 패리티 기법
    1. D에 있는 d 비트 = i의 열, j 행
    2. 각각의 행과 열에 패리티 비트 계산 = i+j+1
    • 결과 : 단일 비트 오류 발생 검출 + 패리티 오류 있는 열과 행의 인덱스 값으로 오류 정정
    • 단점 : 임의의 2개의 오류 검출할 수 있지만 정정 X
      • e.g. 1열과 2열, 1행과 2행에서 오류 발생
        • (1, 2), (2, 1)에서 오류 발생?
        • (1, 1), (2, 2)에서 오류 발생?
        • ⇒ 판단 X

 

 

  • ※ FEC
    • 순방향 오류 정정(forward error correction, FEC)
      • 사용처 : 오디오 저장 및 재생 장치 (오디오 CD)
      • ARQ와 달리 재전송 횟수 줄일 수 있다.
        • ARQ : NAK으로 재전송 요청 = 왕복 전파 지연 시간 생성
        • FEC : 오류를 스스로 정정해서 보내므로 왕복 전파 지연 시간 X
          ⇒ 실시간 네트워크 애플리케이션[Rubenstein 1998], 전파 지연이 긴 링크(deep-space 링크)
      • ARQ와 FEC 같이 사용 O
    • 오류 제어 프로토콜은 [Biersack 1992; Nonnenmacher1998; Byers 1998; Shacham 1990]

체크섬 - 오류 검출

  • d 비트들을 일련의 k비트 정수처럼 사용
  • 인터넷 체크섬
    • k비트 정수를 더한 결과값을 오류 검출 비트로 사용
    • 데이터의 바이트를 16비트 정수 단위로 잘라서 더하기
    • 동작 원리 : 수신자는 모든 필드의 값(16비트)을 더한 후 1의 보수 = 1이 있으면 오류!
    • 체크섬 = 더한 값의 1의 보수
      • TCP, UDP : 인터넷 체크섬이 모든 필드(헤더+데이터 필드)에 대해 계산
      • IP : IP 헤더에 대해서만 체크섬 계산
        • 라우터 통과 시 매번 계산 = 빠르게 계산하기 위해 IP 헤더만
        • TTL 필드가 매번 바뀐다 = IP 체크섬 매번 갱신
      • XTP[Strayer 1992] : 헤더 하나의 체크섬, 전체 패킷 또 다른 체크섬
    • RFC 1071
  • 대체로 트랜스포트 계층에서 사용
    • 소프트웨어 <<< 하드웨어 속도
    • 소프트웨어에서 오류 검출하고 정정까지 한다면? → 느려느려
    • 따라서 링크 계층은 CRC 사용
      • 어댑터 안의 전용 하드웨어로 구현
      • Feldmeier 1995- 가중화된 체크섬 코드 + CRC/다른 코드 고속의 소프트웨어 구현 기술 제안

순환 중복 검사(CRC) - 오류 검출

  • Cyclic redundancy check
  • 다항식 코드(polynomial code)
    • 비트열에 있는 0/1을 계수로 갖는 다항식 비트열
    • kind of 다항식 연산
  • 대체로 어댑터의 링크 계층에서 사용
  • 작동 원리

  1. 데이터 D, d 비트로 이루어짐, 송신노드가 수신 노드로 전송하는 상황
    1. G로 표기되는 생성자로 알려진 r+1 비트 패턴에 대해 합의
      1. G의 최상위, 가장 왼쪽 비트는 1
        • 왜?
      2. R이라는 r비트의 데이터 붙임
      3. d+r 비트 패턴 모듈로 2 연산(올림 없는 덧셈, 빌림 없는 뺄셈 = XOR)
      • 1011 XOR 0101 = 1110
        1001 XOR 1101 = 0100
      • 1011 - 0101 = 1110
        1001 - 1101 = 0100
      • (1을 올림/내림을 제외한 덧셈, 뺄셈 연산과 값이 같다.)

D * 2^r XOR R = nG

D * 2^r = nG XOR R

R = remainder*D * 2^r/G

 

  • 국제 표준은 G 8, 12, 16, 32비트의 생성자 정의
    • G는 모든 라우터가 알고 있나?G는 국제 표준으로 전 세계적으로 같은 값을 사용한다.
    • 알고 있다. 아예 하드웨어적으로 하드코딩되어 있다.
    • e.g. GCRC-32 = 100000100110000010001110110110111
728x90