- 0
- 229 words
인터넷고 네트워크에 대해서 큰 개념을 정리를 하고나면 이제 작은 단위들을 공부를 해볼수 있는 단계이다.
이제는 데이터의 단위에 대해서 공부를 해볼 시간이다. 일단 데이터의 전송 단위와 개념에 대해서 알아볼까 한다.
MTU 는 어떤것을 말하는 것일까?
인터넷이나 네트워크를 통해 데이터를 전송할 때 데이터 전체를 한 번에 보내는 것이 아니라 패킷(Packet)이라는 작은 단위로 나누어 전송합니다.
이때 네트워크에서 한 번에 전달할 수 있는 최대 패킷 크기를 나타내는 개념이 MTU(Maximum Transmission Unit)입니다.
쉽게 말하면 MTU는 다음과 같습니다.
MTU↓한 번에 전송할 수 있는패킷의 최대 크기
예를 들어 어떤 네트워크의 MTU가 1500바이트라면 해당 네트워크에서 일반적으로 한 번에 전달할 수 있는 IP 패킷의 최대 크기는 1500바이트입니다.
MTU는 왜 필요한가?
네트워크 장비와 통신 기술에는 한 번에 처리할 수 있는 데이터 크기에 제한이 있습니다.
따라서 너무 큰 데이터를 그대로 전송하기보다는 네트워크가 처리할 수 있는 크기에 맞춰 패킷을 구성해야 합니다.
예를 들어 다음과 같은 데이터가 있다고 가정해 보겠습니다.
10000바이트 데이터 ↓네트워크 MTU 확인 ↓여러 개의 패킷으로 나누어 전송
이렇게 데이터를 적절한 크기의 패킷으로 나누면 네트워크에서 효율적으로 전송할 수 있습니다.
일반적인 MTU 크기는 얼마일까?
가장 흔하게 볼 수 있는 MTU 값 중 하나가 1500바이트입니다.
일반적인 이더넷(Ethernet) 네트워크에서 많이 사용되는 값입니다.
일반적인 Ethernet MTU= 1500 bytes
다만 모든 네트워크의 MTU가 1500바이트인 것은 아닙니다.
네트워크 환경이나 사용하는 프로토콜, 터널링 방식 등에 따라 MTU가 달라질 수 있습니다.
예를 들어 VPN이나 특정 터널링 환경에서는 추가적인 헤더가 들어가기 때문에 더 작은 MTU를 사용하는 경우도 있습니다.
MTU와 패킷의 관계
MTU를 이해하려면 패킷과 함께 생각하는 것이 좋습니다.
예를 들어 MTU가 1500바이트라고 가정해 보겠습니다.
┌──────────────────────────────┐│ IP Packet ││ 최대 1500 Bytes │└──────────────────────────────┘
이때 패킷의 전체 크기가 MTU보다 커지면 그대로 전송하기 어려울 수 있습니다.
따라서 네트워크 환경에 따라 패킷을 분할하거나 전송 방식을 조정해야 합니다.
MTU와 IP 패킷 크기
여기서 중요한 점이 있습니다.
MTU가 1500바이트라는 것은 데이터만 1500바이트를 의미하는 것이 아니라 IP 패킷 전체 크기를 기준으로 하는 경우가 일반적입니다.
IPv4를 예로 들어보겠습니다.
┌──────────────┬──────────────────────┐│ IP Header │ Payload ││ 20 Bytes │ 데이터 │└──────────────┴──────────────────────┘ 전체 크기 ≤ MTU
IPv4 기본 헤더가 20바이트이고 MTU가 1500바이트라면 IP 페이로드는 일반적으로 최대 1480바이트가 될 수 있습니다.
1500 - 20 = 1480 Bytes
다만 실제 헤더 크기는 옵션 등에 따라 달라질 수 있습니다.
MTU와 TCP의 관계
TCP를 사용하는 경우 MTU와 함께 MSS(Maximum Segment Size)라는 개념도 중요합니다.
MSS는 TCP가 한 번에 전달할 수 있는 TCP 데이터 영역의 최대 크기를 의미합니다.
일반적인 IPv4 Ethernet 환경에서:
MTU = 1500IP Header = 20TCP Header = 20MSS= 1500 - 20 - 20= 1460 Bytes
따라서 일반적인 환경에서는 TCP MSS가 1460바이트로 설정되는 경우가 많습니다.
Ethernet└─ IP Packet 1500 ├─ IP Header 20 └─ TCP Segment ├─ TCP Header 20 └─ Data 1460
MTU와 MSS의 차이
MTU와 MSS는 비슷해 보이지만 기준이 다릅니다.
MTU는 네트워크에서 전달할 수 있는 IP 패킷의 최대 크기를 의미합니다.
MSS는 TCP에서 실제로 전달하는 데이터 영역의 최대 크기를 의미합니다.
| 구분 | MTU | MSS |
|---|---|---|
| 의미 | 최대 패킷 크기 | 최대 TCP 데이터 크기 |
| 기준 | IP 패킷 | TCP 데이터 |
| 헤더 포함 | IP 패킷 전체 기준 | TCP 데이터 영역 기준 |
| 일반적인 Ethernet IPv4 | 1500바이트 | 1460바이트 |
쉽게 기억하면 MTU가 더 큰 틀이고 MSS는 그 안에서 TCP 데이터가 사용할 수 있는 크기라고 생각하면 됩니다.
MTU보다 데이터가 크면 어떻게 될까?
전송하려는 IP 패킷이 MTU보다 크다면 문제가 발생할 수 있습니다.
이때 대표적으로 등장하는 개념이 IP Fragmentation(패킷 분할)입니다.
예를 들어:
패킷 크기2000 BytesMTU1500 Bytes
그대로 전송하기 어렵기 때문에 패킷을 여러 조각으로 나누어 전송할 수 있습니다.
2000 Bytes ↓┌─────────────┐│ Fragment 1 │└─────────────┘┌─────────────┐│ Fragment 2 │└─────────────┘
수신 측에서는 이러한 조각들을 다시 조립하여 원래의 데이터를 구성할 수 있습니다.
IP Fragmentation이란?
IP Fragmentation은 MTU보다 큰 IP 패킷을 여러 개의 작은 패킷으로 나누는 과정입니다.
예를 들어 경로 중간에 MTU가 작은 네트워크가 존재한다고 가정해 보겠습니다.
출발지 ↓MTU 1500 ↓MTU 1200 ↓목적지
출발지에서 1500바이트 패킷을 보냈지만 중간 네트워크에서 최대 1200바이트만 처리할 수 있다면 패킷을 나누어야 할 수 있습니다.
다만 패킷 분할은 처리 과정이 추가되고 성능에도 영향을 줄 수 있기 때문에 가능한 한 적절한 MTU를 사용하는 것이 중요합니다.
Path MTU란 무엇인가?
네트워크 통신에서는 단순히 내 컴퓨터의 MTU만 중요한 것이 아닙니다.
출발지에서 목적지까지 여러 네트워크 장비와 링크를 거치기 때문에 전체 경로에서 사용할 수 있는 가장 작은 MTU도 중요합니다.
이를 Path MTU라고 합니다.
예를 들어:
PCMTU 1500 ↓라우터MTU 1500 ↓VPNMTU 1400 ↓서버MTU 1500
이 경우 전체 경로에서 가장 작은 MTU가 1400바이트이므로 경로 MTU는 1400바이트가 됩니다.
Path MTU = 경로에서 가장 작은 MTU
Path MTU Discovery란?
PMTUD(Path MTU Discovery)는 출발지와 목적지 사이에서 사용할 수 있는 최대 패킷 크기를 확인하는 방법입니다.
네트워크 경로에 MTU가 작은 구간이 있다면 이를 확인하여 패킷이 지나갈 수 있는 크기로 조정할 수 있습니다.
출발지 ↓네트워크 ↓작은 MTU 구간 확인 ↓전송 크기 조정 ↓목적지
이를 통해 불필요한 패킷 분할을 줄일 수 있습니다.
MTU가 너무 작으면 어떻게 될까?
MTU가 지나치게 작으면 하나의 데이터를 전송하기 위해 더 많은 패킷이 필요할 수 있습니다.
예를 들어 동일한 데이터를 전송한다고 가정하면:
MTU가 큰 경우큰 패킷큰 패킷큰 패킷
반면 MTU가 작으면:
작은 패킷작은 패킷작은 패킷작은 패킷작은 패킷...
패킷의 개수가 많아지면 패킷마다 필요한 헤더와 처리 과정도 증가할 수 있습니다.
따라서 일반적으로 네트워크 환경에 맞는 적절한 MTU를 사용하는 것이 중요합니다.
MTU가 너무 크면 어떻게 될까?
반대로 MTU를 지나치게 크게 설정하는 것도 문제가 될 수 있습니다.
경로 중간에 해당 크기의 패킷을 처리하지 못하는 네트워크가 있다면 패킷 분할이나 전송 실패 등의 문제가 발생할 수 있습니다.
특히 VPN, 터널링, 가상 네트워크 등에서는 추가적인 헤더가 붙기 때문에 MTU 문제가 발생하기 쉽습니다.
MTU 문제와 인터넷 접속 장애
MTU 설정이 잘못되면 특정 웹사이트나 서비스에만 접속이 되지 않는 것처럼 보이는 문제가 발생할 수도 있습니다.
예를 들어:
웹사이트 A → 정상웹사이트 B → 정상웹사이트 C → 접속 문제
이런 상황에서 반드시 MTU가 원인이라는 뜻은 아니지만, 특정 크기의 패킷이 제대로 전달되지 않는 MTU 관련 문제가 원인일 가능성도 있습니다.
특히 VPN 연결이나 네트워크 터널링 환경에서 이런 문제가 나타날 수 있습니다.
MTU와 VPN
VPN에서는 MTU가 특히 중요합니다.
VPN을 사용하면 기존 IP 패킷에 VPN 터널링을 위한 추가 정보가 붙을 수 있습니다.
일반적인 패킷[ IP Header ][ Data ]VPN 패킷[ VPN Header ][ IP Header ][ Data ]
추가 헤더가 들어가면서 실제로 전송할 수 있는 데이터 공간이 줄어들 수 있습니다.
따라서 VPN 환경에서는 일반적인 1500바이트보다 낮은 MTU를 사용하는 경우가 있습니다.
MTU 확인 방법
컴퓨터에서는 네트워크 인터페이스의 MTU 값을 확인할 수 있습니다.
Windows에서는 명령 프롬프트나 PowerShell에서 네트워크 설정을 확인할 수 있고, Linux에서도 네트워크 인터페이스 정보를 확인할 수 있습니다.
예를 들어 Windows에서는 다음과 같은 명령을 사용할 수 있습니다.
netsh interface ipv4 show subinterfaces
Linux에서는 다음과 같이 확인할 수 있습니다.
ip link
환경에 따라 표시되는 인터페이스와 MTU 값이 다를 수 있습니다.
MTU와 Ping
Ping 명령어를 이용하면 네트워크 연결 상태뿐만 아니라 특정 크기의 패킷이 정상적으로 전달되는지 확인하는 데 활용할 수 있습니다.
예를 들어 Windows에서는 다음과 같이 패킷 크기를 지정할 수 있습니다.
ping 8.8.8.8 -f -l 1472
여기서 -l은 데이터 크기를 지정하고 -f는 IPv4 패킷의 분할을 방지하도록 요청하는 옵션입니다.
IPv4에서 IP 헤더가 20바이트라면:
1472 + 20 = 1492 Bytes
가 되어 1500바이트 MTU와 관련된 테스트에 활용할 수 있습니다.
단, 네트워크 환경에 따라 결과가 달라질 수 있으므로 단순히 하나의 Ping 결과만으로 MTU 문제를 확정해서는 안 됩니다.
MTU를 쉽게 이해하는 방법
MTU는 택배 트럭에 실을 수 있는 최대 화물 크기에 비유하면 쉽게 이해할 수 있습니다.
트럭에 실을 수 있는 화물의 크기가 제한되어 있다고 생각해 보겠습니다.
트럭 최대 적재 크기 ↓ MTU
화물이 너무 크다면 여러 개로 나누어야 합니다.
큰 화물 ↓┌─────┐ ┌─────┐│화물1│ │화물2│└─────┘ └─────┘
네트워크에서도 마찬가지입니다.
MTU보다 큰 패킷은 네트워크 환경에 따라 분할하거나 전송 크기를 조정해야 합니다.
결론
MTU(Maximum Transmission Unit)는 네트워크에서 하나의 IP 패킷으로 전송할 수 있는 최대 크기를 의미합니다.
일반적인 Ethernet 환경에서는 1500바이트가 널리 사용되지만, VPN이나 터널링 등 네트워크 구성에 따라 MTU가 달라질 수 있습니다.
MTU보다 큰 패킷은 네트워크 환경에 따라 분할될 수 있으며, 이러한 과정을 IP Fragmentation이라고 합니다.
또한 출발지에서 목적지까지 여러 네트워크를 거치는 경우에는 경로에서 가장 작은 MTU인 Path MTU가 실제 통신에 중요한 기준이 됩니다.
특히 VPN이나 터널링 환경에서 MTU 설정이 적절하지 않으면 특정 사이트나 서비스에 접속하지 못하는 문제가 발생할 수 있습니다.
결국 MTU는 네트워크에서 한 번에 전송할 수 있는 패킷의 크기를 결정하는 중요한 기준이며, 안정적인 데이터 통신을 위해 네트워크 환경에 맞는 적절한 MTU 설정이 필요합니다.