2025년 4월 1일
[네트워크] 물리 계층과 데이터 링크 계층
cleanUrl: /물리-계층과-데이터-링크-계층 floatFirstTOC: right
1. 이더넷

- 물리 계층과 데이터 링크 계층의 핵심은 LAN 내의 호스트들이 올바르게 정보를 주고받을 수 있도록 하는데 있다.
- LAN → 가까운 지역을 연결한 근거리 통신망
- WAN → 먼 지역을 연결하는 광역 통신망
- 이를 가능하게 하는 기술이 바로 이더넷(Ethernet)
- LAN 내의 호스트들이 올바르게 정보를 주고받기 위해 물리 계층은 신호를 전송하고, 데이터 링크 계층은 프레임의 전달과 오류 수정 작업을 수행한다.
이더넷 표준
- 초기에는 여러 회사가 각자 다른 방식으로 네트워크 기술을 개발
- 같은 네트워크 환경에서도 서로 다른 장비들이 데이터를 주고 받지 못하는 문제 발생
- 예: 회사 A에서 만든 컴퓨터와 회사 B에서 만든 프린터가 같은 케이블로 연결되어도 통신 X
- 서로 다른 제조사의 장비라도 같은 표준을 사용하면 문제없이 통신이 가능하기 때문에 이더넷 표준이라는 것이 등장
- 이더넷 표준별 속도와 명칭 정리
이더넷 표준 | 알려진 이름 | 속도 |
IEEE 802.3 | 이더넷 | 10Mbps |
IEEE 802.3u | 고속 이더넷 | 100Mbps |
IEEE 802.3z 또는 302.3ab | 기가비트 이더넷 | 1000Mbps |
IEEE 802.3ae | 10기가비트 이더넷 | 10Gbps |
IEEE 802.3ba | 100기가비트 이더넷 | 100Gbps |
- 이더넷은 IEEE 802.3이라는 이름으로 국제 표준화된 기술
- 네트워크 속도가 점점 빨라지고 새로운 기술이 나오더라도, 기존 표준을 기반으로 확장되는 방식
- 예: IEEE 802.3(10Mbps) → IEEE 802.3u(100Mbps) → IEEE 802.3ba(100Gbps)
- 일반적으로 개발자 입장에서 특정 이더넷 표준을 자세히 들여다 봐야 하는 상황은 많지 않지만, 다음 2가지 사항은 기억해 두는 것이 좋다.
- 오늘날의 (유선)LAN 대부분이 이더넷 표준을 따르기 때문에 대다수의 LAN 장비들이 특정 이더넷 표준을 따른다.
- 이더넷 표준이 달라지면 통신 매체의 종류를 비롯한 신호 송수신 방법, 나아가 최대 지원 속도도 달라질 수 있다.
- 네트워크 장비들을 검색해 보면 ‘특정 이더넷 표준을 지원한다’라는 안내 만구를 어렵지 않게 찾아볼 수 있다.
- 최신 이더넷 표준을 준수하는 네트워크 장비는 일반적으로 최대 지원 속도가 빠른 경우가 많다.

이더넷 프레임
- 이더넷 프레임은 이더넷 기반의 네트워크에서 주고받는 프레임을 의미한다.
- 프레임 = 이더넷 프레임

