학습자료(~2017)/리눅스

[linux] MTU, 점보프레임

단세포소년 2013. 7. 30. 16:58
반응형

점보 프레임(Jumbo Frame)


인터넷에서 데이터가 전송될때는 한번에 최대 1500바이트까지 전송된다. (몇몇 장비는 1492바이트) 이를 MTU(Maximum Transmission Unit)가 1500바이트 라고 말한다. 1GB파일을 전송 받으려 해도 실제로는 1500바이트씩 쪼개져서 전송된다는 뜻이다.

1990년 이더넷 표준이 제정될 당시는 기술이 부족해 회선의 품질이 조악했다. 바꿔말하면 전송하다가 오류가 많이 났다. 그래서 최대 1500 바이트면 충분하다고 생각했다. 실제로는 더 잘게 쪼개서 보냈으니 말이다.

하지만 요즘와서는 회선의 품질이 좋아졌다. 그래서 오류가 잘 발생하지 않는다. 그리고 1GB짜리를 1500씩 잘게 쪼개는 것보다 좀 더 크게 쪼개는게 덜 힘들것이다. (무를 10조각 내는게 힘든지 2조각 내는게 힘든지 생각해보자. 칼질 횟수 줄어들면 당연히 덜 힘들고 금방 한다) 그래서 나온게 점보 프레임(Jumbo Frame)이다.

점보프레임은 표준은 아니다. [알테온웹시스템즈](Alteon WebSystems, 2000년 10월에 Nortel에 합병)에서 만든 ACEnic 기가비트 NIC(Network Interface Card, 네트워크 인터페이스 카드, 쉽게 말해 랜카드)에서 처음 소개된 기술일 뿐이다. 하지만 널리 쓰이게 되어 결국 산업표준 까지 되게 되었다.

현재는 점보프레임을 이용할때, 9000 바이트를 기준으로 하는 MTU를 사용한다. 9000(9K)바이트는 산업 표준이다. 9000바이트 미만까지 지원하는 장비도 있고, 그 이상을 지원하는 장비도 있다. 하지만 기준은 어디까지나 9000바이트다. 1500에서 9000이니 6배나 커진 셈이다.

점보 프레임을 사용하려면 [스위치]와 [NIC]에서 모두 지원해야 한다. 요즘 나오는 기가비트 스위치와 기가비트 NIC는 대부분 지원할 것이다. (단지 문제가 있다면 최대 MTU가 얼마냐가 다를 뿐이다) 같은 허브에 연결된 장비끼리만 점보프레임을 이용해 전송할 수 있다.

그러나 점보 프레임이 무조건 좋다고 생각하는건 금물이다. 일단 호환성은 안좋다. 지원안되거나 호환안되는 장비끼리는 통신이 제한된다. 그리고 단지 쪼개는 횟수를 1/6으로 줄인것이다. 바꿔말하면 금방 쪼개는 경우(즉 CPU가 좋은 경우)에는 속도 향상을 느끼지 못할 것이다. 점보 프레임이 처음 나온 때가 2000년대 초반이라는걸 감안해야 한다. 요즘 나오는 CPU를 사용할 때는 점보프레임으로 인한 성능 향상이 미미하다. 10Gbps정도는 되어야 성능차이가 보일 것이다.

----

위에서 MTU가 1500, 1492인경우가 있다고 했다.

만약 자신의 인터넷라인이 1492 MTU를 지원한는데, 이를 1500으로 놓고 인터넷을 하면 많이 느려진다. (1500짜리를 1492 + 8 로 두번에 걸쳐서 전송한다. 1500은 윈도우의 기본값이다) 인터넷 속도를 높여주는 유틸이 하는 일 중 하나가 사용자의 최적의 MTU값을 찾아주는 것이다. 보통 4352(FDDI, 광랜), 1500(이더넷), 1492(IEEE 802.3/802.2), 1480(PPPoE(WAN 미니 포트)) 중 한개이다.






리눅스 MTU 변경 방법


  • MTU 확인
    $ ifconfig

eth0      Link encap:Ethernet  HWaddr 00:25:90:ab:81:76  
          inet addr:192.168.3.23  Bcast:192.168.3.255  Mask:255.255.252.0
          inet6 addr: fe80::225:90ff:feab:8176/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:47443039 errors:0 dropped:319996 overruns:0 frame:0
          TX packets:20381556 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:17193961472 (17.1 GB)  TX bytes:15043026859 (15.0 GB)
          Memory:df920000-df940000 


  • MTU 변경
    $ ifconfig eth0 mtu 9000

eth0      Link encap:Ethernet  HWaddr 00:25:90:ab:81:76  
          inet addr:192.168.3.23  Bcast:192.168.3.255  Mask:255.255.252.0\
          inet6 addr: fe80::225:90ff:feab:8176/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:9000  Metric:1
          RX packets:47443039 errors:0 dropped:319996 overruns:0 frame:0
          TX packets:20381556 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:17193961472 (17.1 GB)  TX bytes:15043026859 (15.0 GB)
          Memory:df920000-df940000 




반응형