Computer Science/네트워크

데이터링크 계층 (DataLink Layer)

Luinesse 2024. 7. 9. 13:33
반응형

링크계층에서는 네트워크 계층으로부터 받은 데이터그램을 프레임화하며, MAC 프로토콜에서 링크로 프레임을 전송할 때, 링크에 접근 하는 규칙을 명시합니다. 또한, TCP와 유사하게 신뢰적 전달을 제공합니다.

 

링크계층도 다른 계층과 유사하게 오류 검출을 진행합니다. 링크 계층에서는 크게 다음 3가지 기술을 사용합니다.

 

  • 패리티검사
  • 체크섬
  • 순환중복검사 (CRC)

패리티 검사는 단일 패리티검사와 2차원 패리티 기법으로 나뉘는데, 단일 패리티검사는 패리티 비트를 추가하여 짝수 패리티 혹은 홀수 패리티를 만들어서 검사하는데, 이 경우 짝수개의 비트 오류가 발생하면 오류를 검출할 수 없다는 단점이 있습니다. 2차원 패리티 기법은 단일 패리티 기법을 2차원으로 일반화하여 진행하므로, 오류 검출 및 정정까지 가능합니다.

 

순환중복검사는 송수신 측에서 동일한 다항식 코드 G를 사용하기로 약속하고, 보낼려는 데이터 D를 G로 XOR을 통해 나눕니다. 그리고 생성된 나머지 R을 D의 뒤에 붙여 전송하고 수신측에서 다시 G로 XOR하여 나머지가 0이 나오면 오류가 없는 방식입니다.

 

체크섬은 주로 트랜스포트 계층에서 사용하므로 제외하겠습니다.

 

MAC 주소는 랜 주소나 물리주소라고도 불리는 주소로 링크계층에서의 호스트 혹은 라우터의 주소가 됩니다. IP 주소에 대응하는 MAC 주소를 찾기 위해서는 ARP 프로토콜을 사용합니다.

 

송신측에서 목적지 IP만알고 MAC을 모를 때, ARP 요청 메세지를 브로드캐스트로 보내고, 수신측은 자신의 MAC 주소를 포함하여 송신 호스트로 유니캐스트합니다. 이 메세지를 받은 송신측은 목적지의 MAC 주소를 자신의 ARP 테이블에 갱신합니다.

 

이 과정에서 라우터를 경유해야하는 경우, 목적지로 바로 보내는 것이 아닌, 일단 디폴트 게이트웨이로  송신하고 라우터가 포워딩 테이블을 참조하여 데이터그램을 전송합니다.

 

이더넷 토폴로지는 크게 버스 토폴로지와 허브 기반 스타 토폴로지, 스위치 기반 스타 토폴로지가 있는데, 현대의 이더넷 기술은 스위치 기반 스타 토폴로지를 사용하여 공유매체를 사용하지 않으므로 CSMA/CD가 필요하지 않습니다. 하지만 하위 호환과 반이중방식 사용을 위해서 CSMA/CD를 지원하고 있습니다.

 

위에서 서술한 CSMA/CD는 다중 접속 프로토콜 중 하나로, 공유 매체에 접근할 때, 규칙을 명시합니다. 크게 채널 분할 프로토콜과 랜덤 접속 프로토콜, 순번 프로토콜로 나뉘고, 채널 분할 프로토콜의 경우 시분할 다중화, 주파수 분할 다중화, 코드분할 다중 접속 등의 방법이 존재합니다. 순번 프로토콜은 폴링 프로토콜, 토큰 전달 프로토콜 등이 존재합니다.

 

이중 CSMA/CD는 전송 매체의 상태를 감지하고, 전송 매체가 유휴 상태라면 채널에 빠르게 접근하여 프레임 전송을 시작합니다. 그 과정에서 프레임이 전송되는 중에 충돌 발생하는지 검사하는 방법입니다. 이때, 충돌이 발생한다면, 이진 지수적 백오프 알고리즘을 사용하여 재전송을 시도합니다. 이진 지수적 백오프 알고리즘은 n번 충돌했을 때, {0, 1, ... , 2^n -1} 중 하나의 값 K를 선택하여 슬롯시간의 K배 시간을 기다린 후 재전송하는 방법입니다. 즉, 충돌 횟수가 늘어날 수록 더 넓은 범위에서 K를 선택하기 때문에 충돌 확률이 낮아집니다.

 

이더넷 프레임은 목적지 주소와 출발지 주소를 각각 6바이트, 데이터 타입을 명시하는 타입을 2바이트, CRC를 위해서 4바이트, 데이터와 패딩을 포함하여 46 ~ 1500 바이트를 가질 수 있습니다.

반응형