Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
Îå·ÖÖÓ¶Á¶®TCP ЭÒ顪¡ªTCPЭÒé¼ò½é
 
×÷Õß±ÊÃû£ººï×Ó¾ÓÊ¿
  2384  次浏览      28
 2019-11-21
 
±à¼­ÍƼö:
±¾ÎÄÖ÷Òª½éÉÜÁËTCP ЭÒéµÄ»ù´¡ÖªÊ¶£¬°üÀ¨TCP ЭÒéµÄ×÷Óã¬ÒÔ¼°Êý¾ÝͨÐŵÄÍêÕûÐÔ£¬Ï£Íû¶ÔÄúµÄѧϰÓÐËù°ïÖú¡£
±¾ÎÄÀ´×ÔÓÚcsdn£¬ÓÉ»ðÁú¹ûÈí¼þAlice±à¼­ÍƼö¡£

Ò»¡¢TCP ЭÒéµÄ×÷ÓÃ

»¥ÁªÍøÓÉÒ»ÕûÌ×ЭÒé¹¹³É¡£TCP Ö»ÊÇÆäÖеÄÒ»²ã£¬ÓÐ×Å×Ô¼ºµÄ·Ö¹¤¡£

£¨Í¼Æ¬ËµÃ÷£ºTCP ÊÇÒÔÌ«ÍøÐ­ÒéºÍ IP ЭÒéµÄÉϲãЭÒ飬ҲÊÇÓ¦ÓòãЭÒéµÄϲãЭÒé¡££©

×îµ×²ãµÄÒÔÌ«ÍøÐ­Ò飨Ethernet£©¹æ¶¨Á˵ç×ÓÐźÅÈçºÎ×é³ÉÊý¾Ý°ü£¨packet£©£¬½â¾öÁË×ÓÍøÄÚ²¿µÄµã¶ÔµãͨÐÅ¡£

£¨Í¼Æ¬ËµÃ÷£ºÒÔÌ«ÍøÐ­Òé½â¾öÁ˾ÖÓòÍøµÄµã¶ÔµãͨÐÅ¡££©

µ«ÊÇ£¬ÒÔÌ«ÍøÐ­Òé²»Äܽâ¾ö¶à¸ö¾ÖÓòÍøÈçºÎ»¥Í¨£¬ÕâÓÉ IP ЭÒé½â¾ö¡£

£¨Í¼Æ¬ËµÃ÷£ºIP ЭÒé¿ÉÒÔÁ¬½Ó¶à¸ö¾ÖÓòÍø¡££©

IP ЭÒ鶨ÒåÁËÒ»Ì××Ô¼ºµÄµØÖ·¹æÔò£¬³ÆÎª IP µØÖ·¡£ËüʵÏÖÁË·Óɹ¦ÄÜ£¬ÔÊÐíij¸ö¾ÖÓòÍøµÄ A Ö÷»ú£¬ÏòÁíÒ»¸ö¾ÖÓòÍøµÄ B Ö÷»ú·¢ËÍÏûÏ¢¡£

£¨Í¼Æ¬ËµÃ÷£ºÂ·ÓÉÆ÷¾ÍÊÇ»ùÓÚ IP ЭÒé¡£¾ÖÓòÍøÖ®¼äÒª¿¿Â·ÓÉÆ÷Á¬½Ó¡££©

·ÓɵÄÔ­ÀíºÜ¼òµ¥¡£Êг¡ÉÏËùÓеÄ·ÓÉÆ÷£¬±³ºó¶¼ÓкܶàÍø¿Ú£¬Òª½ÓÈë¶à¸ùÍøÏß¡£Â·ÓÉÆ÷ÄÚ²¿ÓÐÒ»ÕÅ·ÓÉ±í£¬¹æ¶¨ÁË A ¶Î IP µØÖ·×ß³ö¿ÚÒ»£¬B ¶ÎµØÖ·×ß³ö¿Ú¶þ£¬¡­¡­Í¨¹ýÕâÌס±Ö¸Â·ÅÆ¡±£¬ÊµÏÖÁËÊý¾Ý°üµÄת·¢¡£

