MTU
ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.

MTU

Maximum Transmission Unit ÀÇ ÁÙÀÓ¸»·Î Çѹø¿¡ º¸³¾ ¼ö ÀÖ´Â ÆÐŶÀÇ ÃÖ´ëÅ©±â·Î ³×Æ®¿öÅ© ȯ°æ¿¡ µû¶ó ´Þ¶óÁú ¼ö ÀÖ´Ù. ÀÌ´õ³ÝÀÇ °æ¿ì 1500, ATMÀÇ °æ¿ì 9600, SLIP´Â 576ÀÇ Å©±â¸¦ °¡Áø´Ù.

MTU¿¡ °ü·ÃµÈ Æ®·¯ºí ½´ÆÃ

ºí·¢È¦ ¶ó¿ìÅÍ

VPNȯ°æÀ» ¿¹·Î »ý°¢ÇսôÙ. Åë»óÀûÀ¸·Î router´Â ¼³Á¤µÈ mtu ÀÌ»óÀÇ ÆÐŶÀ» Àü¼ÛÇÏ·Á°í ÇÒ¶§ À̸¦ mtu±Ù»çÄ¡ ÀÌÇÏ·Î Âɰ³¾î Àü¼ÛÀ» ÇÏ°Ô µË´Ï´Ù. ÇÏÁö¸¸ ¿©±â¼­ DF (Don't fragment) flag°¡ 1·Î ¼³Á¤µÈ °æ¿ì ÀÌ·¯ÇÑ Âɰ³¾î ÁÖ´Â ÀÛ¾÷À» ¿øÄ¡ ¾Ê´Â°ÍÀ¸·Î ÇØ¼®µÇ°Ô µÇ¸ç VPN¿¡ »óÀÀÇÏ´Â Çì´õ¸¦ ±×´ë·Î ºÙ¿©¼­ Àü¼ÛÇÏ°Ô µÉ°Ì´Ï´Ù. ±×·¯³ª ¹Ý´ëÆí router±îÁö Àü¼ÛÇϸ鼭 Áß°£¿¡ MTU°¡ ÀÚ½ÅÀÇ ¼³Á¤µÈ Å©±âº¸´Ù Ä¿´Ù¶õ ÆÐŶÀ» ¹Þ°Ô µÇ¸é À̸¦ ¹ö¸®´Â µ¿ÀÛÀÌ À¯¹ßµÉ¼ö ÀÖ½À´Ï´Ù. ¶§¹®¿¡ ÀÌ·¯ÇÑ ¹®Á¦¸¦ ºÀÂøÇÏ°Ô µÈ´Ù¸é ´ÙÀ½°ú °°Àº ¹æ¹ýÀ» ½ÃµµÇÏ¿© À̸¦ ÇØ°áÇØ¾ß ÇÕ´Ï´Ù.
  1. ¹Ý´ëÆí router±îÁöÀÇ ¸ðµç MTU¼³Á¤Áß¿¡¼­ °¡Àå ÀÛÀº MTU¸¦ °¡Áø ³×Æ®¿÷À» ¼±ÅÃÇÏ¿© ÆÐŶÀ» Àü¼ÛÇϵµ·Ï ÇÁ·Î±×·¥¿¡¼­ Á¦¾îÇÕ´Ï´Ù. À̰ÍÀº DF°¡ 0Àΰæ¿ì´Â ²À ÇÊ¿äÇÑ »çÇ×Àº ¾Æ´Õ´Ï´Ù.
  2. ¹Ý´ëÆí router±îÁöÀÇ ¸ðµç DF flag¸¦ 1À¸·Î ¼³Á¤ÇÕ´Ï´Ù.
  3. DF flag¸¦ Á¶ÀýÇÏ´Â °Í¿¡ ´ëÇØ¼­´Â ½ÅÁßÇÑ »óȲÁ¡°ËÀÌ ÇÊ¿äÇÕ´Ï´Ù. ÀϺΠVPNÀåºñ´Â DF flag¸¦ 1·Î ¼³Á¤Çϴ°ÍÀ» Áö¿øÇÏÁö ¾ÊÀ»¼öµµ ÀÖ°í ÀÌ ÀÚü°¡ ºÎÇϸ¦ ¸¹ÀÌ ÁÖ°Ô µÉ¼ö ÀÖÀ¸¹Ç·Î ÇÁ·Î±×·¡¹ÖÀ» °ÔÀ»¸® ÇÏ°í ½ÍÀ»°æ¿ì¸¸ ½ÃµµÇϴ°ÍÀÌ ÁÁ½À´Ï´Ù.
¿©±â¼­ Áß°£¿¡ ÆÐŶÀÌ MTUº¸´Ù Ŭ¶§ ¹ö¸®´Â ¶ó¿ìÅ͸¦ ºí·¢È¦ ¶ó¿ìÅͶó°íµµ ºÒ¸³´Ï´Ù. ¶ÇÇÑ À̸¦ ó¸®Çϱâ À§Çؼ­ MTU discovery±â´ÉÀ» ¼³Á¤ÇÒ¼öµµ ÀÖ½À´Ï´Ù. MTU discoveryÀÇ µ¿ÀÛÀº °£´ÜÇÕ´Ï´Ù. ºí·¢È¦ ¶ó¿ìÅÍ¿¡¼­ ÇØ´ç ÆÐŶÀ» ¼Õ½Çó¸®ÇÒ¶§ Can't fragment ¶ó°í ¹ÝȯÇÒ¼ö Àִµ¥ ÀÌ·±°æ¿ì ±×°ÍÀ» µ¹·Á¹Þ´Â È£½ºÆ®´Â ´Ù½Ã MTUº¸´Ù ÀÛÀº ÆÐŶÀ¸·Î fragment È­ ÇÏ¿© Àç Àü¼ÛÀ» ÇÏ´Â ¹æ¹ýÀÔ´Ï´Ù. ´Ü, À̰ÍÀÌ »ç¿ë°¡´ÉÇÑ °æ¿ì´Â ICMP type 3 ÀÇ code 4(fragment needed and don't fragment)°¡ »ç¿ë°¡´ÉÇØ¾ß ÇÕ´Ï´Ù. (Âü°íÇÒ¸¸ÇÑ ¸µÅ©: [http]http://support.microsoft.com/default.aspx?scid=kb;ko;159211)

¾Æ·¡´Â °£´ÜÈ÷ MTU¸¦ ¼³Á¤ÇÏ°í ¾ò¾î¿À´Â ¿¹Á¦¸¦ ±¸ÇöÇØºÃ½À´Ï´Ù. ¹°·Ð À̰ÍÀº ¸®´ª½º ¿ëÀÔ´Ï´Ù. MTU´Â 68 ÀÌÇÏ·Î ¼³Á¤Çϴ°ÍÀº °ï¶õÇÕ´Ï´Ù.
/* Code by JaeHyuk Cho <mailto:minzkn@infoeq.com> */ 
 
#include <sys/types.h> 
#include <sys/socket.h> 
#include <sys/ioctl.h> 
#include <stdio.h> 
#include <memory.h> 
#include <string.h> 
#include <unistd.h> 
#include <fcntl.h> 
#include <net/if.h> 
#include <errno.h> 
 
int io_mtu(const char *s_interface, int s_set) 
{ 
 int s_mtu = (-1), s_socket; 
 struct ifreq s_ifrequest; 
 s_socket = socket(PF_INET, SOCK_STREAM, 0); 
 if(s_socket != (-1)) 
 { 
  (void)memset((void *)(&s_ifrequest), 0, sizeof(s_ifrequest)); 
  (void)strcpy(&s_ifrequest.ifr_name[0], s_interface); 
  if(s_set > 0) 
  { 
   s_ifrequest.ifr_mtu = s_set; 
   if(ioctl(s_socket, SIOCSIFmtu, &s_ifrequest, sizeof(s_ifrequest)) != 0)fprintf(stdout, "io_mtu error !\n"); 
  } 
  if(ioctl(s_socket, SIOCGIFmtu, &s_ifrequest, sizeof(s_ifrequest)) == 0)s_mtu = s_ifrequest.ifr_mtu; 
  close(s_socket); 
 } 
 return(s_mtu); 
} 
 
int main(int s_argc, char **s_argv) 
{ 
 char *s_interface = "eth0"; 
 int s_set_mtu = 0; 
 
 if(s_argc >= 2) 
 { 
  s_interface = s_argv[1]; 
  if(s_argc >= 3)(void)sscanf(s_argv[2], "%i", &s_set_mtu); 
 } 
 fprintf(stdout, "Usage: %s [<interface> [<mtu>]]\n\n", s_argv[0]); 
 fprintf(stdout, "Interface: \"%s\"\n", s_interface); 
 fprintf(stdout, "\tmtu=%d\n", io_mtu(s_interface, s_set_mtu)); 
 return(0); 
} 
 
/* End of source */ 
 
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.