개발자공부일기
OSI 데이터링크계층 본문
데이터링크 계층(Data Link Layer)은 OSI 모델에서 두 번째 계층으로, 물리적 계층에서 전송된 데이터를 정확하게 전달하기 위해 다양한 기능을 담당합니다. 이 계층은 주로 프레임 단위로 데이터를 송수신하며, 데이터의 오류 제어와 흐름 제어, 접근 제어 등을 처리합니다.
1. 프레임 구성 (Framing)
프레임은 데이터링크 계층에서 패킷을 전송 가능한 단위로 변환한 것입니다. 물리 계층에서 비트 단위로 전송된 데이터를 데이터링크 계층은 프레임 단위로 나누어 전송합니다.
프레임 구성의 주요 역할:
- 데이터링크 계층에서 프레임을 정의하는 이유는 데이터의 시작과 끝을 명확히 구분하기 위해서입니다. 네트워크에서는 데이터를 전송할 때 연속된 비트의 흐름으로 보내지는데, 만약 구분자가 없으면 수신자는 어디서 데이터가 시작되고 끝나는지 알 수 없습니다.예를 들어, 송신자가 "18648943215643211594"라는 데이터를 보냈다고 가정해 봅시다. 이 데이터가 끊김 없이 전송되면, 수신자는 각 데이터가 의미하는 바를 해석할 수 없게 됩니다.이를 해결하기 위해 데이터링크 계층은 프레임을 정의하여 데이터를 구분합니다. 프레임은 데이터에 시작과 끝을 나타내는 특별한 구분자를 추가합니다.
- 헤더 및 트레일러: 프레임은 헤더(header)와 트레일러(trailer)를 포함합니다. 헤더에는 주소 정보나 제어 정보가 들어가고, 트레일러는 오류 검사를 위한 검사 합 (CRC) 등을 포함합니다. 여기서 헤더 및 트레일러가 각각 데이터의 시작과 끝을 나타내는 구분자가 되게 됩니다.
- (헤더) 18648(트레일러)(헤더)9432156(트레일러)(헤더)43211594(트레일러)
예시:
- 이더넷 프레임: 이더넷 프로토콜은 데이터를 전송할 때 데이터를 프레임으로 구성하여 전송합니다. 프레임은 목적지 주소, 출발지 주소, 데이터 및 오류 검사를 위한 체크섬 등을 포함합니다.
2. 물리 주소 지정 (Physical Addressing)
데이터링크 계층에서 물리 주소 지정은 네트워크 상의 장치 간에 데이터를 정확히 전달하기 위해 매우 중요한 역할을 합니다. 이 계층은 MAC 주소를 사용하여 장치를 고유하게 식별하고, 데이터 프레임이 올바른 목적지에 도달하도록 보장합니다.
물리 주소란?
- 물리 주소는 네트워크 인터페이스 카드(NIC)에 고유하게 할당된 MAC 주소를 의미합니다.
- 48비트로 구성된 MAC 주소는 네트워크 내에서 특정 장치를 식별하며, 데이터링크 계층에서 데이터의 송신지와 수신지를 나타내는 데 사용됩니다.
예:송신지 MAC 주소: 00:1A:2B:3C:4D:5E // 수신지 MAC 주소: F1:E2:D3:C4:B5:A6
이러한 주소는 프레임의 헤더에 포함되어 네트워크 장비가 데이터를 정확히 전달할 수 있게 합니다.
물리 주소 지정의 과정
- 프레임 생성
- 데이터링크 계층은 상위 계층(예: IP 계층)에서 전달받은 데이터를 캡슐화하여 프레임을 만듭니다.
- 이 프레임에는 출발지 MAC 주소와 목적지 MAC 주소가 포함됩니다.
- 예:
출발지 MAC 주소: 송신 장치의 NIC 주소
목적지 MAC 주소: 데이터를 받아야 할 장치의 NIC 주소
- ARP(Address Resolution Protocol)
- 목적지 MAC 주소를 모를 경우, ARP 프로토콜( IP 주소를 기반으로 MAC 주소를 찾아내어 데이터 프레임이 올바른 장치로 전달될 수 있도록 돕는 역할)을 사용해 IP 주소와 MAC 주소를 매핑합니다.
- ARP 요청을 네트워크에 브로드캐스트하면, 해당 IP 주소를 가진 장치가 자신의 MAC 주소를 응답합니다.
- 데이터 전송
- 데이터 프레임은 스위치나 허브와 같은 네트워크 장비를 통해 목적지로 전달됩니다.
- 스위치는 MAC 주소 테이블을 기반으로 데이터를 적절한 포트로 전송합니다.
- 데이터 수신
- 수신 장치는 프레임의 목적지 MAC 주소를 확인하고, 자신의 MAC 주소와 일치할 경우 데이터를 처리합니다.
- 일치하지 않으면 프레임을 무시합니다.
네트워크 장비와 물리 주소
1.스위치
- 스위치는 각 포트에 연결된 장치의 MAC 주소를 MAC 주소 테이블에 저장합니다.
- 프레임이 들어오면 목적지 MAC 주소를 확인하고, 데이터를 해당 포트로 전달합니다.
- 장점: 네트워크 효율성을 높이고 충돌을 줄입니다.
2. 허브
- 허브는 프레임을 네트워크에 연결된 모든 포트로 전달합니다.
- MAC 주소를 확인하지 않으므로 비효율적이며, 충돌 가능성이 높습니다.
3. 라우터
- 컴퓨터 네트워크 간에 데이터 패킷을 전송하는 네트워크 장치다.
- 라우터는 주로 IP 주소를 사용하지만, 로컬 네트워크 내부에서 데이터를 전달할 때는 MAC 주소를 사용합니다.
물리 주소 지정의 필요성
정확한 데이터 전송
- 네트워크에 여러 장치가 연결되어 있을 때, MAC 주소는 데이터가 정확히 의도된 장치로 전송되도록 보장합니다.
- 로컬 네트워크 통신
- 같은 네트워크 내에서 IP 주소 대신 MAC 주소를 사용해 통신합니다.
- IP 주소는 네트워크 계층에서 사용되지만, 데이터링크 계층에서는 항상 물리 주소가 필요합니다.
- 충돌 방지
- 각 장치에 고유한 MAC 주소가 있어, 동일한 네트워크에서 데이터 프레임이 충돌 없이 전송됩니다.
물리 주소 지정이 작동하는 예시
- 송신 장치
- 사용자가 PC에서 프린터로 문서를 전송합니다.
- PC는 프린터의 MAC 주소를 ARP로 검색하고, 데이터를 프레임 형태로 생성합니다.
- 이 프레임에는 PC의 MAC 주소와 프린터의 MAC 주소가 포함됩니다.
- 전송 과정
- 프레임은 스위치를 통해 프린터로 전달됩니다.
- 스위치는 MAC 주소 테이블을 확인해 프레임을 올바른 포트로만 보냅니다.
- 수신 장치
- 프린터는 프레임의 목적지 MAC 주소가 자신의 MAC 주소와 일치함을 확인하고 데이터를 처리합니다.
요약
- 데이터링크 계층의 물리 주소 지정은 네트워크 상의 특정 장치를 식별하고 데이터를 올바르게 전달하는 핵심 역할을 합니다. MAC 주소를 기반으로 데이터를 송수신하며, 스위치, 허브, 라우터와 같은 네트워크 장비가 이 과정을 지원합니다. 이를 통해 네트워크에서 데이터가 정확하고 효율적으로 전달될 수 있습니다.
3. 흐름 제어 (Flow Control)
흐름 제어는 데이터가 송신자의 속도로 전송되었을 때 수신자가 처리할 수 있는 속도에 맞추어 데이터를 조절하는 기능입니다. 이는 네트워크 장치가 과도한 양의 데이터를 처리할 수 없을 때 발생할 수 있는 데이터 손실을 방지합니다.
송신자가 데이터를 너무 빨리 전송하면, 수신자의 버퍼(임시 저장 공간)가 가득 차 데이터 손실이 발생할 수 있습니다.
흐름 제어의 주요 역할:
- 수신 버퍼 관리: 수신 장치의 버퍼가 가득 차지 않도록 송신자가 데이터를 적절한 속도로 전송할 수 있게 합니다.
- 슬라이딩 윈도우: 흐름 제어를 위해 슬라이딩 윈도우 기법이 사용되기도 합니다.
송신자는 수신자의 수용 가능한 데이터 크기(윈도우 크기)를 기반으로, 여러 데이터 프레임을 연속적으로 전송할 수 있습니다. 수신자가 ACK를 보내면, 송신자는 새로운 데이터 프레임을 추가로 전송합니다.
예시:
- TCP 흐름 제어: TCP 프로토콜은 흐름 제어를 통해 송신자가 너무 많은 데이터를 보낼 경우, 수신자가 처리할 수 있도록 윈도우 크기를 조절하여 통신을 원활하게 합니다.
4. 오류 제어 (Error Control)
오류 제어는 데이터 전송 중에 발생할 수 있는 오류를 검출하고 수정하는 기능입니다. 이는 데이터가 정확하게 수신되지 않거나 손상된 경우, 재전송을 통해 정확성을 보장하는 역할을 합니다.
오류 제어의 주요 역할:
- 오류 검출: 데이터링크 계층은 데이터를 전송할 때 검사 합 (CRC) 등을 이용하여 오류를 검출합니다. 수신자는 오류가 없으면 정상적으로 데이터를 받으며, 오류가 있으면 재전송 요청을 보냅니다.
CRC는 다항식 연산을 기반으로 데이터의 무결성을 확인합니다.
- 데이터(메시지)를 수학적 다항식으로 간주하고, 특정 생성 다항식(Generator Polynomial)으로 나누어 나머지를 계산합니다.
- 이 나머지를 CRC 코드라고 하며, 데이터에 추가하여 수신 측으로 전송됩니다.
- 수신 측에서도 동일한 계산을 수행하여 나머지가 0인지 확인함으로써 오류를 검출합니다.
- 오류 수정 방법:
- 자동 재전송 요청(ARQ):
- 수신자가 오류를 발견하면 송신자에게 다시 데이터를 보내달라고 요청합니다.
- 정지-대기 ARQ, 슬라이딩 윈도우 ARQ 등 다양한 형태가 있습니다.
- 전방 오류 수정(FEC, Forward Error Correction):
- 송신자가 추가적인 오류 정정 코드를 함께 전송.
- 수신자가 오류를 스스로 수정할 수 있습니다.
- 장점: 데이터 재전송이 필요 없어 실시간 통신에 적합.
- 단점: 부가적인 데이터 전송으로 인해 오버헤드가 증가.
- 자동 재전송 요청(ARQ):
예시:
- 이더넷의 CRC: 이더넷 프레임은 전송된 데이터에 대해 CRC(Cyclic Redundancy Check)를 사용하여 오류를 검출합니다. 수신자는 CRC 값을 확인하고, 오류가 발생하면 데이터를 재전송합니다.
5. 접근 제어 (Access Control)
접근 제어는 다수의 장치가 동일한 전송 매체를 공유할 때, 각 장치가 언제 전송을 시작할지 결정하는 메커니즘입니다. 이는 주로 전송 매체가 공유되는 네트워크 환경에서 중요한 역할을 합니다.
접근 제어의 주요 역할:
- 경쟁 방지: 여러 장치가 동일한 채널을 사용할 때, 충돌을 방지하고 데이터를 효율적으로 전송하도록 합니다.
- 다중 접근 제어 기법: 이를 위해 CSMA/CD(Carrier Sense Multiple Access with Collision Detection)와 같은 기법이 사용됩니다. 이는 장치가 데이터를 전송하기 전에 채널이 비어 있는지 확인하고, 채널이 비어 있으면 데이터를 전송합니다. 만약 두 장치가 동시에 전송을 시작하면 충돌이 발생하며, 다시 전송을 시도합니다.
예시:
- 이더넷의 CSMA/CD: 이더넷 네트워크에서는 여러 장치가 같은 네트워크 케이블을 공유할 때, CSMA/CD 기법을 사용하여 충돌을 감지하고 데이터를 재전송합니다.
데이터링크 계층은 네트워크에서 정확하고 효율적인 데이터 전송을 보장하는 중요한 계층입니다. 이 계층은 프레임 구성, 물리 주소 지정, 흐름 제어, 오류 제어, 접근 제어와 같은 다양한 기능을 통해 데이터를 정확히 전달하고 충돌을 방지하며, 네트워크 통신의 안정성을 유지합니다. 이를 통해 데이터가 물리적 계층을 넘어 안전하고 효율적으로 목적지까지 전달될 수 있습니다.
'TIL(Today I Learned)' 카테고리의 다른 글
IP란? (0) | 2024.12.11 |
---|---|
CDN이란? (0) | 2024.12.10 |
OSI물리계층 (0) | 2024.12.06 |
reduce의 다양한 쓰임새 (0) | 2024.12.06 |
공통 테이블 표현식(CTE, Common Table Expression) (0) | 2024.12.05 |