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

- 송신 호스트 → 와이파이 AP 와이파이 링크
- AP → 링크 계층 스위치 이더넷 링크
- 링크 계층 스위치 → 라우터 링크
- 두 라우터 간의 링크
- 라우터 → 링크 계층 스위치 이더넷 링크
- 스위치 → 서버 이더넷 링크
- (데이터그램→)링크 계층 프레임으로 캡슐화해서 전송
- ※ 참고예시
- 상황 : 여행사 직원이 여행객을 위해 파리 루브르박물관을 가기 위한 경로를 정해준다.
- 집에서 인천 공항까지 공항 리무진
- 인천 공항에서 파리 오를리 공항까지 비행기
- 파리 오를리 공항에서 루브르 박물관이 있는 역까지 지하철
- 여행사 직원 = 라우팅 프로토콜
- 여행객 = 데이터그램
- 운송 수단 = 링크
- 운송 방식 = 링크 계층 프로토콜
- 상황 : 여행사 직원이 여행객을 위해 파리 루브르박물관을 가기 위한 경로를 정해준다.
링크 계층 (프로토콜)의 제공 서비스
- 기본 서비스 : 단일 통신 링크상으로 데이터그램을 한 노드에서 인접 노드로 이동
- ※ 단일 통신 링크= 중간에 라우터 X
- 점대점, 공유매체(브로드캐스트, 와이파이 AP 등)의 연결도 단일 링크라고 부른다.
- 하나의 노드에 연결되어 있는 다른 노드의 통신 링크
- 서비스의 세부사항 - 특정 링크 계층 프로토콜
- 프레임화(framing)
- 거의 모든 링크 계층 프로토콜은 네트워크 계층 데이터그램 → 캡슐화 → 링크 계층 프레임
- 프레임 = 헤더 필드 여러 개 + 데이터 필드
- 프레임 구조 by 링크 계층 프로토콜
- 링크 접속(link access)
- MAC (medium access control, 매체 접속 제어 프로토콜)
- 프레임을 전송 규칙 명시
- 점대점 링크
- MAC 프로토콜을 단순하게 구현/구현X
- 송신자는 링크가 사용되지 않을(idle) 때마다 프레임 전송 O
- ※ idle란
- 링크가 비어 있음
- in 점대점
- 송신자가 수신자에게 데이터 전송 X
- in 브로드캐스트
- 공유된 매체에 아무런 신호 X
- ※ idle란
- 브로드캐스트 링크, 여러 노드 공유(다중 접속 문제)
- MAC 프로토콜 여러 노드로부터의 프레임 전송 조정
- 점대점 링크
- 신뢰적 전달
- TCP(전송 계층)처럼 확인응답 + 재전송
- 무선 링크에서 주로 사용 (오류율 높은 링크)
- 유선 링크 계층 프로토콜
(낮은 비트 오류율 가진 링크 - 광섬유, 동축케이블, 다수의 꼬임상 선 링크)
→ 오버헤드로 인해 X
- 유선 링크 계층 프로토콜
- 오류가 발생한 링크에서 오류를 정정
- 트랜스포트 계층과 애플리케이션 계층 vs 링크 계층 재전송 메커니즘
- L4, L5 : 종단에서 재전송
- L2 : 오류가 발생한 링크에서 재전송
- 트랜스포트 계층과 애플리케이션 계층 vs 링크 계층 재전송 메커니즘
- (비트) 오류 검출과 정정
- 수신 노드 링크 계층 하드웨어 1 → 0 (반대의 상황)
- 오류 발생 원인 : 신호의 약화 / 전자기 잡음
- 방식
- 송신 노드에서 프레임에 오류 검출 비트 설정
- 수신 노드에서 오류 검사 수행
- 일반적인 서비스
- 하드웨어 구현, 어느 곳에서 발생했는지 확인 O
- 전송 계층과 네트워크 계층에서의 차이
- 인터넷 체크섬(Internet checksum)으로 제한된 형태의 오류 검출
(어디에서 틀렸는지 확인 X)
- 인터넷 체크섬(Internet checksum)으로 제한된 형태의 오류 검출
링크 계층이 구현되는 위치
- 종단시스템에서 링크 계층을 구현하는 방법
- 쟁점
- 구현 방식 : 하드웨어 / 소프트웨어
- 물리적 구현체 : 별도의 카드/칩
- ※ 카드 vs 칩
- 카드 : 칩과 커넥터(포트) 등이 박혀 있는 회로 기판
- ≈ 메인 보드 (기판)
- e.g. Network adapter
- 칩 : 실질적인 연산을 처리하는 반도체 소자
- ≈ CPU (연산 장치)
- e.g. (Network) Controller
- 카드 ⊃ 칩
- 카드 : 칩과 커넥터(포트) 등이 박혀 있는 회로 기판
- ※ 카드 vs 칩
- 호스트의 나머지 하드웨어나 운영체제 구성요소와 어떻게 인터페이스
- 쟁점

- 이더넷 기능은 마더보드 칩셋, 저가의 이더넷 전용 칩으로 구현
- 이더넷은
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’, EDC’로 D와 D’ 동일한지 확인
- 문제 : 미검출된 비트는?
- 향상된 오류 검출 및 정정 기술 → 더 많은 오버헤드(계산 시간)
- 패리티 검사 vs 체크섬
- 체크섬은 오류가 발생할 확률이 낮다.
- 패리티 검사는 단순하고 계산이 빠르나 버스트 오류인 경우 검출하기 어렵다.
(짝수 패리티 기법에서 임의의 짝수 비트의 오류가 생기는 경우)
패리티 검사 - 오류 검출 및 정정(FEC)s
- 오류 검출의 기본 개념
- 패리티 비트 - 1의 개수
- [짝수|홀수] 패리티 비트 = 1의 총 개수가 [짝수|홀수]
- → 임의의 홀수개 비트 오류 검출 O
- 비트 오류 확률 작고, 오류가 비트마다 따로 발생 → 다중 비트 오류 확률 적다 = 사용 O

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

- ※ 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]
- 순방향 오류 정정(forward error correction, FEC)
체크섬 - 오류 검출
- 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 다항식 연산
- 대체로 어댑터의 링크 계층에서 사용
- 작동 원리

- 데이터 D, d 비트로 이루어짐, 송신노드가 수신 노드로 전송하는 상황
- G로 표기되는 생성자로 알려진 r+1 비트 패턴에 대해 합의
- G의 최상위, 가장 왼쪽 비트는 1
- 왜?
- R이라는 r비트의 데이터 붙임
- d+r 비트 패턴 모듈로 2 연산(올림 없는 덧셈, 빌림 없는 뺄셈 = XOR)
- 1011 XOR 0101 = 1110
1001 XOR 1101 = 0100 - 1011 - 0101 = 1110
1001 - 1101 = 0100 - (1을 올림/내림을 제외한 덧셈, 뺄셈 연산과 값이 같다.)
- G의 최상위, 가장 왼쪽 비트는 1
- G로 표기되는 생성자로 알려진 r+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
'Computer > 네트워크' 카테고리의 다른 글
| [네트워크] TCP의 혼잡 제어 (0) | 2026.07.13 |
|---|---|
| [네트워크] 혼잡 제어 (0) | 2026.07.13 |
| [네트워크] TCP 흐름 제어 서비스 (1) | 2026.07.13 |
| [네트워크] 신뢰적인 데이터 전송 서비스 (0) | 2026.07.13 |
| [네트워크] 연결지향형 TCP 2 (1) | 2026.07.13 |