[Linux Kernel Network] PHY 와 MAC 그리고 MII

문연수·2026년 1월 11일

Linux Kernel Network

목록 보기
2/3
post-thumbnail

NIC (Network Interface Card) 라고 하는 네트워크 장비(여기선 이더넷 장비)를 이해하기 위해선 PHYMAC 그리고 MII 에 대한 이해가 필요하다.

 엄청 디테일하게 다 이해할 필요는 없다. 다만 위의 용어들이 나왔을 때에 얘네가 대충 뭘 하는 얘들인지는 알 필요가 있다. phylink 에 대해 소개하기 전에 배경 지식을 한번 정리하려 한다.

핵심은 PHY 는 아날로그 물리 신호 <-> 디지털 스트림 변환 + 링크 관리, MAC 은 디지털 프레임 처리/전송 로직, 그 사이의 표준 인터페이스가 xMII. 이것만 기억하라.

0. 연결과 구성

https://www.programmersought.com/article/2942876102/

이 사진이 진짜 진국이다. 기가 막히게 네트워크 아키텍처를 잘 표현하고 있다.

(Userspace / Kernel view)
    struct net_device
          |
          v
+-----------------------+      xMII (MII/RMII/RGMII/SGMII/...)     +----------+      +--------------+   ... to LP
| Ethernet Controller / | <--------------------------------------> | Ethernet | ---> | Connector /  | ----------->
|       MAC (+DMA)      |                                          |   PHY    |      |    Port      |
+-----------------------+                                          +----------+      +--------------+

Management path (MIIM over MDIO/MDC):
        Host CPU
          |
          v
  +-------------------+         MDIO/MDC          +----------+
  | MDIO/MIIM Ctrl    | <-----------------------> |   PHY    |
  | (in MAC or SoC)   |                           +----------+
  +-------------------+

1. PHY (Physical Layer Transceiver)

PHY이더넷 물리 계층(IEEE 802.3 PHY)을 구현하는 트랜시버이다. 더 정확하게 말하자면 트랜시버(TX/RX) + 링크 매니저이다. MAC 의 디지털 비트/심볼 스트림을 케이블/선로의 물리 신호(전기/광)로 바꾸고, 반대로 복원한다.

 핵심적으로 수행하는 일은 다음과 같다: 송/수신(TX, RX)와 링크 관리(Link up/down, Auto-Negotiation), EEE, 케이블 진단, etc.

 가끔 Link Partner (LP) 라는 용어를 쓸텐데 이는 케이블 자체를 뜻하는 것이 아닌, 케이블 반대편의 상대 PHY (상대 포트의 물리 계층) 을 뜻한다.

2. MAC (Media Access Control)

MAC 은 이더넷 프레임을 만들고/해석하며, 매체 접근 제어(MAC) 와 프레임 전송 규칙을 담당하는 디지털 로직(하드웨어 블록)이다. IEEE 802.3 의 데이터 링크 계층 중 MAC 서브레이어(2계층 일부분)로 볼 수 있다.

MAC 이 수행하는 일은 프레임 처리(MAC 주소 기반의 프레임 송수신, FCS(CRC) 생성/검증), 흐름 제어, 버퍼/큐/DMA 연계 등을 수행한다. MAC 은 보통 NIC/SoC 내부의 전용 하드웨어 블록이며, CPU 는 이를 설정하고 제어한다.

3. MII(Media Independant Interface)

MII는 MAC과 PHY를 연결하는 표준 인터페이스 계열(xMII 패밀리)이다. "매체 독립"이 핵심이며, 케이블 종류(구리/광/백플레인)와 무관하게 MAC–PHY 경계를 표준화해 분리 가능하게 만든다. xMII 는 MAC 과 PHY 사이 데이터 전송과 관련된 신호(TX/RX, 클럭, 제어, etc.)를 전달한다.

 추가적으로, 삽화에 나온 MDIO/MDC (Management Data Input/Ouput, Management Data Clock)PHY 레지스터를 읽고/써서 링크 상태(Link status), 자동 협상(Auto-Negotiation) 결과 등의 설정/상태 조회를 담당한다.

출처

https://docs.kernel.org/networking/phy.html
https://docs.kernel.org/networking/phy-link-topology.html
https://www.programmersought.com/article/2942876102/

profile
2000.11.30

0개의 댓글