OSI 7 계층
의 2번째 계층으로 인접한 네트워크 노드끼리 데이터를 전송하는 기능과 절차를 제공해요. 1계층인 물리 계층에서 발생할 수 있는 오류를 감지하고 수정해요. 대표적인 프로토콜로 이더넷Ethernet
이 있어요.
데이터 링크
계층은 2개의 부 계층으로 구성되요.
하나는 MAC, 물리적 부분으로 매체간 연결 방식을 제어하고 1계층과 연결되어 있어요. 48-bit6-byte
로 구성되어 있고, 각 바이트마다 16진수로 표현되요. 그 중 앞 3자리는 Organization Unique Identifier, OUI
로 제조사 식별 코드가 있고, 나머지 3자리는 제조사의 일련번호가 들어 있어요. 그리하여, MAC
으로 어떤 제조사가 만들었는지 구분할 수 있고 주소가 고유Unique
해요.
그리고 LLC, 논리적인 부분으로 데이터 링크의 데이터 프레임Frame
인 Protocol Data Unit, PDU
를 만들고 이를 3계층인 네트워크
계층과 연결되요.
상위 계층인 네트워크
계층에서 구성되는 데이터의 단위를 데이터그램Datagram
이라고 해요.
데이터 링크
계층에선 네트워크 계층에서 받아온 데이터그램을 프레임 단위로 만들고 헤더와 트레일러를 추가해요.
각 정보는,
- 헤더
Header
: 목적지, 출발지 주소 그리고 데이터 내용을 정의해요- 트레일러
Trailer
: 비트의 에러를 감지해요
신호 간의 충돌이 발생하지 않도록 제어할 수도 있어요.
ENQ/ACK
방법을 사용하고 1:1 방식과 Polling
기법을 활용한 1:多 방식이 있어요.
이 방식에선 2가지 모드가 존재해요.
Select
모드 : 송신자가 나머지 수신자들을 선택하여 전송해요Poll
모드 : 수신자에게 데이터 수신 여부를 확인해서 응답을 확인 후에 전송해요. 여러 수신자를 대응할 수 있어 Multipoint라고도 해요.
송수신자 간 데이터를 처리하는 속도 차이를 해결하기 위한 제어도 담당해요. Feedback 방식의 흐름 제어하며 이를 Stop & Wait 방식이라고도 불려요. 상위 계층은 Rate 기반이에요.
이 경우, Sequence Number1-bit
를 통해 동일 프레임인지 구분해서 상위 계층에 전달해요.
ACK의 응답 없이 여러 개의 프레임을 연속으로 전송해요. 이때 데이터를 보관하고 있는 Window
라는 버퍼가 있는데, 이 Window
의 크기가 전송과 수신 측의 데이터가 저장되는 버퍼의 크기인거죠.
전송 중에 오류나 손실이 발생하면 수신 측은 에러를 탐지하고 이를 재전송해요.
💡Automatic Repeat Request, ARQ
프레임이 손상 시 재전송이 수행되는 과정을 말해요
Go back
처럼 프레임을 묶어서 처리하는 것과 달리, 손상된 프레임만 선별해서 재전송하는 오류 제어 방식이에요.
이렇게 특정 프레임만 선별하는 방식은 일반적으로 알고리즘이 복잡해요 ㅎㅎ.
데이터 링크
계층의 대표적 프로토콜인 이더넷Ethernet
에 대해 알아봐요.
데이터 링크
계층에서 MAC
통신과 프로토콜의 형식을 정의한 규칙이에요.
Preemble : 이더넷 프레임의 시작과 동기화
Dest. Addr. : 목적지MAC
주소
Src. Addr. : 출발MAC
주소
Type : 캡슐화되어 있는 패킷의 프로토콜 정의
Data : 상위 계층의 데이터, 46~1500-byte, 46보다 작을 경우 이를 맞추기 위한 패딩Padding
데이터가 붙어요
FCS(Frame Check Sequence) : 프레임 에러 체크
데이터 링크
계층의 기능과 프로토콜에 대해서 다뤄보았어요. 내용이 길어질 것 같으니 나눠서 작성할게요!