ͼƬ˵Ã÷£º±¾»úµÄ·Óɱí×¢Ã÷Á˲»Í¬ IP Ä¿µÄµØµÄÊý¾Ý°ü£¬Òª·¢Ë͵½ÄÄÒ»¸öÍø¿Ú£¨interface£©¡££©

IP ЭÒéÖ»ÊÇÒ»¸öµØÖ·Ð­Ò飬²¢²»±£Ö¤Êý¾Ý°üµÄÍêÕû¡£Èç¹û·ÓÉÆ÷¶ª°ü£¨±ÈÈ绺´æÂúÁË£¬Ð½øÀ´µÄÊý¾Ý°ü¾Í»á¶ªÊ§£©£¬¾ÍÐèÒª·¢ÏÖ¶ªÁËÄÄÒ»¸ö°ü£¬ÒÔ¼°ÈçºÎÖØÐ·¢ËÍÕâ¸ö°ü¡£Õâ¾ÍÒªÒÀ¿¿ TCP ЭÒé¡£

¼òµ¥Ëµ£¬TCP ЭÒéµÄ×÷ÓÃÊÇ£¬±£Ö¤Êý¾ÝͨÐŵÄÍêÕûÐԺͿɿ¿ÐÔ£¬·ÀÖ¹¶ª°ü¡£

¶þ¡¢TCP Êý¾Ý°üµÄ´óС

ÒÔÌ«ÍøÊý¾Ý°ü£¨packet£©µÄ´óСÊǹ̶¨µÄ£¬×î³õÊÇ1518×Ö½Ú£¬ºóÀ´Ôö¼Óµ½1522×Ö½Ú¡£ÆäÖУ¬ 1500 ×Ö½ÚÊǸºÔØ£¨payload£©£¬22×Ö½ÚÊÇÍ·ÐÅÏ¢£¨head£©¡£

IP Êý¾Ý°üÔÚÒÔÌ«ÍøÊý¾Ý°üµÄ¸ºÔØÀïÃæ£¬ËüÒ²ÓÐ×Ô¼ºµÄÍ·ÐÅÏ¢£¬×îÉÙÐèÒª20×Ö½Ú£¬ËùÒÔ IP Êý¾Ý°üµÄ¸ºÔØ×î¶àΪ1480×Ö½Ú¡£

£¨Í¼Æ¬ËµÃ÷£ºIP Êý¾Ý°üÔÚÒÔÌ«ÍøÊý¾Ý°üÀïÃæ£¬TCP Êý¾Ý°üÔÚ IP Êý¾Ý°üÀïÃæ¡££©

TCP Êý¾Ý°üÔÚ IP Êý¾Ý°üµÄ¸ºÔØÀïÃæ¡£ËüµÄÍ·ÐÅÏ¢×îÉÙÒ²ÐèÒª20×Ö½Ú£¬Òò´Ë TCP Êý¾Ý°üµÄ×î´ó¸ºÔØÊÇ 1480 - 20 = 1460 ×Ö½Ú¡£ÓÉÓÚ IP ºÍ TCP ЭÒéÍùÍùÓжîÍâµÄÍ·ÐÅÏ¢£¬ËùÒÔ TCP ¸ºÔØÊµ¼ÊΪ1400×Ö½Ú×óÓÒ¡£

Òò´Ë£¬Ò»Ìõ1500×Ö½ÚµÄÐÅÏ¢ÐèÒªÁ½¸ö TCP Êý¾Ý°ü¡£HTTP/2 ЭÒéµÄÒ»´ó¸Ä½ø£¬ ¾ÍÊÇѹËõ HTTP ЭÒéµÄÍ·ÐÅÏ¢£¬Ê¹µÃÒ»¸ö HTTP ÇëÇó¿ÉÒÔ·ÅÔÚÒ»¸ö TCP Êý¾Ý°üÀïÃæ£¬¶ø²»ÊǷֳɶà¸ö£¬ÕâÑù¾ÍÌá¸ßÁËËÙ¶È¡£

