1). 데이터는 소스 노드에서 목적지 노드로 전송되기 위해 여러 네트워크 및 라우터를 거쳐야 한다.
2). 라우터는 데이터 패킷이 최종 목적지에 도달할 수 있도록 최적의 경로를 찾아 다음 목적지 노드로 패킷을 전달하는 역할을 한다.
3). 데이터 링크 계층에서는 이러한 노드 간의 통신을 관리하며, 데이터의 오류 없는 전송을 보장하고 흐름을 제어한다.
데이터가 네트워크(LAN ,WAN)간에 안정적으로 전송될 수 있도록 하는 중요한 역할을 한다. 이 계층은 물리적 주소인 MAC 주소를 사용해 노드 간의 통신을 가능하게 한다.
데이터 링크 계층이 제공하는 주요 서비스들
1). Framing : 네트워크 계층으로부터 받은 데이터를 프레임이라고 하는 단위로 분할한다. 프레임은 데이터의 시작과 끝을 나타내는 헤더와 트레일러를 포함하여 네트워크 간에 데이터를 정확하게 전송할 수 있도록 한다.
2). Flow Control : 송신자와 수신자 간의 데이터 전송 속도를 조정하여 수신자가 처리할 수 있는 속도 이상으로 데이터가 전송되는 것을 방지한다.
3). Error Control : 전송 중에 발생할 수 있는 오류를 감지하고 수정하는 기능. Parity Code, Checksum, CRC와 같은 기법이 있다.
Types of Error
Single bit error : 데이터 단위의 한 비트만 오류가 발생한 것. 탐지 및 수정이 간단하다.
Bursty error : 데이터 단위 내의 2개 이상의 비트에 오류가 발생한 상황이다. 단일 비트 오류보다 탐지 및 수정이 복잡하다.
Redundancy : 데이터를 수신했을 때, 오류 발생 여부를 알아내기 위해서 전송 시점에 데이터를 추가적으로 붙이는 것. 즉, 오류 탐지 및 수정을 위해 송신자가 데이터에 중복 비트를 추가한다.
Simple Parity bit
예시 1 : 데이터 '01'이 '011'로 코딩되어 송신되었다고 가정해보자.
1). '011'이 수신되었을 때, 수신자는 이로부터 데이터 워드 '01'을 추출한다. 전송 과정에서 오류가 발생하지 않은 것으로 간주한다.
2). '111'이 수신되었을 때, 이는 가장 왼쪽 비트에 오류가 발생되었다. 이때 '111'은 유효한 코드워드가 아니므로 수신자는 오류가 발생했음을 인지하고, 이를 버린다.
3). '000'이 수신되었을 때, 이는 유효한 코드워드이다. 따라서 수신자는 이로부터 데이터 워드 '00'을 추출한다. 이는 두 비트가 손상되어 오류가 감지되지 않은 것으로 간주한다.
예시 2 : 원본 데이터 '1011'이 '10111'로 코딩되어 송신되었다고 가정하자.
1). 수신된 코드 워드가 '10111'이며, 신드롬은 0이다. 이 경우, 오류가 발생하지 않은 것으로 간주, 데이터 워드 '1011'이 추출된다.
2). 수신된 코드 워드가 '10011'이며, 신드롬이 1이다. 이 경우, 오류는 발생하였지만 오류의 위치를 파악할 수 없어 데이터 워드가 추출되지 않는다.
3). 수신된 코드 워드가 '10110'이며, 신드롬이 1이다. 2)의 경우와 마찬가지로, 데이터 워드가 추출되지 않는다.
4). 수신된 코드 워드가 '00110'이며, 신드롬은 0이다. 이 경우 신드롬 값이 0이기 때문에 잘못된 데이터 워드 '0011'이 추출된다. Simple Parity bit 검사는 짝수 개의 오류를 감지할 수 없으며, 오류들이 서로 상쇄되어 신드롬 값이 0이 되었다.
5). 수신된 코드워드 '01011'이며, 신드롬은 1이다. 이 경우에도 정확한 오류 위치를 파악할 수 없다. 이는 단순 패리티 검사가 단일 오류 뿐만 아니라, 홀수 개의 오류또한 감지할 수 없음을 보여준다.
Simple Parity bit 오류 검출 방식은 한 비트가 손상된 경우에 대해서는 유효하나, 여러 비트가 손상된 경우 탐지가 불가능하거나 오작동할 수 있다.