- MAC이라는 주소를 사용하여 통신한다.
- Point to Point( 직접 연결된 ) 간 데이터 전송을 담당하며 흐름 제어, 오류 제어 기능이 존재한다.
- MAC 주소를 통해 LAN 속 장치 간의 신뢰성 있는 정보( Frame )를 전송한다.
- MAC( Media Access Control Address )
- 데이터 링크 계층에서 통신을 위한 NIC에 할당된 고유 식별자를 말한다.
- 16진수로 표현하며, 총 6 byte( = 48 bit )로 구성된다.
- 상위 3 byte는 제조 업체 식별 코드 OUI( Organizetional Unique Identifier )를 나타낸다.
- 하위 3 byte는 고유 번호를 부여하기 위한 시리얼 넘버를 나타낸다.
- 이더넷( Ethernet )
- MAC 주소를 통해 식별하는 유선 네트워크 구성 방식
- LAN에서 적용되는 규칙으로 스위치 같은 장비에 연결된 장비들의 데이터 통신을 위해 사용
- CSMA/CD 방식을 이용한 통신
2계층 프로토콜은 이더넷 외에도 Token Ring, FDDI, Wi-Fi 등이 존재한다.
CSMA/CD ( Carrier Sense Multiple Access with Collision Detection, 반송파 감지 및 접속 및 충돌 탐지 )
- Carrier Sense : 신호 감지
- Multiple Access : 다중 접근
- Collision Detection : 충돌 방지
Ethernet Frame
- Ethernet 네트워크를 통해 전송되는 데이터 단위이며, 헤더, 데이터( 페이로드 ), 트레일러로 구성된다.
Preamble
- 물리계층에서 전송된 비트패턴
- 송신자와 수신자의 동기를 맞추는데 사용한다.
- 7 byte의 크기이며 항상 10101010... 으로 설정한다.
SFD( Start of Frame Delimiter )
- 1 byte 형태의 물리 계층이 끝나고 프레임 헤더를 알려주는 신호 역할
- 항상 10101011 이며 마지막 두 필드 11에 의해 프레임 시작을 알린다.
Preamble과 SFD는 프레임의 일부는 아니지만 동기화를 위해 사용된다.
Preamble과 SFD는 패킷 캡처 시 캡처되지 않는다.
Destination Address
- 프레임이 전송되는 대상 장치의 MAC 주소
- 6 byte
- ex) AA:AA:AA:BB:BB:BB
Source Address
- 프레임을 보내는 장치의 MAC 주소
- 6 byte
- ex) CC:CC:CC:DD:DD:DD
Ethernet Type
- 상위 계층의 Protocol 코드 값
- 3계층에서 어떤 통신을 할지 결정
- 2 byte
- IP : 0x0800, ARP : 0x0806 등
Data/Payload
- 상위 계층에서 내려온 데이터
- 7계층 부터 3계층의 캡슐화 된 데이터
- 상위 계층의 데이터 크기에 따라 46 byte ~ 1500 byte까지 유동적인 길이를 가진다.
FCS( CRC ) = Trailer ( Frame Check Sequence( Cyclic Redundancy Check ) )
- 오류를 확인하는 필드
- Destination Address와 Source Address, 길이, 데이터 영역의 합을 계산해서 에러를 판별한다.
- 송신 측에서 FCS에서 CRC를 추가해서 보내고 수신 측에서도 동일한 방법으로 추출한 결과와의 일치성으로 오류 검사를 하는 기술이다.
데이터 링크 계층의 장비
스위치
- LAN에 위치한 장치를 연결하는데 사용한다
- L2 스위치라고도 불리며 MAC 주소를 저장할 수 있는 특징이 있다.
- MAC 주소를 저장할 수 있기 때문에 스위칭 기능이 존재한다.
- 스위칭 기능은 자신이 원하는 목적지에 데이터를 전송하는 기법을 의미한다.
- 패킷을 전달할 때 Preamble을 제외한 상위 6 byte( Destination MAC Address )만 목적지 MAC주소만 읽고 전달한다.
ARP( Address Resoluion Protocol )
- 주소 결정 프로토콜로 해당 IP에 맞는 맥 주소를 가지고 오는 프로토콜이다.
ARP의 헤더를 살펴보자.
Hardware Type
- 2계층 네트워크 유형을 정의
- Ethernet의 경우 0x0001로 설정
Protocol Type
- 3계층에서 사용하는 프로토콜을 정의
- IPv4일 경우 0x0800으로 설정
HW addr Length
- MAC 주소의 길이를 정의
- Ethernet의 경우 6 byte로 설정
Protocol addr Length
- 3계층 프로토콜의 길이를 정의
- IPv4의 경우 4 byte로 설정
Operation
- 패킷 유형
- ARP 요청의 경우 1, ARP 응답의 경우 2를 설정
Sender HW Address
Sender IP Address
Target HW Address
Target IP Address