£¨Í¼Æ¬ËµÃ÷£ºÒÔÌ«ÍøÊý¾Ý°üµÄ¸ºÔØÊÇ1500×Ö½Ú£¬TCP Êý¾Ý°üµÄ¸ºÔØÔÚ1400×Ö½Ú×óÓÒ¡££©

Èý¡¢TCP Êý¾Ý°üµÄ±àºÅ£¨SEQ£©

Ò»¸ö°ü1400×Ö½Ú£¬ÄÇôһ´ÎÐÔ·¢ËÍ´óÁ¿Êý¾Ý£¬¾Í±ØÐë·Ö³É¶à¸ö°ü¡£±ÈÈ磬һ¸ö 10MB µÄÎļþ£¬ÐèÒª·¢ËÍ7100¶à¸ö°ü¡£

·¢Ë͵Äʱºò£¬TCP ЭÒéΪÿ¸ö°ü±àºÅ£¨sequence number£¬¼ò³Æ SEQ£©£¬ÒÔ±ã½ÓÊÕµÄÒ»·½°´ÕÕ˳Ðò»¹Ô­¡£ÍòÒ»·¢Éú¶ª°ü£¬Ò²¿ÉÒÔÖªµÀ¶ªÊ§µÄÊÇÄÄÒ»¸ö°ü¡£

µÚÒ»¸ö°üµÄ±àºÅÊÇÒ»¸öËæ»úÊý¡£ÎªÁ˱ãÓÚÀí½â£¬ÕâÀï¾Í°ÑËü³ÆÎª1ºÅ°ü¡£¼Ù¶¨Õâ¸ö°üµÄ¸ºÔس¤¶ÈÊÇ100×Ö½Ú£¬ÄÇô¿ÉÒÔÍÆËã³öÏÂÒ»¸ö°üµÄ±àºÅÓ¦¸ÃÊÇ101¡£Õâ¾ÍÊÇ˵£¬Ã¿¸öÊý¾Ý°ü¶¼¿ÉÒԵõ½Á½¸ö±àºÅ£º×ÔÉíµÄ±àºÅ£¬ÒÔ¼°ÏÂÒ»¸ö°üµÄ±àºÅ¡£½ÓÊÕ·½ÓÉ´ËÖªµÀ£¬Ó¦¸Ã°´ÕÕʲô˳Ðò½«ËüÃÇ»¹Ô­³ÉԭʼÎļþ¡£

£¨Í¼Æ¬ËµÃ÷£ºµ±Ç°°üµÄ±àºÅÊÇ45943£¬ÏÂÒ»¸öÊý¾Ý°üµÄ±àºÅÊÇ46183£¬ÓÉ´Ë¿ÉÖª£¬Õâ¸ö°üµÄ¸ºÔØÊÇ240×Ö½Ú¡££©

ËÄ¡¢TCP Êý¾Ý°üµÄ×é×°

ÊÕµ½ TCP Êý¾Ý°üÒÔºó£¬×é×°»¹Ô­ÊDzÙ×÷ϵͳÍê³ÉµÄ¡£Ó¦ÓóÌÐò²»»áÖ±½Ó´¦Àí TCP Êý¾Ý°ü¡£

¶ÔÓÚÓ¦ÓóÌÐòÀ´Ëµ£¬²»ÓùØÐÄÊý¾ÝͨÐŵÄϸ½Ú¡£³ý·ÇÏß·Òì³££¬ÊÕµ½µÄ×ÜÊÇÍêÕûµÄÊý¾Ý¡£Ó¦ÓóÌÐòÐèÒªµÄÊý¾Ý·ÅÔÚ TCP Êý¾Ý°üÀïÃæ£¬ÓÐ×Ô¼ºµÄ¸ñʽ£¨±ÈÈç HTTP ЭÒ飩¡£

