CS Repo/네트워크 - Top-down Approach + @
유선 LAN(IEEE802.3) 이더넷 - 데이터링크 계층 관점
조금씩 차근차근
2025. 4. 15. 18:29
본 게시글은 그림으로 공부하는 TCP/IP 구조 도서를 참고하였습니다.
같이보기: 이더넷 - 물리 계층 관점
지금부터 이더넷의 데이터링크 계층에서의 역할에 대해 알아보자.
알아볼 내용은 다음과 같다.
- 데이터링크 계층의 역할
- 이더넷 프레임
- MAC 주소
- 이더넷을 위한 장비, L2 스위치가 제공하는 기능
데이터링크 계층의 역할
- 물리 계층과 비교하면
- 물리 계층은 디지털 데이터를 전파 신호로 변환하고,
- 데이터링크 계층은 디지털 데이터 전체의 정합성 체크를 수행한다.
- 물리계층과 연계해서 동작하기 때문에, 물리 계층과 함께 프로토콜로 정의되어 있다.
이더넷 프레임
정의
- 이더넷 프로토콜에 의해 캡슐화된 패킷을 의미한다.
이더넷 프레임 포맷의 종류
- 이더넷 II 규약
- 사실상 표준
- IEEE802.3 규약
- 이더넷 II에 몇가지 기능을 더 추가했지만, 이미 이더넷 II가 전부 보급되어서 주목받지 못했다.
이더넷 프레임 포맷의 형태
이더넷 프레임 포맷은 다음과 같은 형태로 구성되어 있다.
- 이더넷 헤더
- 프리앰블
- 수신지/송신지 MAC 주소
- 타입
- 이더넷 페이로드
- IP 패킷
- 패딩
- FCS(이더넷 트레일러)
이더넷 헤더란?
이더넷 프로토콜에 대한 기본 정보를 담는 공간을 의미한다.
프리앰블, 수신지/송신지 MAC 주소, L3의 타입 정보를 갖고있다.
프리앰블(Preamble)
- '이제부터 이더넷 프레임을 보냅니다.' 라는 합의를 의미하는 8바이트(64비트)의 비트 패턴.
- 앞에서부터 10101010 * 7개, 마지막에 10101011 * 1개를 전송한다.
- 수신 측 단말은 이 특별한 비트 패턴을 보고, '이제부터 이더넷 프레임이 온다'는걸 판단한다.
수신지/송신지 MAC 주소
- 하단 MAC 주소의 정의를 참고하자.
- 이더넷 헤더는 수신지와 송신지의 MAC 주소를 지정한다.
- 나와 관계없는 수신지 MAC 주소를 받았을 경우, 수신 측 단말은 해당 이더넷 프레임을 파기한다.
- 수신측 단말은 송신지 MAC 주소를 보고, 어떤 단말에서 온 이더넷 프레임인지 판별한다.
타입
- 이더넷 헤더는 L3에서 어떤 프로토콜을 사용하는지 알리는 2byte의 ID를 알려준다.
- 0x0800h - IPv4
- 0x0806h - ARP
- 0x86DDh - IPv6
- 0x8100h - VLAN ID
이더넷 페이로드란?
- L3 를 위한 본문을 의미한다.
- 46바이트 미만이면, 패딩을 추가해 강제로 46바이트로 만든다.
- 1500바이트 이상의 경우에는, L3나 L4 에서 데이터를 나누어 1500바이트로 맞춘다.
- 1500바이트 이상으로 크게 만들 수 있긴 하다.
- 이를 jumbo frame 이라고 한다.
- 1500바이트 이상으로 크게 만들 수 있긴 하다.
FCS(이더넷 트레일러)란?
- 이더넷 프레임이 손상되지 않았는지 확인하기 위한 4바이트 필드이다.
- 송신자는 아래 네가지에 대하여, 각각 1바이트식 할당한 체크섬을 추가해둔다.
- 수신지 MAC 주소
- 송신지 MAC 주소
- 타입
- 이더넷 페이로드
- 수신자는 해당 체크섬의 결과가 일치하는지 비교하여 본문을 검사한다.
MAC 주소
MAC 주소란?
- (로컬) 이더넷 네트워크에 접속하고 있는 단말을 식별하는 6바이트(48비트)의 ID이다.
- 이더넷에서의 주소와 같은 느낌으로 이해하면 좋다.
MAC 주소의 구조
- MAC 주소는 하이픈(-) 또는 콜론(:) 으로 구분해 12자리의 16진수로 표기한다.
- 00-0c-29-ce-90-e4
- 00:0c:29:ce:90:e4
상세한 MAC 주소의 구조를 알아보자.
- OUI
- IEEE가 정해주는, 단말의 NIC를 제조한 벤더 ID를 의미한다.
- MAC 주소의 앞 6자리(24비트)를 담당한다.
- 00:0c:29
- UAA
- 출하 시 벤더에서 할당하거나 무작위로 생성한 주소를 의미한다.
- MAC 주소의 뒷 6자리(24비트)를 담당한다.
- ce:90:e4
- 참고) MAC 주소가 반드시 고유한 값을 갖지는 않는다.
- 벤더가 출하 시 MAC 주소를 재활용하거나, 가상 환경 등에서 UAA를 무작위로 생성하는 등의 이유로, 더이상 고유한 값이라고 단정할 수 없게 되었다.
- 이더넷 네트워크에서 같은 MAC 주소의 단말이 여럿 존재하면, 해당 단말들은 모두 통신할 수 없다.
- 만약 통신이 안된다면, 중복된 MAC 주소를 가지진 않았는지 확인하고, 중복되지 않는 MAC 주소로 수정하자.
통신 종류에 따른 MAC 주소의 차이
- 통신 종류은 내용은 해당 링크를 참고하길 바란다.
L2 유니캐스트의 경우
- 각 단말의 MAC 주소가 송신지/수신지 MAC 주소를 이룬다.
- 인터넷 통신의 대부분이 이 유니캐스트로 분류된다.
L2 브로드캐스트의 경우
- 같은 이더넷 네트워크에 속해있는 자신 외 모든 단말에 프레임을 송신한다.
- L2의 브로드캐스트 도메인은 같은 이더넷 네트워크이다.
- ARP와 같은 네트워크상의 모든 단말에 알림/문의를 하는 프로토콜에서 사용한다.
- 송신지 MAC 주소는 송신지 단말의 MAC 주소를 갖고
- 수신지 MAC 주소는 모든 비트가 1인, ff:ff:ff:ff:ff:ff 형태를 띈다.
L2 멀티캐스트의 경우
- 같은 이더넷 네트워크 내, 특정 멀티캐스트 그룹에 속해있는 단말들에게 프레임을 송신한다.
- 송신지 MAC 주소는 송신지 단말의 MAC 주소가 그대로 입력된다.
- 수신지 MAC 주소는 네트워크 계층에서 사용하는 IP버전에 따라 달라진다.
- IPv4
- 상위 25비트
- 멀티캐스트를 의미하는 OUI + 1비트를 붙인다.
- 0000 0001 0000 0000 0101 1100 0
- 멀티캐스트를 의미하는 OUI + 1비트를 붙인다.
- 하위 23비트
- 멀티캐스트용 IPv4 주소의 하위 23비트를 그대로 복사한다.
- 224.0.0.0~239.255.255.255
- 멀티캐스트용 IPv4 주소의 하위 23비트를 그대로 복사한다.
- 상위 25비트
- IPv6
- 상위 16비트
- 33:33
- 하위 32비트
- IPv6 주소의 하위 32비트를 그대로 복사한다.
- 상위 16비트
- IPv4
이더넷을 위한 장비, L2 스위치가 제공하는 기능
L2 스위칭
정의
- L2 스위치가 "송신지 MAC 주소:자신의 포트 번호" 쌍을 MAC 주소 테이블이라는 메모리상의 테이블로 관리하는 기능
- 이더넷 프레임을 효율적으로 전송하는 기능을 의미한다.
작동방식
같은 L2 스위치에 접속된 PC1과 PC2, PC3 중, PC1과 PC2가 통신하는 경우를 가정하자.
1. PC1은 PC2에게 이더넷 프레임을 만들어 케이블로 보낸다.
2. L2 스위치는 케이블에서 해당 이더넷 프레임을 받는다.
- 이때, L2 스위치는 도착한 이더넷 프레임의 송신지 MAC 주소와 도착한 포트 번호 쌍을 테이블에 저장한다.
3. L2 스위치는 PC2가 어느 포트에 있는지 모르기 때문에, PC1을 제외한 모든 포트에 브로드캐스팅을 시도한다.
- 이 동작을 flooding이라고 한다.
- ff:ff:ff:ff:ff:ff 는 MAC 주소가 될 수 없으므로, MAC 주소 테이블에 등록하지 않는다.
4. PC2는 해당 프레임을 받고 응답 프레임을 만들어 케이블로 보내고, PC3는 관계 없는 프레임임을 파악하고 해당 이더넷 프레임을 파기한다.
5. PC2의 이더넷 프레임을 전달받은 L2 스위치는 이더넷 프레임의 송신지 MAC 주소에 들어있는 PC2의 MAC 주소와 포트 번호 쌍을 테이블에 저장한다.
6. 이제 L2 스위치는 PC1과 PC2가 어떤 물리 포트에 접속되어 있는지 확인했다.
- 이제 L2 스위치는 PC1과 PC2에 대하여 flooding을 수행하지 않는다.
L2 스위치는 각 기기가 일정시간동안 통신하지 않으면 MAC 주소 테이블에서 삭제한다.
- 삭제할 때까지의 대기시간은 기기마다 다르지만, 임의로 변경 가능하다.
- 예를 들어, Cisco의 디폴트 설정은 5분이다.
VLAN
정의
- 1대의 L2 스위치를 여러대의 L2 스위치로 가상 분할하는 기술을 의미한다.
- L2 스위치의 포트에 VLAN 식별 번호인 VLAN ID 라는 숫자를 설정하고, 해당 VLAN ID에게만 프레임을 전송하게 한다.
종류
- 포트 기반 VLAN
- 포트 별로 가상 MAC 주소를 새로 할당하는 방식
- 태그 VLAN
- 이더넷 프레임의 페이로드 앞에 VLAN Tag 를 추가하는 방식
PoE
- 꼬임쌍선을 통해 전원을 공급하는 기능을 의미한다.