- 프리앰블
- 송수신지 동기화를 위해 사용되는 8바이트(64비트) 크기의 정보
- 7바이트의 10101010이라는 값을 가지고, 마지막 바이트는 10101011이라는 값을 가진다.
- 수신지 입장에서는 이 프리앰블 비트를 통해 현재의 이더넷 프레임이 수신되고 있다는 사실을 알아차린다.
- 송수신지 MAC 주소
- 송신지와 수신지를 특정할 수 있는 6바이트(48비트) 길이의 물리적 주소
- 다음과 같이 콜론(
:)으로 구분된 12자리 16진수로 구성 ab:cd:ab:cd:00:01- MAC 주소는 네트워크 인터페이스마다 하나씩 부여되는 주소
- 네트워크 인터페이스: 네트워크를 향하는 통로, 연결 매체와의 연결 지점을 의미
- 보통 NIC라는 장치가 네트워크 인터페이스를 담당
- 타입/길이
- 명시된 크기가 1500 이하(16진수 05DC)이면 이 필드는 프레임의 크기를 의미
- 1536 이상(16진수 0600)이면 타입을 의미
- 타입은 캡슐화된 상위 계층의 정보를 의미
- 예를 들어 IP(IPv4)가 캡슐화된 정보를 운반한다면 타입에는 16진수 0800이 명시되고, ARP 프로토콜이 캡슐화된 정보를 운반한다면 16진수 0806이 명시된다.
- 데이터
- 데이터 필드에는 페이로드, 즉 상위 계층으로 전달하거나 전달받을 데이터가 명시된다.
- 중요한 점은 데이터 필드에 포함될 수 있는 데이터의 최대 크기가 1500바이트 이하로 제한되어 있으며, 이보다 큰 데이터를 보낼 경우에는 여러 패킷으로 나뉘어 보내진다.
- 이 크기를 MTU라고 부른다.
- FCS
- FCS는 트레일러이다.
- FCS = Frame Check Sequence
- 프레임의 오류가 있는지의 여부를 확인하기 위한 필드
- CRC라는 오류 검츌용 값이 명시된다.
- CRC = Cyclic Redundancy Check
- 송시지에서 전송할 데이터와 더불어 전송할 데이터에 대한 CRC 값을 계산하여 보내면 수신지에서는 전달받은 데이터에 대한 CRC 값을 계산해, 그 값을 전달받은 CRC 값과 대조한다.
- 두 값이 같을 경우 프레임에 오류가 없다고 판단
2. 네트워크 인터페이스: NIC
- NIC = Network Interface Controller
- 네트워크 상에서 노드와 통신 매체가 연결되는 지점을 네트워크 인터페이스라고 한다.
- 네트워크 인터페이스는 노드와 네트워크 사이의 통로
- 네트워크 인터페이스마다 물리적 주소라고 불리는 MAC 주소가 부여되고, NIC라는 하드웨어가 네트워크 인터페이스의 역할을 담당하는 것이 일반적이다.
- NIC = 네트워크 인터페이스 카드, 네트워크 어댑터, LAN 카드, 네트워크 카드, 이더넷 카드
- 통신 매체의 신호를 호스트가 이해하는 프레임으로 변환하거나 호스트가 이해하는 프레임을 통신 매체의 신호로 변환하는 역할을 수행
- 때로는 MAC 주소를 토대로 잘못 전송된 패킷이 없는지 확인하는 역할도 수행
- NIC를 작동시키는 시스템 콜이 호출되면 커널 모드로 전환된 뒤에 송수신이 수행되고, 입출력이 완료되면 인터럽트를 통해 CPU에게 작업을 알리게 된다.
- NIC는 여느 입출력장치와 마찬가지로 각각의 성능이 다르다.
- 즉, NIC의 지원 속도가 저마다 다르고, 이는 네트워크의 속도에 큰 영향을 끼친다.
3. 허브와 스위치
- 허브와 스위치는 물리 계층과 데이터 링크 계층의 중간 노드이다.
물리 계층의 허브
- 허브는 물리 계층의 대표적인 네트워크 장비
- 여러 대의 호스트를 연결하는 장치
- 허브 = 리피터 허브, 이더넷 허브
- 허브에서 케이블의 커넥터를 포트(port)라고 한다.
- 허브에는 2가지 중요한 특징이 있다.
- 전달받은 신호를 모든 포트로 내보낸다.
- 반이중 모드로 통신한다.
반이중 모드(half duplex): 한 번에 한 방향으로만 전송할 수 있는 통신 방식 반이중 모드 ↔ 전이중 모드
- 허브는 반이중 모드로 통신하기 때문에 어느 한 호스트가 허브를 향해 정보를 전달하면 다른 호스트는 정보를 전송할 수 없다.
- 만일 허브를 향해 동시에 메시지를 보내면 충돌이라는 문제가 발생하며 충돌이 발생할 수 있는 영역을 콜리전 도메인이라고 한다.
- 앞서 허브는 전달받은 신호를 모든 포트로 내보내는 동시에 반이중 모드로 통신하므로 허브에서 충돌이 발생할 수 있는 영역은 ‘허브에 연결된 모든 호스트’가 된다.
충돌(collision): 두 대 이상의 호스트가 동시에 데이터를 전송하려고 할 때 발생하는 현상 콜리전 도메인(collision domain): 충돌이 발생할 수 있는 영역
데이터 링크 계층의 스위치

- 스위치는 허브의 한계를 보완하기 위한 네트워크 장비
- 스위치는 허브와 달리 전달받은 신호를 목적지 호스트가 연결된 포트로만 내보내고, 전이중 모드를 지원하므로 허브와 비교해 콜리전 도메인이 좁다.
전이중 모드(full duplex): 동시에 양방향으로 데이터를 전송할 수 있는 통신 방식
MAC 주소 테이블
- 스위치가 전달받은 신호를 원하는 포트에만 내보낼 수 있는 이유는 스위치의 MAC 주소 학습 기능 덕분이다.
- 스위치는 데이터 링크 계층에 속한 장비이므로 MAC 주소를 이해할 수 있다.
- 스위치는 프레임 속 MAC 주소를 토대로 현재 어떤 포트에 어떤 MAC 주소를 가진 호스트가 연결되어 있는지 파악하고, 대응 관계를 테이블의 형태로 메모리에 저장한다.
포트 | MAC 주소 |
1번 | ab:cd:ab:cd:00:01 |
2번 | ㅤ |
3번 | ab:cd:ab:cd:00:03 |
4번 | ㅤ |
5번 | ㅤ |
- 이를 MAC 주소 테이블이라고 한다.
VLAN
- VLAN(Virtual LAN)은 가상의 LAN을 의미한다.
- 이 기능은 대표적으로 같은 스위치에 연결된 모든 호스트를 하나의 네트워크로 간주하고 싶지 않을 때, 여러 논리적인 네트워크로 나누고 싶을 때 사용된다.
- 다음과 같이 스위치에 연결된 호스트를 A~I를 2개의 논리적인 네트워크(VLAN)로 나누는 경우를 예로 들 수 있다.

- 호스트 A~D와 호스트 E~I는 서로 다른 VLAN에 속해 있으므로 서로 다른 네트워크로 간주된다.
- 브로드캐스트 도메인도 겹치지 않아 VLAN1의 브로드캐스트 메시지가 VLAN2에 도달하지 않는다.
- 호스트 A~D와 호스트 E~I가 서로 통신을 주고 받으려면 네트워크 계층 이상의 장비가 필요하다.
