데이터 링크 계층에 대해서 설명하기 전에 OSI 7계층에 대해서 잠깐 복기하겠습니다.
OSI 7 계층이란?
물리 계층 : 비트 단위의 데이터를 전기적, 광학적 신호로 변환하여 전송하는 역할을 합니다.
데이터 링크 계층 : 네트워크 기기간의 데이터 전송을 담당하며, 오류 검출 및 제어 기능을 수행합니다.
네트워크 계층 : 데이터를 목적지까지 전달하는 경로를 결정합ㅂ니다.
전송 계층 : 데이터의 전송을 관리하며, 오류 검출 및 복구, 흐름 제어를 수행합니다.
세션 계층 : 통신 세션을 설정, 유지, 종료하는 역할을 합니다. 세션의 연결 및 관리가 이루어집니다.
표현 계층 : 데이터의 형식을 변환하고, 암호화 및 복호화를 수행하는 역할을 합니다.
응용 계층 : 사용자와 직접 연결되는 계층으로, 이메일, 웹 브라우징 등의 응용 프로그램이 이계층에 속합니다.
제 2 계층: 데이터 링크 계층이란
데이터 링크 계층(Data Link Layer)은 OSI 7 계층 중 두 번째 계층으로, 네트워크 기기 간 데이터 전송, 오류 검출 및 제어, 그리고 흐름 제어 등을 담당하는 역할을 수행합니다.
제 1계층만 있다면 네트워크 기기간에 데이터를 전송할 때 엄청난 비효율이 발생합니다.
원하는 목적지로 전송할 수 없어서 모든 곳에 동시에 전송하게 된다던가, 아니면 많은 케이블로 각각의 기기를 모두 연결해야 하는 상황이 발생합니다.
따라서, 데이터 링크 계층은 신호를 올바른 목적지까지 전달하고, 전송 중 발생할 수 있는 오류를 검출 및 수정하며, 흐름 제어를 수행하는 역할을 합니다.
데이터 링크 계층의 주기능
1) 프레이밍(Framing)
- 데이터 링크 계층은 네트워크 계층(3층) 으로부터 받은 데이터를 프레임(Frame)단위로 나눈다.
- 프레임은 헤더와 트레일러를 포함하여 데이터가 올바르게 전송되고 수신될 수 있도록 도와준다.
- 상위 계층인 네트워크 계층에서 구성되는 데이터의 단위를 데이터그램이라한다.
- 앞서 허브에 대한 설명에서 허브를 사용할 때, 특정한 컴퓨터 한 대에 데이터를 보내도 허브에 연결된 다른 모든 컴퓨터에 데이터가 전달된다고 하였다.
이때 헤더에 목적지 정보가 들어가기 때문에 목적지 이외의 컴퓨터는 데이터를 받더라도 무시하게 된다.
2) 물리적 주소 지정(Addressing)
- 데이터 링크 계층은 물리적 주소(MAC, Media Access Control address)를 사용하여 네트워크 내의 장치들을 식별한다.
3) 흐름 제어
- 송신자와 수신자 간의 데이터 전송 속도를 조절하여 수신자의 데이터 처리를 돕는다.
- 이를 통해 데이터 전송 시 오버플로우(Overflow)가 방지된다.
- 오버플로우는 수신자가 처리할 수 있는 용량보다 더 많은 데이터가 전송 될 시 발생하는 상황으로 수신자의 버퍼가 가득 차 더 이상 데이터를 받아 들일 수 없는 상태다.
4) 오류 제어
- 데이터 링크 계층에서는 주로 체크섬(Checksum)이나 순환 중복 검사(CRC: Cyclic Redundancy Check)와 같은 오류 검출 메커니즘을 사용해 프레임의 오류를 감지한다.
- 오류 감지 시, 프레임 전체를 재전송하는 방식으로 손상된 데이터를 복구한다.
5) 접근 제어
- 공유된 네트워크 매체(예: 이더넷)에 여러 장치가 접근할 때 충돌을 방지하기 위해 접근 제어 메커니즘을 사용한다.
- CSMA/CD나 CSMA/CA와 같은 프로토콜이 해당된다.
용어 정리
- 데이터 링크 계층
- 데이터 링크 계층은 네트워크 기기 간에 데이터를 전송하고 물리 주소를 결정한다.
- 그리고 네트워크 장비 간에 신호를 주고받는 규칙을 정한다.
- 이더넷
- 이더넷은 랜에서 데이터를 주고받기 위한 규칙으로, 허브와 같은 장비에 연결된 컴퓨터와 데이터를 주고 받을 때 사용한다.
- 일반적으로 사용되는 랜에서 가장 많이 활용되는 기술 규격이다.
- 만약 허브에 연결된 컴퓨터들이 동시에 데이터를 보낸다면 충돌이 발생할 수 있다.
- MAC 주소
- 랜카드에 할당 된 전 셰게에서 유일한 번호로 물리 주소라고도 불린다.
- MAC 주소를 사용한 통신으로, 데이터 링크 계층에서 이더넷 헤더와 트레일러를 붙인다.
- 이더넷 헤더
- 이더넷 헤더는 목적지의 MAC 주소 (6 bytes), 출발지 MAC 주소 (6 bytes), 유형(2 bytes)으로 총 14bytes로 구성된다.
- 이더넷 유형은 이더넷으로 전송되는 상위 계층 프로토콜의 종류를 식별하는 번호를 나타낸다.
목적지 MAC 주소 6 바이트 |
출발지 MAC 주소 6 바이트 |
유형 2 바이트 |
유형 번호 | 프로토콜 |
0800 | IPv4 |
0806 | ARP |
8035 | RARP |
814C | SNMP over Ethernet |
86DD | IPv6 |
- 트레일러
- 트레일러는 데이터 뒤에 붙고, FCS(Frame Check Sequence)라고 부르기도 한다.
- 데이터 전송 도중 오류가 발생하는지 확인하는데 사용된다.
- 프레임
- 데이터 링크 계층에서 이더넷 헤더와 트레일러가 추가된 데이터이다.
- CSMA/CD
- 이더넷은 CSMA/CD라는 데이터 전송 시점을 늦추는 방법을 사용하여 충돌을 방지한다.
- CS : 데이터를 보내려고 하는 컴퓨터가 케이블에 데이터가 흐르고 있는지 확인하는 규칙
- MA : 케이블에 데이터가 흐르고 있지 않으면 데이터를 보내도 된다는 규칙
- CD : 충돌이 발생하고 있는지 확인하는 규칙
- 하지만 최근에는 스위치(switch)라는 장비를 사용하면서 CSMA/CD를 사용하지 않는다.
- 스위치
- 스위치란 랜을 구성할 때 사용하는 단말기 간 스위칭 기능이 있는 통신망 중계 장치이다.
- 데이터 링크 계층에서 동작하고 스위칭 허브라고도 불린다.
- 생김새는 허브와 비슷하다.
- 이 스위치 안에는 MAC 주소 테이블이 있다.
지금까지의 데이터 전송 과정
1. 데이터 링크 계층에서 데이터에 이더넷 헤더와 트레일러를 추가하여 프레임을 만든다.
2. 물리 계층에서 이 프레임 비트열을 전기 신호로 변환하여 네트워크를 통해 전송한다.
3. 허브에 연결된 모든 컴퓨터는 데이터를 받고, 역캡슐화로 이더넷 헤더와 트레일러를 분리한다.
4. 목적지 MAC 주소와 자신의 MAC 주소를 비교하고 다르면 데이터를 파기한다.
만약 여러 컴퓨터가 같은 컴퓨터에 데이터를 전송한다면 CSMA/CD 방식을 사용하여 충돌을 방지한다.
'Node.js' 카테고리의 다른 글
아이템 시뮬레이터 프로젝트 (2) | 2024.09.12 |
---|---|
물리 계층이란? (1) | 2024.09.03 |
Node.js 용어 정리 - 2주차 (0) | 2024.08.30 |
Node.js 용어 정리 - 1주차 (0) | 2024.08.29 |
TextRPG 만들기 - 1탄 (0) | 2024.08.22 |