TCP ²¢Ã»ÓÐÌṩÈκλúÖÆ£¬±íʾԭʼÎļþµÄ´óС£¬ÕâÓÉÓ¦ÓòãµÄЭÒéÀ´¹æ¶¨¡£±ÈÈ磬HTTP ЭÒé¾ÍÓÐÒ»¸öÍ·ÐÅÏ¢Content-Length£¬±íʾÐÅÏ¢ÌåµÄ´óС¡£¶ÔÓÚ²Ù×÷ϵͳÀ´Ëµ£¬¾ÍÊdzÖÐøµØ½ÓÊÕ TCP Êý¾Ý°ü£¬½«ËüÃǰ´ÕÕ˳Ðò×é×°ºÃ£¬Ò»¸ö°ü¶¼²»ÉÙ¡£

²Ù×÷ϵͳ²»»áÈ¥´¦Àí TCP Êý¾Ý°üÀïÃæµÄÊý¾Ý¡£Ò»µ©×é×°ºÃ TCP Êý¾Ý°ü£¬¾Í°ÑËüÃÇת½»¸øÓ¦ÓóÌÐò¡£TCP Êý¾Ý°üÀïÃæÓÐÒ»¸ö¶Ë¿Ú£¨port£©²ÎÊý£¬¾ÍÊÇÓÃÀ´Ö¸¶¨×ª½»¸ø¼àÌý¸Ã¶Ë¿ÚµÄÓ¦ÓóÌÐò¡£

£¨Í¼Æ¬ËµÃ÷£ºÏµÍ³¸ù¾Ý TCP Êý¾Ý°üÀïÃæµÄ¶Ë¿Ú£¬½«×é×°ºÃµÄÊý¾Ýת½»¸øÏàÓ¦µÄÓ¦ÓóÌÐò¡£ÉÏͼÖУ¬21¶Ë¿ÚÊÇ FTP ·þÎñÆ÷£¬25¶Ë¿ÚÊÇ SMTP ·þÎñ£¬80¶Ë¿ÚÊÇ Web ·þÎñÆ÷¡££©

Ó¦ÓóÌÐòÊÕµ½×é×°ºÃµÄԭʼÊý¾Ý£¬ÒÔä¯ÀÀÆ÷ΪÀý£¬¾Í»á¸ù¾Ý HTTP ЭÒéµÄContent-Length×Ö¶ÎÕýÈ·¶Á³öÒ»¶Î¶ÎµÄÊý¾Ý¡£ÕâÒ²Òâζ×Å£¬Ò»´Î TCP ͨÐÅ¿ÉÒÔ°üÀ¨¶à¸ö HTTP ͨÐÅ¡£

Îå¡¢ÂýÆô¶¯ºÍ ACK

·þÎñÆ÷·¢ËÍÊý¾Ý°ü£¬µ±È»Ô½¿ìÔ½ºÃ£¬×îºÃÒ»´ÎÐÔÈ«·¢³öÈ¥¡£µ«ÊÇ£¬·¢µÃÌ«¿ì£¬¾ÍÓпÉÄܶª°ü¡£´ø¿íС¡¢Â·ÓÉÆ÷¹ýÈÈ¡¢»º´æÒç³öµÈÐí¶àÒòËØ¶¼»áµ¼Ö¶ª°ü¡£Ïß·²»ºÃµÄ»°£¬·¢µÃÔ½¿ì£¬¶ªµÃÔ½¶à¡£

×îÀíÏëµÄ״̬ÊÇ£¬ÔÚÏß·ÔÊÐíµÄÇé¿öÏ£¬´ïµ½×î¸ßËÙÂÊ¡£µ«ÊÇÎÒÃÇÔõô֪µÀ£¬¶Ô·½Ïß·µÄÀíÏëËÙÂÊÊǶàÉÙÄØ£¿´ð°¸¾ÍÊÇÂýÂýÊÔ¡£

TCP ЭÒéΪÁË×öµ½Ð§ÂÊÓë¿É¿¿ÐÔµÄͳһ£¬Éè¼ÆÁËÒ»¸öÂýÆô¶¯£¨slow start£©»úÖÆ¡£¿ªÊ¼µÄʱºò£¬·¢Ë͵ýÏÂý£¬È»ºó¸ù¾Ý¶ª°üµÄÇé¿ö£¬µ÷ÕûËÙÂÊ£ºÈç¹û²»¶ª°ü£¬¾Í¼Ó¿ì·¢ËÍËÙ¶È£»Èç¹û¶ª°ü£¬¾Í½µµÍ·¢ËÍËÙ¶È¡£

