TCP/IP 모델의 기반 계층인 **링크 계층 (Link Layer)**은 로컬 네트워크 세그먼트에서의 통신을 담당합니다. 이 계층은 네트워크 인터페이스 카드 (NIC) 및 물리적 주소 지정과 직접적으로 관련되어 있어 하드웨어에 특화되어 있습니다.
프레임과 링크 계층 헤더
링크 계층에서는 네트워크 계층의 패킷이 프레임 (frame) 이라는 구조로 캡슐화됩니다. 이 과정의 핵심 부분은 링크 계층 헤더를 추가하는 것입니다. 이 헤더에는 호스트의 송신 및 수신 MAC 주소, 오류 감지를 위한 체크섬, 그리고 수신 장치가 프레임의 시작과 끝을 식별할 수 있도록 하는 패킷 구분자가 포함됩니다.
링크 계층 헤더를 구성하려면 송신 및 수신 MAC 주소가 모두 필요합니다. 송신 MAC 주소는 알려져 있지만, 동일한 로컬 네트워크 내의 IP 에 대한 수신 MAC 주소는 발견되어야 합니다. 이때 주소 결정 프로토콜 (ARP) 이 사용됩니다.
ARP (주소 결정 프로토콜)
ARP 는 동일 네트워크 내에서 특정 IP 주소와 연결된 MAC 주소를 찾는 데 사용되는 링크 계층 프로토콜입니다. 목적지 호스트가 다른 네트워크에 있다면 패킷은 기본 게이트웨이 (라우터) 로 전송되며, ARP 는 라우터의 MAC 주소를 찾는 데 사용됩니다.
시스템은 먼저 알려진 IP-MAC 주소 매핑을 캐시하는 ARP 조회 테이블을 확인합니다. 필요한 주소가 캐시에 없으면, 시스템은 전체 네트워크에 ARP 요청을 브로드캐스트합니다. 이 특수 메시지는 특정 IP 주소 (예: 10.10.1.4) 를 가진 호스트가 누구인지 묻습니다. 해당 IP 주소를 가진 호스트는 자신의 IP 및 MAC 주소를 포함하는 ARP 응답을 보냅니다.
필요한 모든 IP 및 MAC 주소를 확보하면, 링크 계층은 네트워크 인터페이스 카드를 통해 프레임을 전달할 수 있습니다. 패킷의 여정은 송신 및 수신 측에서 TCP/IP 스택을 오르내리며 캡슐화와 역캡슐화가 반복되는 다단계 프로세스입니다.
패킷 전달 과정
다음은 발신자 (Pete) 에서 수신자 (Patty) 로 패킷이 이동하는 단계별 분석입니다.
- Pete 가 Patty 에게 이메일을 보냅니다. 이 데이터는 전송 계층으로 전달됩니다.
- 전송 계층은 데이터를 TCP 또는 UDP 헤더로 캡슐화하여 세그먼트를 형성합니다. 목적지 및 송신 포트를 첨부한 후 세그먼트를 네트워크 계층으로 보냅니다.
- 네트워크 계층은 세그먼트를 IP 패킷 내에 캡슐화하고 송신 및 수신 IP 주소를 첨부합니다. 그런 다음 패킷을 링크 계층으로 라우팅합니다.
- 패킷이 링크 계층에 도달하면 프레임으로 캡슐화됩니다. 송신 및 수신 MAC 주소를 포함하는 링크 계층 헤더가 추가됩니다.
- Patty 는 물리 계층을 통해 이 데이터 프레임을 수신하고, 데이터 무결성을 확인한 후, 역캡슐화하여 IP 패킷을 네트워크 계층으로 보냅니다.
- 네트워크 계층은 패킷을 읽어 송신 및 수신 IP 주소를 확인합니다. 수신 IP 주소가 자신의 주소와 일치하는지 확인하고, 패킷을 역캡슐화하여 세그먼트를 전송 계층으로 보냅니다.
- 전송 계층은 세그먼트를 역캡슐화하고 TCP 또는 UDP 포트 번호를 확인한 후, 해당 포트를 기반으로 애플리케이션 계층에 연결합니다.
- 애플리케이션 계층은 지정된 포트에서 전송 계층으로부터 데이터를 수신하고 이를 Patty 에게 최종 이메일 메시지로 표시합니다.