[개발 일기] 2025.01.07 - OSI 7계층 (데이터 링크 계층)

2025. 1. 7. 23:31·개발 일기

개요

 

오늘은 OSI 7 계층에서 2번째 계층인 데이터 링크 계층 차례이다.

 

 

드가자.

 

 

 

데이터 링크 계층

 

데이터 링크 계층은 물리 계층과 네트워크 계층으로 받은 패킷을 다음 목적지까지 안전하게 전달하는 역할을 한다.

 

 

 

프레임

 

데이터 링크 계층에서 사용되는 기본 데이터 유닛이다.

 

 

프레임의 구조는 다음과 같다.

 

  • 목적지 주소
    • 데이터를 받을 장치의 MAC 주소(Medium Access Control address)
    • 참고로 MAC 주소는 고유한 주소임. 지구상에 있는 모든 컴퓨터는 MAC 주소가 다름

 

  • 출발지 주소
    • 데이터를 보낸 장치의 MAC 주소

 

  • 데이터
    • 실제 전송하려는 정보
    • 이는 상위 계층에서 전송된 데이터(예: IP 패킷)를 포함

 

  • FCS
    • 프레임의 오류 검사를 위한 정보
    • 수신자는 FCS 값을 이용해 데이터가 전송 중 손상되지 않았는지 확인하기 위해 사용
    • 주로 체크섬이나 CRC(Cyclic Redundancy Check)가 사용됨

 

 

(참고) 체크섬, CRC

 

  • 체크섬(Checksum)
    • 데이터를 더한 값을 전송하여 수신 측에서 동일한 결과가 나오는지 확인하는 에러 검출 방식

 

  • CRC(Cyclic Redundancy Check)
    • 보다 복잡한 수학적 알고리즘을 사용해 프레임 데이터의 유효성을 확인하는 방식
    • 이더넷, Wi-Fi와 같은 데이터 링크 계층 프로토콜에서 주로 사용

 

 

 

이더넷

 

주로 사용되는 프레임 유형은 이더넷 프레임으로, 주로 로컬 영역 네트워크(LAN)에서 데이터를 주고받기 위한 규칙을 정의한다.

 

 

이 프레임은 컴퓨터나 네트워크 장비(허브, 스위치 등)에 연결된 장치들 간에 데이터를 전송할 때 사용된다.

 

 

데이터의 송수신 타이밍을 결정하는 CSMA/CD 도 이더넷 프레임에서 지원하는 기술이다.

 

 

 

1 계층 → 2 계층 흐름

 

1 계층에서 전송된 비트들은 데이터 링크 계층으로 전달되어 프레임 형식으로 만들어진다.

 

 

이때, 물리 계층은 데이터를 전송하는 데 필요한 전기 신호나 광 신호를 생성하지만, 2 계층은 이러한 비트들을 의미 있는 데이터 단위인 프레임으로 바꿔서 목적지 주소와 출발지 주소를 포함한 정보로 처리한다.

 

 

데이터 링크 계층은 이후 이 프레임을 네트워크를 통해 전달할 수 있도록 준비한다.

 

 

 

3 계층 → 2 계층 작업 흐름

 

3 계층에서 생성된 패킷은 데이터 링크 계층으로 전달된다.

 

 

이때, 데이터 링크 계층은 패킷을 받아 프레임으로 변환하고, 목적지 장치에 데이터를 정확하게 전달할 수 있도록 MAC 주소를 추가한다.

 

 

이후, 데이터는 물리 계층을 통해 전송되며, 실제 신호로 변환되어 네트워크 매체를 통해 이동한다.

 

 

 

느낀 점

 

네트워크를 제대로 깊게 공부하니까 학부 시절 생각이 새록새록 난다.

 

 

최근 유튜브 영상을 보면서 느끼는 점은, 개발자를 축구선수에 비유하자면 볼 컨트롤, 패스, 드리블, 체력 같은 기본적인 능력치는 CS 기초 지식에서 나오는 것과 같고, 그 외에 헛다리나 팬텀 드리블처럼 선수의 개인적인 특성이나 기술은 MSA나 다양한 프레임워크 같은 고급 기술에 해당한다고 느껴진다.

 

 

모든 선배 개발자들은 CS의 중요성을 강조하는데, 내가 너무 프레임워크나 외부 기술에 매몰되어 있는 것이 아닌가..

 

 

내일은 한번 네트워크에 대해 깊게 공부해 봐야겠다..

 

 

근본 있는 개발자가 되자꾸나.

'개발 일기' 카테고리의 다른 글

[개발 일기] 2025.01.09 - OSI 7계층 (전송 계층)  (0) 2025.01.09
[개발 일기] 2025.01.08 - OSI 7계층 (네트워크 계층)  (0) 2025.01.08
[개발 일기] 2025.01.06 - OSI 7계층 (물리 계층)  (0) 2025.01.06
[개발 일기] 2025.01.05 - 자바 객체 락 (synchronized)  (0) 2025.01.05
[개발 일기] 2025.01.04 - Event, Publisher, Listener  (0) 2025.01.04
'개발 일기' 카테고리의 다른 글
  • [개발 일기] 2025.01.09 - OSI 7계층 (전송 계층)
  • [개발 일기] 2025.01.08 - OSI 7계층 (네트워크 계층)
  • [개발 일기] 2025.01.06 - OSI 7계층 (물리 계층)
  • [개발 일기] 2025.01.05 - 자바 객체 락 (synchronized)
오도형석
오도형석
  • 오도형석
    형석이의 성장일기
    오도형석
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • MSA 모니터링 서비스
        • DB
      • 스파르타 코딩클럽
        • SQL
        • Spring
      • 백엔드
        • Internet
        • Java
        • DB
      • 캡스톤
        • Django
        • 자연어처리
      • Spring
        • JPA
        • MSA
      • ETC
        • ERROR
      • 개발 일기 N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 인기 글

  • 태그

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
오도형석
[개발 일기] 2025.01.07 - OSI 7계층 (데이터 링크 계층)
상단으로

티스토리툴바