[Network] 데이터 링크 계층

DudeKYH·2024년 9월 4일
0

Network

목록 보기
5/8
  • OSI 7 계층 중 2번째 계층을 의미한다.
  • 네트워크 환경에서 통신 기기 간의 데이터 전송, 오류 검출 및 제어, 흐름 제어 등을 담당한다.

데이터는 어떻게 목적지까지 가는 것인가...?

  • 물리 계층은 디지털 신호인 데이터들을 전기 신호로 변환하여 전달해주는 역할을 수행한다.
  • 그러면, 이제 여기서 궁금한 점이 하나 생긴다!
    물리 계층의 역할로 데이터를 어떻게 옮기는 지는 이해가 되었다.
    그런데 과연 전달할 데이터들의 도착지를 어떻게 알고 찾아가는 걸까?
  • 이에 대한 해답을 얻기 위해 기나긴 여정이 되겠지만,
    첫 단계인 데이터 링크 계층을 알아보면서 천천히 이해해보자!

MAC Address

데이터 링크 계층을 알아보기 전에 MAC 주소를 알아보고 넘어가자!

  • MAC Address란?

    • 'Media Access Control address' 의 줄임말
    • 네트워크 인터페이스에 할당된 물리적 고유 식별 주소이다.
    • 쉽게 말해, 통신을 할 수 있도록 통신 기기마다 가지는 하나의 고유한 하드웨어 주소라고 할 수 있다.

    • 보통 16진수 형태로 AB-CD-12-34-56-78 표기하며, 총 48 bit로 구성되어 있다.
    • OUI 주소 : 앞의 AB-CD-12를 의미하며, 제조사 식별코드를 나타낸다.
    • HOST 주소 : 뒤의 34-56-78를 의미하며, 제품의 시리얼 넘버를 나타낸다.
  • cmd 창에서 ipconfig /all 명령어를 치면 물리적 주소로 내 컴퓨터의 랜카드 MAC 주소를 알 수 있다.


LAN 환경에서의 데이터 통신

결론부터 말하자면, 데이터 링크 계층은 LAN 환경에서의 데이터 통신을 담당한다.

  • LAN이란?
    • 근거리 통신망을 의미하며, 'Local Area Netwrok' 의 줄임말이다.
    • 브릿지 혹은 L2 스위치와 같은 커넥터를 사용하여 물리적으로 가까운 통신 기기를 연결한 환경이다.
    • 이더넷이라는 프로토콜을 주로 사용하여 통신한다.
  • 그럼 WAN이란?
    • 원거리 통신망을 의미하며, 'Wide Area Network' 의 줄임말이다.
    • 여러 LAN이 합치면서 Netwrok를 구성한 통신 환경이다.
    • OSI 3계층부터 WAN 통신을 가능하게 해준다.

그래서 LAN 환경에서 어떻게 통신하는데?

  • 먼저 데이터 링크 계층은 프레임이라는 단위로 데이터를 송수신하는데,

  • 프레임(Frame)은 Preamble + Header + Payload + FCS 로 구성되어 있다.

    • Preamble (8Byte)
      • 2계층 프레임의 시작 부분을 알리는 역할

    • Header (14Byte)
      • Desination Address (6Byte) : 목적지 MAC 주소
      • Source Address (6Byte) : 출발지 MAC 주소
      • Type (2Byte) : 상위 계층(L3)의 종류를 표현 => Ex) IP : 0x0800, ARP : 0x0806

    • Payload (46 ~ 1500Byte)
      • 상위 계층의 데이터를 담고 있다.

    • FCS (4Byte) : Frame Check Sequence
      • L2의 기능 중 오류 검출 및 제어를 가능하게 해준 필드다.
      • 송신자측에서 Header ~ payload 까지 CRC32 알고리즘을 사용해서 계산한 결과값이 담겨있다.
      • 수신측은 따로 수신한 Frame을 대상으로 새로 FCS를 구해 서로 비교하여 에러 여부 확인
      • 만약 에러 발생 시, 해당 프레임을 폐기하고, 송신측에 다시 재전송 요구한다!

이더넷 프로토콜 (Ethernet Protocol)

  • LAN 환경에서 가장 많이 사용되는 기술 규격(프로토콜)이다.
  • 이더넷은 물리 계층(L1)에선 신호와 배선, 데이터 링크 계층(L2)에선 MAC 주소를 가지고 프레임 단위의 데이터를 전송한다.

  • L2 Switch에 연결되있는 여러대의 Host들은 이더넷 프로토콜을 통해 통신이 가능하다.
    • 왜냐하면, L2 Switch는 내부적으로 연결되어 있는 모든 Host에 대한 MAC 주소 테이블을 가지고 있다.
      따라서, Header의 목적지 MAC address와 일치하는 Host의 포트로 Payload를 전달해주게 되는 것이다.
    • MAC 주소 테이블 : 스위치의 포트 번호와 해당 포트에 연결되어 있는 컴퓨터의 MAC 주소 저장되는 데이터베이스

  • 추가로, 이더넷 프로토콜은 CSMA/CD 기술을 사용하고 있다.
    • CSMA/CD 를 통해 데이터 충돌 감지를 하여 데이터전송 시점을 늦추는 방법을 사용한다.

CSMA/CD 란?

  • 'Carrier Sense Multiple Access/Collision Detection' 의 줄임말로,
    '서로 잘 알아서 눈치껏 통신하자' 라는 방식의 프로토콜이다!

  • <CSMA/CD 동작 과정>

    • 1) 회선 상에 이미 다른 신호가 있는지를 감지한다 => Carrier Sense
    • 2) 회선이 사용 중이면, 잠시 대기 후 1)과정을 반복
    • 3) 회선을 사용 가능하다면, 즉시 데이터를 전송한다 => Multiple Access
    • 4) 수신 컴퓨터에 응답이 없거나 타 신호와 충돌이 발생했다면, 일정 시간 대기 후
      다시 1)과정부터 실시한다 => Collision Detection


지금까지 데이터 링크 계층에 대해 살펴보았다~

profile
게임서버프로그래머를 꿈꾸는 자

0개의 댓글