Linux ÄÚºËÀïÃæÉ趨ÁË£¨³£Á¿TCP_INIT_CWND£©£¬¸Õ¿ªÊ¼Í¨ÐŵÄʱºò£¬·¢ËÍ·½Ò»´ÎÐÔ·¢ËÍ10¸öÊý¾Ý°ü£¬¼´¡±·¢ËÍ´°¿Ú¡±µÄ´óСΪ10¡£È»ºóÍ£ÏÂÀ´£¬µÈ´ý½ÓÊÕ·½µÄÈ·ÈÏ£¬ÔÙ¼ÌÐø·¢ËÍ¡£

ĬÈÏÇé¿öÏ£¬½ÓÊÕ·½Ã¿ÊÕµ½Á½¸ö TCP Êý¾Ý°ü£¬¾ÍÒª·¢ËÍÒ»¸öÈ·ÈÏÏûÏ¢¡£¡±È·ÈÏ¡±µÄÓ¢ÓïÊÇ acknowledgement£¬ËùÒÔÕâ¸öÈ·ÈÏÏûÏ¢¾Í¼ò³Æ ACK¡£

ACK Я´øÁ½¸öÐÅÏ¢¡£

ÆÚ´ýÒªÊÕµ½ÏÂÒ»¸öÊý¾Ý°üµÄ±àºÅ

½ÓÊÕ·½µÄ½ÓÊÕ´°¿ÚµÄÊ£ÓàÈÝÁ¿

·¢ËÍ·½ÓÐÁËÕâÁ½¸öÐÅÏ¢£¬ÔÙ¼ÓÉÏ×Ô¼ºÒѾ­·¢³öµÄÊý¾Ý°üµÄ×îбàºÅ£¬¾Í»áÍÆ²â³ö½ÓÊÕ·½´ó¸ÅµÄ½ÓÊÕËÙ¶È£¬´Ó¶ø½µµÍ»òÔö¼Ó·¢ËÍËÙÂÊ¡£Õâ±»³ÆÎª¡±·¢ËÍ´°¿Ú¡±£¬Õâ¸ö´°¿ÚµÄ´óСÊǿɱäµÄ¡£

£¨Í¼Æ¬ËµÃ÷£ºÃ¿¸ö ACK ¶¼´øÓÐÏÂÒ»¸öÊý¾Ý°üµÄ±àºÅ£¬ÒÔ¼°½ÓÊÕ´°¿ÚµÄÊ£ÓàÈÝÁ¿¡£Ë«·½¶¼»á·¢ËÍ ACK¡££©

×¢Ò⣬ÓÉÓÚ TCP ͨÐÅÊÇË«ÏòµÄ£¬ËùÒÔË«·½¶¼ÐèÒª·¢ËÍ ACK¡£Á½·½µÄ´°¿Ú´óС£¬ºÜ¿ÉÄÜÊDz»Ò»ÑùµÄ¡£¶øÇÒ ACK Ö»ÊǺܼòµ¥µÄ¼¸¸ö×ֶΣ¬Í¨³£ÓëÊý¾ÝºÏ²¢ÔÚÒ»¸öÊý¾Ý°üÀïÃæ·¢ËÍ¡£

ͼƬ˵Ã÷£ºÉÏͼһ¹²4´ÎͨÐÅ¡£µÚÒ»´ÎͨÐÅ£¬A Ö÷»ú·¢¸øB Ö÷»úµÄÊý¾Ý°ü±àºÅÊÇ1£¬³¤¶ÈÊÇ100×Ö½Ú£¬Òò´ËµÚ¶þ´ÎͨÐÅ B Ö÷»úµÄ ACK ±àºÅÊÇ 1 + 100 = 101£¬µÚÈý´ÎͨÐÅ A Ö÷»úµÄÊý¾Ý°ü±àºÅÒ²ÊÇ 101¡£Í¬Àí£¬µÚ¶þ´ÎͨÐÅ B Ö÷»ú·¢¸ø A Ö÷»úµÄÊý¾Ý°ü±àºÅÊÇ1£¬³¤¶ÈÊÇ200×Ö½Ú£¬Òò´ËµÚÈý´ÎͨÐÅ A Ö÷»úµÄ ACK ÊÇ201£¬µÚËÄ´ÎͨÐÅ B Ö÷»úµÄÊý¾Ý°ü±àºÅÒ²ÊÇ201¡££©

¼´Ê¹¶ÔÓÚ´ø¿íºÜ´ó¡¢Ïß·ºÜºÃµÄÁ¬½Ó£¬TCP Ò²×ÜÊÇ´Ó10¸öÊý¾Ý°ü¿ªÊ¼ÂýÂýÊÔ£¬¹ýÁËÒ»¶Îʱ¼äÒԺ󣬲Ŵﵽ×î¸ßµÄ´«ÊäËÙÂÊ¡£Õâ¾ÍÊÇ TCP µÄÂýÆô¶¯¡£

Áù¡¢Êý¾Ý°üµÄÒÅʧ´¦Àí

TCP ЭÒé¿ÉÒÔ±£Ö¤Êý¾ÝͨÐŵÄÍêÕûÐÔ£¬ÕâÊÇÔõô×öµ½µÄ£¿

Ç°ÃæËµ¹ý£¬Ã¿Ò»¸öÊý¾Ý°ü¶¼´øÓÐÏÂÒ»¸öÊý¾Ý°üµÄ±àºÅ¡£Èç¹ûÏÂÒ»¸öÊý¾Ý°üûÓÐÊÕµ½£¬ÄÇô ACK µÄ±àºÅ¾Í²»»á·¢Éú±ä»¯¡£

¾ÙÀýÀ´Ëµ£¬ÏÖÔÚÊÕµ½ÁË4ºÅ°ü£¬µ«ÊÇûÓÐÊÕµ½5ºÅ°ü¡£ACK ¾Í»á¼Ç¼£¬ÆÚ´ýÊÕµ½5ºÅ°ü¡£¹ýÁËÒ»¶Îʱ¼ä£¬5ºÅ°üÊÕµ½ÁË£¬ÄÇôÏÂÒ»ÂÖ ACK »á¸üбàºÅ¡£Èç¹û5ºÅ°ü»¹ÊÇûÊÕµ½£¬µ«ÊÇÊÕµ½ÁË6ºÅ°ü»ò7ºÅ°ü£¬ÄÇô ACK ÀïÃæµÄ±àºÅ²»»á±ä»¯£¬×ÜÊÇÏÔʾ5ºÅ°ü¡£Õâ»áµ¼Ö´óÁ¿Öظ´ÄÚÈÝµÄ ACK¡£

Èç¹û·¢ËÍ·½·¢ÏÖÊÕµ½Èý¸öÁ¬ÐøµÄÖØ¸´ ACK£¬»òÕß³¬Ê±ÁË»¹Ã»ÓÐÊÕµ½ÈκΠACK£¬¾Í»áÈ·È϶ª°ü£¬¼´5ºÅ°üÒÅʧÁË£¬´Ó¶øÔٴη¢ËÍÕâ¸ö°ü¡£Í¨¹ýÕâÖÖ»úÖÆ£¬TCP ±£Ö¤Á˲»»áÓÐÊý¾Ý°ü¶ªÊ§¡£

£¨Í¼Æ¬ËµÃ÷£ºHost B ûÓÐÊÕµ½100ºÅÊý¾Ý°ü£¬»áÁ¬Ðø·¢³öÏàͬµÄ ACK£¬´¥·¢ Host A ÖØ·¢100ºÅÊý¾Ý°ü¡££©

   
2384 ´Îä¯ÀÀ       28
????

HTTP????
nginx??????
SD-WAN???
5G?????
 
????

??????????
IPv6???????
??????????
???????
????

????????
????????
???????????????
??????????