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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
TCP Ïê½â
 
×÷Õߣºrugu_xxx
  1968  次浏览      28
 2019-12-18
 
±à¼­ÍƼö:
±¾ÎÄÏêϸ½éÉÜÁËTCPЭÒ飬°üÀ¨·ÖÎöÿ²¿·ÖµÄº¬ÒåºÍ×÷Ó㬲¢ÌÖÂÛÁË tcp¾­¹ýµÄÈý´ÎÎÕÊÖ½¨Á¢Á¬½Ó, ËĴλÓÊÖ¶Ï¿ªÁ¬½Ó¡£
±¾ÎÄÀ´×ÔÓÚCSDN£¬ÓÉ»ðÁú¹ûÈí¼þAlice±à¼­ÍƼö¡£

TCPЭÒé

TCPЭÒéÈ«³Æ: ´«Êä¿ØÖÆÐ­Òé, ¹ËÃû˼Òå, ¾ÍÊÇÒª¶ÔÊý¾ÝµÄ´«Êä½øÐÐÒ»¶¨µÄ¿ØÖÆ.

ÏÈÀ´¿´¿´ËüµÄ±¨Í· ÎÒÃÇÀ´·ÖÎö·ÖÎöÿ²¿·ÖµÄº¬ÒåºÍ×÷ÓÃ

Ô´¶Ë¿ÚºÅ/Ä¿µÄ¶Ë¿ÚºÅ: ±íʾÊý¾Ý´ÓÄĸö½ø³ÌÀ´, µ½Äĸö½ø³ÌÈ¥.

32λÐòºÅ:

4λÊײ¿³¤¶È: ±íʾ¸Ãtcp±¨Í·ÓжàÉÙ¸ö4×Ö½Ú(32¸öbit)

6λ±£Áô: ¹ËÃû˼Òå, Ïȱ£Áô×Å, ÒÔ·ÀÍòÒ»

6λ±ê־λ

URG: ±êʶ½ô¼±Ö¸ÕëÊÇ·ñÓÐЧ

ACK: ±êʶȷÈÏÐòºÅÊÇ·ñÓÐЧ

PSH: ÓÃÀ´Ìáʾ½ÓÊÕ¶ËÓ¦ÓóÌÐòÁ¢¿Ì½«Êý¾Ý´Ótcp»º³åÇø¶Á×ß

RST: ÒªÇóÖØÐ½¨Á¢Á¬½Ó. ÎÒÃǰѺ¬ÓÐRST±êʶµÄ±¨ÎijÆÎª¸´Î»±¨ÎĶÎ

SYN: ÇëÇó½¨Á¢Á¬½Ó. ÎÒÃǰѺ¬ÓÐSYN±êʶµÄ±¨ÎijÆÎªÍ¬²½±¨ÎĶÎ

FIN: ֪ͨ¶Ô¶Ë, ±¾¶Ë¼´½«¹Ø±Õ. ÎÒÃǰѺ¬ÓÐFIN±êʶµÄ±¨ÎijÆÎª½áÊø±¨ÎĶÎ

16λ´°¿Ú´óС:

16λ¼ìÑéºÍ: ÓÉ·¢ËͶËÌî³ä, ¼ìÑéÐÎʽÓÐCRCУÑéµÈ. Èç¹û½ÓÊÕ¶ËУÑ鲻ͨ¹ý, ÔòÈÏΪÊý¾ÝÓÐÎÊÌâ. ´Ë´¦µÄУÑéºÍ²»¹â°üº¬TCPÊײ¿, Ò²°üº¬TCPÊý¾Ý²¿·Ö.

16λ½ô¼±Ö¸Õë: ÓÃÀ´±êʶÄIJ¿·ÖÊý¾ÝÊǽô¼±Êý¾Ý.

Ñ¡ÏîºÍÊý¾ÝÔÝʱºöÂÔ

Á¬½Ó¹ÜÀí»úÖÆ

Õý³£Çé¿öÏÂ, tcpÐèÒª¾­¹ýÈý´ÎÎÕÊÖ½¨Á¢Á¬½Ó, ËĴλÓÊÖ¶Ï¿ªÁ¬½Ó.

ÄÇôʲôÊÇÈý´ÎÎÕÊÖ? ʲôÊÇËĴλÓÊÖÄØ?

Èý´ÎÎÕÊÖ

µÚÒ»´Î:

¿Í»§¶Ë - - > ·þÎñÆ÷ ´Ëʱ·þÎñÆ÷ÖªµÀÁ˿ͻ§¶ËÒª½¨Á¢Á¬½ÓÁË

µÚ¶þ´Î:

¿Í»§¶Ë < - - ·þÎñÆ÷ ´Ëʱ¿Í»§¶ËÖªµÀ·þÎñÆ÷ÊÕµ½Á¬½ÓÇëÇóÁË

µÚÈý´Î:

¿Í»§¶Ë - - > ·þÎñÆ÷ ´Ëʱ·þÎñÆ÷ÖªµÀ¿Í»§¶ËÊÕµ½ÁË×Ô¼ºµÄ»ØÓ¦

µ½ÕâÀï, ¾Í¿ÉÒÔÈÏΪ¿Í»§¶ËÓë·þÎñÆ÷ÒѾ­½¨Á¢ÁËÁ¬½Ó.

ÔÙÀ´¿´¸öͼ.

¸Õ¿ªÊ¼, ¿Í»§¶ËºÍ·þÎñÆ÷¶¼´¦ÓÚ CLOSE ״̬.

´Ëʱ, ¿Í»§¶ËÏò·þÎñÆ÷Ö÷¶¯·¢³öÁ¬½ÓÇëÇó, ·þÎñÆ÷±»¶¯½ÓÊÜÁ¬½ÓÇëÇó.

1, TCP·þÎñÆ÷½ø³ÌÏÈ´´½¨´«Êä¿ØÖÆ¿éTCB, ʱ¿Ì×¼±¸½ÓÊܿͻ§¶Ë½ø³ÌµÄÁ¬½ÓÇëÇó, ´Ëʱ·þÎñÆ÷¾Í½øÈëÁË LISTEN£¨¼àÌý£©×´Ì¬

2, TCP¿Í»§¶Ë½ø³ÌÒ²ÊÇÏÈ´´½¨´«Êä¿ØÖÆ¿éTCB, È»ºóÏò·þÎñÆ÷·¢³öÁ¬½ÓÇëÇó±¨ÎÄ£¬´Ëʱ±¨ÎÄÊײ¿ÖеÄͬ²½±ê־λSYN=1, ͬʱѡÔñÒ»¸ö³õʼÐòÁкŠseq = x, ´Ëʱ£¬TCP¿Í»§¶Ë½ø³Ì½øÈëÁË SYN-SENT£¨Í¬²½ÒÑ·¢ËÍ״̬£©×´Ì¬¡£TCP¹æ¶¨, SYN±¨ÎĶΣ¨SYN=1µÄ±¨ÎĶΣ©²»ÄÜЯ´øÊý¾Ý£¬µ«ÐèÒªÏûºÄµôÒ»¸öÐòºÅ¡£

3, TCP·þÎñÆ÷ÊÕµ½ÇëÇó±¨Îĺó, Èç¹ûͬÒâÁ¬½Ó, Ôò·¢³öÈ·Èϱ¨ÎÄ¡£È·Èϱ¨ÎÄÖÐµÄ ACK=1, SYN=1, È·ÈÏÐòºÅÊÇ x+1, ͬʱҲҪΪ×Ô¼º³õʼ»¯Ò»¸öÐòÁкŠseq = y, ´Ëʱ, TCP·þÎñÆ÷½ø³Ì½øÈëÁËSYN-RCVD£¨Í¬²½ÊÕµ½£©×´Ì¬¡£Õâ¸ö±¨ÎÄÒ²²»ÄÜЯ´øÊý¾Ý, µ«ÊÇͬÑùÒªÏûºÄÒ»¸öÐòºÅ¡£

4, TCP¿Í»§¶Ë½ø³ÌÊÕµ½È·ÈϺó»¹, ÒªÏò·þÎñÆ÷¸ø³öÈ·ÈÏ¡£È·Èϱ¨ÎĵÄACK=1£¬È·ÈÏÐòºÅÊÇ y+1£¬×Ô¼ºµÄÐòÁкÅÊÇ x+1.

5, ´Ëʱ£¬TCPÁ¬½Ó½¨Á¢£¬¿Í»§¶Ë½øÈëESTABLISHED£¨Òѽ¨Á¢Á¬½Ó£©×´Ì¬¡£µ±·þÎñÆ÷ÊÕµ½¿Í»§¶ËµÄÈ·ÈϺóÒ²½øÈëESTABLISHED״̬£¬´ËºóË«·½¾Í¿ÉÒÔ¿ªÊ¼Í¨ÐÅÁË¡£

Ϊʲô²»ÓÃÁ½´Î?

Ö÷ÒªÊÇΪÁË·ÀÖ¹ÒѾ­Ê§Ð§µÄÁ¬½ÓÇëÇó±¨ÎÄͻȻÓÖ´«Ë͵½ÁË·þÎñÆ÷£¬´Ó¶ø²úÉú´íÎó¡£Èç¹ûʹÓõÄÊÇÁ½´ÎÎÕÊÖ½¨Á¢Á¬½Ó£¬¼ÙÉèÓÐÕâÑùÒ»ÖÖ³¡¾°£¬¿Í»§¶Ë·¢Ë͵ĵÚÒ»¸öÇëÇóÁ¬½Ó²¢ÇÒûÓжªÊ§£¬Ö»ÊÇÒòΪÔÚÍøÂçÖÐÖÍÁôµÄʱ¼äÌ«³¤ÁË£¬ÓÉÓÚTCPµÄ¿Í»§¶Ë³Ù³ÙûÓÐÊÕµ½È·Èϱ¨ÎÄ£¬ÒÔΪ·þÎñÆ÷ûÓÐÊÕµ½£¬´ËÊ±ÖØÐÂÏò·þÎñÆ÷·¢ËÍÕâÌõ±¨ÎÄ£¬´Ëºó¿Í»§¶ËºÍ·þÎñÆ÷¾­¹ýÁ½´ÎÎÕÊÖÍê³ÉÁ¬½Ó£¬´«ÊäÊý¾Ý£¬È»ºó¹Ø±ÕÁ¬½Ó¡£´Ëʱ֮ǰÖÍÁôµÄÄÇÒ»´ÎÇëÇóÁ¬½Ó£¬ÒòÎªÍøÂçͨ³©ÁË, µ½´ïÁË·þÎñÆ÷£¬Õâ¸ö±¨Îı¾¸ÃÊÇʧЧµÄ£¬µ«ÊÇ£¬Á½´ÎÎÕÊֵĻúÖÆ½«»áÈÿͻ§¶ËºÍ·þÎñÆ÷Ôٴν¨Á¢Á¬½Ó£¬Õ⽫µ¼Ö²»±ØÒªµÄ´íÎóºÍ×ÊÔ´µÄ·Ñ¡£

Èç¹û²ÉÓõÄÊÇÈý´ÎÎÕÊÖ£¬¾ÍËãÊÇÄÇÒ»´ÎʧЧµÄ±¨ÎÄ´«Ë͹ýÀ´ÁË£¬·þÎñ¶Ë½ÓÊܵ½ÁËÄÇÌõʧЧ±¨ÎIJ¢Çһظ´ÁËÈ·Èϱ¨ÎÄ£¬µ«Êǿͻ§¶Ë²»»áÔٴη¢³öÈ·ÈÏ¡£ÓÉÓÚ·þÎñÆ÷ÊÕ²»µ½È·ÈÏ£¬¾ÍÖªµÀ¿Í»§¶Ë²¢Ã»ÓÐÇëÇóÁ¬½Ó¡£

Ϊʲô²»ÓÃËÄ´Î?

ÒòΪÈý´ÎÒѾ­¿ÉÒÔÂú×ãÐèÒªÁË, ËĴξͶàÓàÁË.

ÔÙÀ´¿´¿´ºÎΪËĴλÓÊÖ.

Êý¾Ý´«ÊäÍê±Ïºó£¬Ë«·½¶¼¿ÉÒÔÊÍ·ÅÁ¬½Ó.

´Ëʱ¿Í»§¶ËºÍ·þÎñÆ÷¶¼ÊÇ´¦ÓÚESTABLISHED״̬£¬È»ºó¿Í»§¶ËÖ÷¶¯¶Ï¿ªÁ¬½Ó£¬·þÎñÆ÷±»¶¯¶Ï¿ªÁ¬½Ó.

1, ¿Í»§¶Ë½ø³Ì·¢³öÁ¬½ÓÊͷű¨ÎÄ£¬²¢ÇÒÍ£Ö¹·¢ËÍÊý¾Ý¡£

ÊÍ·ÅÊý¾Ý±¨ÎÄÊײ¿£¬FIN=1£¬ÆäÐòÁкÅΪseq=u£¨µÈÓÚÇ°ÃæÒѾ­´«Ë͹ýÀ´µÄÊý¾ÝµÄ×îºóÒ»¸ö×Ö½ÚµÄÐòºÅ¼Ó1£©£¬´Ëʱ¿Í»§¶Ë½øÈëFIN-WAIT-1£¨ÖÕÖ¹µÈ´ý1£©×´Ì¬¡£ TCP¹æ¶¨£¬FIN±¨ÎĶμ´Ê¹²»Ð¯´øÊý¾Ý£¬Ò²ÒªÏûºÄÒ»¸öÐòºÅ¡£

2, ·þÎñÆ÷ÊÕµ½Á¬½ÓÊͷű¨ÎÄ£¬·¢³öÈ·Èϱ¨ÎÄ£¬ACK=1£¬È·ÈÏÐòºÅΪ u+1£¬²¢ÇÒ´øÉÏ×Ô¼ºµÄÐòÁкÅseq=v£¬´Ëʱ·þÎñ¶Ë¾Í½øÈëÁËCLOSE-WAIT£¨¹Ø±ÕµÈ´ý£©×´Ì¬¡£

TCP·þÎñÆ÷֪ͨ¸ß²ãµÄÓ¦Óýø³Ì£¬¿Í»§¶ËÏò·þÎñÆ÷µÄ·½Ïò¾ÍÊÍ·ÅÁË£¬Õâʱºò´¦ÓÚ°ë¹Ø±Õ״̬£¬¼´¿Í»§¶ËÒѾ­Ã»ÓÐÊý¾ÝÒª·¢ËÍÁË£¬µ«ÊÇ·þÎñÆ÷Èô·¢ËÍÊý¾Ý£¬¿Í»§¶ËÒÀȻҪ½ÓÊÜ¡£Õâ¸ö״̬»¹Òª³ÖÐøÒ»¶Îʱ¼ä£¬Ò²¾ÍÊÇÕû¸öCLOSE-WAIT״̬³ÖÐøµÄʱ¼ä¡£

3, ¿Í»§¶ËÊÕµ½·þÎñÆ÷µÄÈ·ÈÏÇëÇóºó£¬´Ëʱ¿Í»§¶Ë¾Í½øÈëFIN-WAIT-2£¨ÖÕÖ¹µÈ´ý2£©×´Ì¬£¬µÈ´ý·þÎñÆ÷·¢ËÍÁ¬½ÓÊͷű¨ÎÄ£¨ÔÚÕâ֮ǰ»¹ÐèÒª½ÓÊÜ·þÎñÆ÷·¢Ë͵Ä×îÖÕÊý¾Ý£©

4, ·þÎñÆ÷½«×îºóµÄÊý¾Ý·¢ËÍÍê±Ïºó£¬¾ÍÏò¿Í»§¶Ë·¢ËÍÁ¬½ÓÊͷű¨ÎÄ£¬FIN=1£¬È·ÈÏÐòºÅΪv+1£¬ÓÉÓÚÔÚ°ë¹Ø±Õ״̬£¬·þÎñÆ÷ºÜ¿ÉÄÜÓÖ·¢ËÍÁËһЩÊý¾Ý£¬¼Ù¶¨´ËʱµÄÐòÁкÅΪseq=w£¬´Ëʱ£¬·þÎñÆ÷¾Í½øÈëÁËLAST-ACK£¨×îºóÈ·ÈÏ£©×´Ì¬£¬µÈ´ý¿Í»§¶ËµÄÈ·ÈÏ¡£

5, ¿Í»§¶ËÊÕµ½·þÎñÆ÷µÄÁ¬½ÓÊͷű¨Îĺ󣬱ØÐë·¢³öÈ·ÈÏ£¬ACK=1£¬È·ÈÏÐòºÅΪw+1£¬¶ø×Ô¼ºµÄÐòÁкÅÊÇu+1£¬´Ëʱ£¬¿Í»§¶Ë¾Í½øÈëÁËTIME-WAIT£¨Ê±¼äµÈ´ý£©×´Ì¬¡£×¢Òâ´ËʱTCPÁ¬½Ó»¹Ã»ÓÐÊÍ·Å£¬±ØÐë¾­¹ý2?MSL£¨×±¨ÎĶÎÊÙÃü£©µÄʱ¼äºó£¬µ±¿Í»§¶Ë³·ÏúÏàÓ¦µÄTCBºó£¬²Å½øÈëCLOSED״̬¡£

6, ·þÎñÆ÷Ö»ÒªÊÕµ½Á˿ͻ§¶Ë·¢³öµÄÈ·ÈÏ£¬Á¢¼´½øÈëCLOSED״̬¡£Í¬Ñù£¬³·ÏúTCBºó£¬¾Í½áÊøÁËÕâ´ÎµÄTCPÁ¬½Ó¡£¿ÉÒÔ¿´µ½£¬·þÎñÆ÷½áÊøTCPÁ¬½ÓµÄʱ¼äÒª±È¿Í»§¶ËÔçһЩ¡£

ÔÙÀ´¿´Ò»ÕÅͼ.

Ϊʲô×îºó¿Í»§¶Ë»¹ÒªµÈ´ý 2*MSLµÄʱ¼äÄØ?

MSL£¨Maximum Segment Lifetime£©£¬TCPÔÊÐí²»Í¬µÄʵÏÖ¿ÉÒÔÉèÖò»Í¬µÄMSLÖµ¡£

µÚÒ»£¬±£Ö¤¿Í»§¶Ë·¢Ë͵Ä×îºóÒ»¸öACK±¨ÎÄÄܹ»µ½´ï·þÎñÆ÷£¬ÒòΪÕâ¸öACK±¨ÎÄ¿ÉÄܶªÊ§£¬Õ¾ÔÚ·þÎñÆ÷µÄ½Ç¶È¿´À´£¬ÎÒÒѾ­·¢ËÍÁËFIN+ACK±¨ÎÄÇëÇó¶Ï¿ªÁË£¬¿Í»§¶Ë»¹Ã»ÓиøÎÒ»ØÓ¦£¬Ó¦¸ÃÊÇÎÒ·¢Ë͵ÄÇëÇó¶Ï¿ª±¨ÎÄËüûÓÐÊÕµ½£¬ÓÚÊÇ·þÎñÆ÷ÓÖ»áÖØÐ·¢ËÍÒ»´Î£¬¶ø¿Í»§¶Ë¾ÍÄÜÔÚÕâ¸ö2MSLʱ¼ä¶ÎÄÚÊÕµ½Õâ¸öÖØ´«µÄ±¨ÎÄ£¬½Óןø³ö»ØÓ¦±¨ÎÄ£¬²¢ÇÒ»áÖØÆô2MSL¼ÆÊ±Æ÷¡£

µÚ¶þ£¬·ÀÖ¹ÀàËÆÓë¡°Èý´ÎÎÕÊÖ¡±ÖÐÌáµ½Á˵ġ°ÒѾ­Ê§Ð§µÄÁ¬½ÓÇëÇó±¨ÎĶΡ±³öÏÖÔÚ±¾Á¬½ÓÖС£¿Í»§¶Ë·¢ËÍÍê×îºóÒ»¸öÈ·Èϱ¨Îĺó£¬ÔÚÕâ¸ö2MSLʱ¼äÖУ¬¾Í¿ÉÒÔʹ±¾Á¬½Ó³ÖÐøµÄʱ¼äÄÚËù²úÉúµÄËùÓб¨ÎĶζ¼´ÓÍøÂçÖÐÏûʧ¡£ÕâÑùеÄÁ¬½ÓÖв»»á³öÏÖ¾ÉÁ¬½ÓµÄÇëÇó±¨ÎÄ¡£

Ϊʲô½¨Á¢Á¬½ÓÊÇÈý´ÎÎÕÊÖ£¬¹Ø±ÕÁ¬½ÓÈ·ÊÇËĴλÓÊÖÄØ£¿

½¨Á¢Á¬½ÓµÄʱºò£¬ ·þÎñÆ÷ÔÚLISTEN״̬Ï£¬ÊÕµ½½¨Á¢Á¬½ÓÇëÇóµÄSYN±¨Îĺ󣬰ÑACKºÍSYN·ÅÔÚÒ»¸ö±¨ÎÄÀï·¢Ë͸ø¿Í»§¶Ë¡£

¶ø¹Ø±ÕÁ¬½Óʱ£¬·þÎñÆ÷ÊÕµ½¶Ô·½µÄFIN±¨ÎÄʱ£¬½ö½ö±íʾ¶Ô·½²»ÔÙ·¢ËÍÊý¾ÝÁ˵«ÊÇ»¹ÄܽÓÊÕÊý¾Ý£¬¶ø×Ô¼ºÒ²Î´±ØÈ«²¿Êý¾Ý¶¼·¢Ë͸ø¶Ô·½ÁË£¬ËùÒÔ¼º·½¿ÉÒÔÁ¢¼´¹Ø±Õ£¬Ò²¿ÉÒÔ·¢ËÍһЩÊý¾Ý¸ø¶Ô·½ºó£¬ÔÙ·¢ËÍFIN±¨Îĸø¶Ô·½À´±íʾͬÒâÏÖÔڹرÕÁ¬½Ó£¬Òò´Ë£¬¼º·½ACKºÍFINÒ»°ã¶¼»á·Ö¿ª·¢ËÍ£¬´Ó¶øµ¼Ö¶àÁËÒ»´Î¡£

Èç¹ûÒѾ­½¨Á¢ÁËÁ¬½Ó, µ«Êǿͻ§¶ËÍ»·¢¹ÊÕÏÁËÔõô°ì?

TCPÉèÓÐÒ»¸ö±£»î¼ÆÊ±Æ÷£¬ÏÔÈ»£¬¿Í»§¶ËÈç¹û³öÏÖ¹ÊÕÏ£¬·þÎñÆ÷²»ÄÜÒ»Ö±µÈÏÂÈ¥£¬°×°×ÀË·Ñ×ÊÔ´¡£·þÎñÆ÷ÿÊÕµ½Ò»´Î¿Í»§¶ËµÄÇëÇóºó¶¼»áÖØÐ¸´Î»Õâ¸ö¼ÆÊ±Æ÷£¬Ê±¼äͨ³£ÊÇÉèÖÃΪ2Сʱ£¬ÈôÁ½Ð¡Ê±»¹Ã»ÓÐÊÕµ½¿Í»§¶ËµÄÈκÎÊý¾Ý£¬·þÎñÆ÷¾Í»á·¢ËÍÒ»¸ö̽²â±¨ÎĶΣ¬ÒÔºóÿ¸ô75·ÖÖÓ·¢ËÍÒ»´Î¡£ÈôÒ»Á¬·¢ËÍ10¸ö̽²â±¨ÎÄÈÔȻû·´Ó¦£¬·þÎñÆ÷¾ÍÈÏΪ¿Í»§¶Ë³öÁ˹ÊÕÏ£¬½Óמ͹رÕÁ¬½Ó¡£

Àí½âTIME_WAIT״̬

¿ÉÒÔ×öÒ»¸öʵÑé, ÏÈÔËÐÐserver, ÔÙÔËÐÐclientÁ¬½Óserver, È»ºó¶Ï¿ªserver, ÔÙÁ¢ÂíÔËÐÐserver.

ÎÒÃǻᷢÏÖ:

°ó¶¨µÄʱºò³öÁËÎÊÌâ.

ÕâÊÇÒòΪ,ËäÈ»serverÓ¦ÓóÌÐòÖÕÖ¹ÁË,µ«TCPЭÒé²ãµÄÁ¬½Ó²¢Ã»ÓÐÍêÈ«¶Ï¿ª,Òò´Ë²»ÄÜÔٴμàÌý°ó¶¨Í¬ÑùµÄserver¶Ë¿Ú.

TCPЭÒ鹿¶¨,Ö÷¶¯¹Ø±ÕÁ¬½ÓµÄÒ»·½Òª´¦ÓÚTIME_ WAIT״̬,µÈ´ý2*MSL(maximum segment lifetime)µÄʱ¼äºó²ÅÄܻص½CLOSED״̬.

ÎÒÃÇʹÓÃCtrl-CÖÕÖ¹ÁËserver, ËùÒÔserverÊÇÖ÷¶¯¹Ø±ÕÁ¬½ÓµÄÒ»·½, ÔÚTIME_WAITÆÚ¼äÈÔÈ»²»ÄÜÔٴμàÌýͬÑùµÄserver¶Ë¿Ú

MSLÔÚRFC1122Öй涨ΪÁ½·ÖÖÓ,µ«ÊǸ÷²Ù×÷ϵͳµÄʵÏÖ²»Í¬, ÔÚCentos7ÉÏĬÈÏÅäÖõÄÖµÊÇ60s;

¿ÉÒÔͨ¹ý cat /proc/sys/net/ipv4/tcp_fin_timeout ²é¿´MSLµÄÖµ

½â¾öTIME_WAITÒýÆðµÄbindʧ°ÜÎÊÌâ

ÔÚserverµÄTCPÁ¬½ÓûÓÐÍêÈ«¶Ï¿ªÖ®Ç°²»ÔÊÐíÖØÐ¼àÌý, ijЩÇé¿öÏ¿ÉÄÜÊDz»ºÏÀíµÄ.

±ÈÈç:

·þÎñÆ÷ÐèÒª´¦Àí·Ç³£´óÁ¿µÄ¿Í»§¶ËµÄÁ¬½Ó(ÿ¸öÁ¬½ÓµÄÉú´æÊ±¼ä¿ÉÄܺܶÌ, µ«ÊÇÿÃë¶¼ÓдóÁ¿µÄ¿Í»§¶ËÀ´ÇëÇó).

Õâ¸öʱºòÈç¹ûÓÉ·þÎñÆ÷¶ËÖ÷¶¯¹Ø±ÕÁ¬½Ó(±ÈÈçijЩ¿Í»§¶Ë²»»îÔ¾, ¾ÍÐèÒª±»·þÎñÆ÷¶ËÖ÷¶¯ÇåÀíµô), ¾Í»á²úÉú´óÁ¿TIME_WAITÁ¬½Ó.

ÓÉÓÚÎÒÃǵÄÇëÇóÁ¿ºÜ´ó, ¾Í¿ÉÄܵ¼ÖÂTIME_WAITµÄÁ¬½ÓÊýºÜ¶à, µ¼Ö·þÎñÆ÷µÄ¶Ë¿Ú²»¹»ÓÃ, ÎÞ·¨´¦ÀíеÄÁ¬½Ó.

½â¾ö·½·¨:

- ʹÓÃsetsockopt()ÉèÖÃsocketÃèÊö·ûµÄÑ¡ÏîSO_REUSEADDRΪ1, ±íʾÔÊÐí´´½¨¶Ë¿ÚºÅÏàͬµ«IPµØÖ·²»Í¬µÄ¶à¸ösocketÃèÊö·û.

Ó÷¨:

ÔÚserver´úÂëµÄsocket()ºÍbind()µ÷ÓÃÖ®¼ä²åÈëÈçÏ´úÂë

int opt = 1;

setsockopt(listen_fd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt));

È·ÈÏÓ¦´ð»úÖÆ(ACK»úÖÆ)

TCP½«Ã¿¸ö×Ö½ÚµÄÊý¾Ý¶¼½øÐÐÁ˱àºÅ, ¼´ÎªÐòÁкÅ.

ÿһ¸öACK¶¼´øÓжÔÓ¦µÄÈ·ÈÏÐòÁкÅ, Òâ˼ÊǸæËß·¢ËÍÕß, ÎÒÒѾ­ÊÕµ½ÁËÄÄЩÊý¾Ý; ÏÂÒ»´ÎÄãÒª´ÓÄÄÀ↑ʼ·¢.

±ÈÈç, ¿Í»§¶ËÏò·þÎñÆ÷·¢ËÍÁË1005×Ö½ÚµÄÊý¾Ý, ·þÎñÆ÷·µ»Ø¸ø¿Í»§¶ËµÄÈ·ÈÏÐòºÅÊÇ1003, ÄÇô˵Ã÷·þÎñÆ÷Ö»ÊÕµ½ÁË1-1002µÄÊý¾Ý.

1003, 1004, 1005¶¼Ã»ÊÕµ½.

´Ëʱ¿Í»§¶Ë¾Í»á´Ó1003¿ªÊ¼ÖØ·¢.

³¬Ê±ÖØ´«»úÖÆ

Ö÷»úA·¢ËÍÊý¾Ý¸øBÖ®ºó, ¿ÉÄÜÒòÎªÍøÂçÓµ¶ÂµÈÔ­Òò, Êý¾ÝÎÞ·¨µ½´ïÖ÷»úB

Èç¹ûÖ÷»úAÔÚÒ»¸öÌØ¶¨Ê±¼ä¼ä¸ôÄÚûÓÐÊÕµ½B·¢À´µÄÈ·ÈÏÓ¦´ð, ¾Í»á½øÐÐÖØ·¢

µ«ÊÇÖ÷»úAûÊÕµ½È·ÈÏÓ¦´ðÒ²¿ÉÄÜÊÇACK¶ªÊ§ÁË.

ÕâÖÖÇé¿öÏÂ, Ö÷»úB»áÊÕµ½ºÜ¶àÖØ¸´Êý¾Ý.

ÄÇôTCPЭÒéÐèҪʶ±ð³öÄÄЩ°üÊÇÖØ¸´µÄ, ²¢ÇÒ°ÑÖØ¸´µÄ¶ªÆú.

ÕâʱºòÀûÓÃÇ°ÃæÌáµ½µÄÐòÁкÅ, ¾Í¿ÉÒÔºÜÈÝÒ××öµ½È¥ÖØ.

³¬Ê±Ê±¼äÈçºÎÈ·¶¨?

×îÀíÏëµÄÇé¿öÏÂ, ÕÒµ½Ò»¸ö×îСµÄʱ¼ä, ±£Ö¤ ¡°È·ÈÏÓ¦´ðÒ»¶¨ÄÜÔÚÕâ¸öʱ¼äÄÚ·µ»Ø¡±.

µ«ÊÇÕâ¸öʱ¼äµÄ³¤¶Ì, Ëæ×ÅÍøÂç»·¾³µÄ²»Í¬, ÊÇÓвîÒìµÄ.

Èç¹û³¬Ê±Ê±¼äÉèµÄÌ«³¤, »áÓ°ÏìÕûÌåµÄÖØ´«Ð§ÂÊ; Èç¹û³¬Ê±Ê±¼äÉèµÄÌ«¶Ì, ÓпÉÄÜ»áÆµ·±·¢ËÍÖØ¸´µÄ°ü.

TCPΪÁ˱£Ö¤Èκλ·¾³Ï¶¼Äܱ£³Ö½Ï¸ßÐÔÄܵÄͨÐÅ, Òò´Ë»á¶¯Ì¬¼ÆËãÕâ¸ö×î´ó³¬Ê±Ê±¼ä.

LinuxÖÐ(BSD UnixºÍWindowsÒ²ÊÇÈç´Ë), ³¬Ê±ÒÔ500msΪһ¸öµ¥Î»½øÐпØÖÆ, ÿ´ÎÅж¨³¬Ê±ÖØ·¢µÄ³¬Ê±Ê±¼ä¶¼ÊÇ500msµÄÕûÊý±¶.

Èç¹ûÖØ·¢Ò»´ÎÖ®ºó, ÈÔÈ»µÃ²»µ½Ó¦´ð, µÈ´ý 2*500ms ºóÔÙ½øÐÐÖØ´«. Èç¹ûÈÔÈ»µÃ²»µ½Ó¦´ð, µÈ´ý 4*500ms ½øÐÐÖØ´«.

ÒÀ´ÎÀàÍÆ, ÒÔÖ¸ÊýÐÎʽµÝÔö. ÀۼƵ½Ò»¶¨µÄÖØ´«´ÎÊý, TCPÈÏÎªÍøÂçÒì³£»òÕß¶Ô¶ËÖ÷»ú³öÏÖÒì³£, Ç¿ÖÆ¹Ø±ÕÁ¬½Ó.

»¬¶¯´°¿Ú

¸Õ²ÅÎÒÃÇÌÖÂÛÁËÈ·ÈÏÓ¦´ð»úÖÆ, ¶Ôÿһ¸ö·¢Ë͵ÄÊý¾Ý¶Î, ¶¼Òª¸øÒ»¸öACKÈ·ÈÏÓ¦´ð. ÊÕµ½ACKºóÔÙ·¢ËÍÏÂÒ»¸öÊý¾Ý¶Î.

ÕâÑù×öÓÐÒ»¸ö±È½Ï´óµÄȱµã, ¾ÍÊÇÐÔÄܽϲî. ÓÈÆäÊÇÊý¾ÝÍù·µÊ±¼ä½Ï³¤µÄʱºò.

ÄÇôÎÒÃǿɲ»¿ÉÒÔÒ»´Î·¢ËͶà¸öÊý¾Ý¶ÎÄØ?

ÀýÈçÕâÑù:

Ò»¸ö¸ÅÄî: ´°¿Ú

´°¿Ú´óСָµÄÊÇÎÞÐèµÈ´ýÈ·ÈÏÓ¦´ð¾Í¿ÉÒÔ¼ÌÐø·¢ËÍÊý¾ÝµÄ×î´óÖµ.

ÉÏͼµÄ´°¿Ú´óС¾ÍÊÇ4000¸ö×Ö½Ú (Ëĸö¶Î).

·¢ËÍǰËĸö¶ÎµÄʱºò, ²»ÐèÒªµÈ´ýÈκÎACK, Ö±½Ó·¢ËÍ

ÊÕµ½µÚÒ»¸öACKÈ·ÈÏÓ¦´ðºó, ´°¿ÚÏòºóÒÆ¶¯, ¼ÌÐø·¢Ë͵ÚÎåÁùÆß°Ë¶ÎµÄÊý¾Ý¡­

ÒòΪÕâ¸ö´°¿Ú²»¶ÏÏòºó»¬¶¯, ËùÒÔ½Ð×ö»¬¶¯´°¿Ú.

²Ù×÷ϵͳÄÚºËΪÁËά»¤Õâ¸ö»¬¶¯´°¿Ú, ÐèÒª¿ª±Ù·¢ËÍ»º³åÇøÀ´¼Ç¼µ±Ç°»¹ÓÐÄÄЩÊý¾ÝûÓÐÓ¦´ð

Ö»ÓÐACKÈ·ÈÏÓ¦´ð¹ýµÄÊý¾Ý, ²ÅÄÜ´Ó»º³åÇøÉ¾µô.

Èç¹û³öÏÖÁ˶ª°ü, ÄÇô¸ÃÈçºÎ½øÐÐÖØ´«ÄØ?

´Ëʱ·ÖÁ½ÖÖÇé¿öÌÖÂÛ:

1, Êý¾Ý°üÒѾ­ÊÕµ½, µ«È·ÈÏÓ¦´ðACK¶ªÁË.

ÕâÖÖÇé¿öÏÂ, ²¿·ÖACK¶ªÊ§²¢ÎÞ´ó°­, ÒòΪ»¹¿ÉÒÔͨ¹ýºóÐøµÄACKÀ´È·È϶Է½ÒѾ­ÊÕµ½ÁËÄÄЩÊý¾Ý°ü.

2, Êý¾Ý°ü¶ªÊ§

µ±Ä³Ò»¶Î±¨ÎĶªÊ§Ö®ºó, ·¢ËͶ˻áÒ»Ö±ÊÕµ½ 1001 ÕâÑùµÄACK, ¾ÍÏñÊÇÔÚÌáÐÑ·¢ËÍ¶Ë ¡°ÎÒÏëÒªµÄÊÇ 1001¡±

Èç¹û·¢ËͶËÖ÷»úÁ¬ÐøÈý´ÎÊÕµ½ÁËͬÑùÒ»¸ö ¡°1001¡± ÕâÑùµÄÓ¦´ð, ¾Í»á½«¶ÔÓ¦µÄÊý¾Ý 1001 - 2000 ÖØÐ·¢ËÍ

Õâ¸öʱºò½ÓÊÕ¶ËÊÕµ½ÁË 1001 Ö®ºó, Ôٴηµ»ØµÄACK¾ÍÊÇ7001ÁË

ÒòΪ2001 - 7000½ÓÊÕ¶ËÆäʵ֮ǰ¾ÍÒѾ­ÊÕµ½ÁË, ±»·Åµ½Á˽ÓÊն˲Ù×÷ϵͳÄں˵ĽÓÊÕ»º³åÇøÖÐ.

ÕâÖÖ»úÖÆ±»³ÆÎª ¡°¸ßËÙÖØ·¢¿ØÖÆ¡± ( Ò²½Ð ¡°¿ìÖØ´«¡± )

Á÷Á¿¿ØÖÆ

½ÓÊÕ¶Ë´¦ÀíÊý¾ÝµÄËÙ¶ÈÊÇÓÐÏÞµÄ. Èç¹û·¢ËͶ˷¢µÄÌ«¿ì, µ¼Ö½ÓÊն˵Ļº³åÇø±»ÌîÂú, Õâ¸öʱºòÈç¹û·¢ËͶ˼ÌÐø·¢ËÍ, ¾Í»áÔì³É¶ª°ü, ½ø¶øÒýÆð¶ª°üÖØ´«µÈһϵÁÐÁ¬Ëø·´Ó¦.

Òò´ËTCPÖ§³Ö¸ù¾Ý½ÓÊն˵Ĵ¦ÀíÄÜÁ¦, À´¾ö¶¨·¢ËͶ˵ķ¢ËÍËÙ¶È.

Õâ¸ö»úÖÆ¾Í½Ð×ö Á÷Á¿¿ØÖÆ(Flow Control)

½ÓÊն˽«×Ô¼º¿ÉÒÔ½ÓÊյĻº³åÇø´óС·ÅÈë TCP Êײ¿ÖÐµÄ ¡°´°¿Ú´óС¡± ×Ö¶Î,

ͨ¹ýACK֪ͨ·¢ËͶË;

´°¿Ú´óСԽ´ó, ˵Ã÷ÍøÂçµÄÍÌÍÂÁ¿Ô½¸ß;

½ÓÊÕ¶ËÒ»µ©·¢ÏÖ×Ô¼ºµÄ»º³åÇø¿ìÂúÁË, ¾Í»á½«´°¿Ú´óСÉèÖóÉÒ»¸ö¸üСµÄֵ֪ͨ¸ø·¢ËͶË;

·¢ËͶ˽ÓÊܵ½Õâ¸ö´°¿Ú´óСµÄ֪֮ͨºó, ¾Í»á¼õÂý×Ô¼ºµÄ·¢ËÍËÙ¶È;

Èç¹û½ÓÊÕ¶Ë»º³åÇøÂúÁË, ¾Í»á½«´°¿ÚÖÃΪ0;

Õâʱ·¢ËÍ·½²»ÔÙ·¢ËÍÊý¾Ý, µ«ÊÇÐèÒª¶¨ÆÚ·¢ËÍÒ»¸ö´°¿Ú̽²âÊý¾Ý¶Î, ÈýÓÊն˰Ѵ°¿Ú´óСÔÙ¸æËß·¢ËͶË.

ÄÇô½ÓÊÕ¶ËÈçºÎ°Ñ´°¿Ú´óС¸æËß·¢ËͶËÄØ?

ÎÒÃǵÄTCPÊײ¿ÖÐ, ÓÐÒ»¸ö16λ´°¿Ú´óС×Ö¶Î, ¾Í´æ·ÅÁË´°¿Ú´óСµÄÐÅÏ¢;

16λÊý×Ö×î´ó±íʾ65536, ÄÇôTCP´°¿Ú×î´ó¾ÍÊÇ65536×Ö½Úô?

ʵ¼ÊÉÏ, TCPÊײ¿40×Ö½ÚÑ¡ÏîÖл¹°üº¬ÁËÒ»¸ö´°¿ÚÀ©´óÒò×ÓM, ʵ¼Ê´°¿Ú´óСÊÇ´°¿Ú×ֶεÄÖµ×óÒÆ M λ(×óÒÆÒ»Î»Ï൱ÓÚ³ËÒÔ2).

ÓµÈû¿ØÖÆ

ËäÈ»TCPÓÐÁË»¬¶¯´°¿ÚÕâ¸ö´óɱÆ÷, Äܹ»¸ßЧ¿É¿¿µØ·¢ËÍ´óÁ¿Êý¾Ý.

µ«ÊÇÈç¹ûÔÚ¸Õ¿ªÊ¼¾Í·¢ËÍ´óÁ¿µÄÊý¾Ý, ÈÔÈ»¿ÉÄÜÒý·¢Ò»Ð©ÎÊÌâ.

ÒòÎªÍøÂçÉÏÓÐºÜ¶à¼ÆËã»ú, ¿ÉÄܵ±Ç°µÄÍøÂç״̬ÒѾ­±È½ÏÓµ¶Â.

ÔÚ²»Çå³þµ±Ç°ÍøÂç״̬µÄÇé¿öÏÂ, óȻ·¢ËÍ´óÁ¿Êý¾Ý, ºÜÓпÉÄÜÑ©ÉϼÓ˪.

Òò´Ë, TCPÒýÈë ÂýÆô¶¯ »úÖÆ, ÏÈ·¢ÉÙÁ¿µÄÊý¾Ý, ̽̽·, ÃþÇ嵱ǰµÄÍøÂçÓµ¶Â״̬ÒÔºó, ÔÙ¾ö¶¨°´ÕÕ¶à´óµÄËÙ¶È´«ÊäÊý¾Ý.

ÔÚ´ËÒýÈëÒ»¸ö¸ÅÄî ÓµÈû´°¿Ú

·¢ËÍ¿ªÊ¼µÄʱºò, ¶¨ÒåÓµÈû´°¿Ú´óСΪ1;

ÿ´ÎÊÕµ½Ò»¸öACKÓ¦´ð, ÓµÈû´°¿Ú¼Ó1;

ÿ´Î·¢ËÍÊý¾Ý°üµÄʱºò, ½«ÓµÈû´°¿ÚºÍ½ÓÊÕ¶ËÖ÷»ú·´À¡µÄ´°¿Ú´óС×ö±È½Ï, È¡½ÏСµÄÖµ×÷Ϊʵ¼Ê·¢Ë͵Ĵ°¿Ú

ÏñÉÏÃæÕâÑùµÄÓµÈû´°¿ÚÔö³¤ËÙ¶È, ÊÇÖ¸Êý¼¶±ðµÄ.

¡°ÂýÆô¶¯¡± Ö»ÊÇÖ¸³õʹʱÂý, µ«ÊÇÔö³¤Ëٶȷdz£¿ì.

ΪÁ˲»Ôö³¤µÃÄÇô¿ì, ´Ë´¦ÒýÈëÒ»¸öÃû´Ê½Ð×öÂýÆô¶¯µÄãÐÖµ, µ±ÓµÈû´°¿ÚµÄ´óС³¬¹ýÕâ¸öãÐÖµµÄʱºò, ²»ÔÙ°´ÕÕÖ¸Êý·½Ê½Ôö³¤, ¶øÊǰ´ÕÕÏßÐÔ·½Ê½Ôö³¤.

µ±TCP¿ªÊ¼Æô¶¯µÄʱºò, ÂýÆô¶¯ãÐÖµµÈÓÚ´°¿Ú×î´óÖµ

ÔÚÿ´Î³¬Ê±ÖØ·¢µÄʱºò, ÂýÆô¶¯ãÐÖµ»á±ä³ÉÔ­À´µÄÒ»°ë, ͬʱӵÈû´°¿ÚÖûØ1

ÉÙÁ¿µÄ¶ª°ü, ÎÒÃǽö½öÊÇ´¥·¢³¬Ê±ÖØ´«;

´óÁ¿µÄ¶ª°ü, ÎÒÃǾÍÈÏΪÊÇÍøÂçÓµÈû;

µ±TCPͨÐÅ¿ªÊ¼ºó, ÍøÂçÍÌÍÂÁ¿»áÖð½¥ÉÏÉý;

Ëæ×ÅÍøÂç·¢ÉúÓµ¶Â, ÍÌÍÂÁ¿»áÁ¢¿ÌϽµ.

ÓµÈû¿ØÖÆ, ¹é¸ù½áµ×ÊÇTCPЭÒéÏ뾡¿ÉÄÜ¿ìµÄ°ÑÊý¾Ý´«Ê䏸¶Ô·½, µ«ÊÇÓÖÒª±ÜÃâ¸øÍøÂçÔì³ÉÌ«´óѹÁ¦µÄÕÛÖз½°¸.

ÑÓ³ÙÓ¦´ð

Èç¹û½ÓÊÕÊý¾ÝµÄÖ÷»úÁ¢¿Ì·µ»ØACKÓ¦´ð, Õâʱºò·µ»ØµÄ´°¿Ú¿ÉÄܱȽÏС.

¼ÙÉè½ÓÊÕ¶Ë»º³åÇøÎª1M. Ò»´ÎÊÕµ½ÁË500KµÄÊý¾Ý;

Èç¹ûÁ¢¿ÌÓ¦´ð, ·µ»ØµÄ´°¿Ú´óС¾ÍÊÇ500K;

µ«Êµ¼ÊÉÏ¿ÉÄÜ´¦Àí¶Ë´¦ÀíµÄËٶȺܿì, 10msÖ®ÄھͰÑ500KÊý¾Ý´Ó»º³åÇøÏû·ÑµôÁË; ÔÚÕâÖÖÇé¿öÏÂ, ½ÓÊÕ¶Ë´¦Àí»¹Ô¶Ã»Óдﵽ×Ô¼ºµÄ¼«ÏÞ, ¼´Ê¹´°¿ÚÔÙ·Å´óһЩ, Ò²ÄÜ´¦Àí¹ýÀ´;

Èç¹û½ÓÊÕ¶ËÉÔ΢µÈÒ»»á¶ùÔÙÓ¦´ð, ±ÈÈçµÈ´ý200msÔÙÓ¦´ð, ÄÇôÕâ¸öʱºò·µ»ØµÄ´°¿Ú´óС¾ÍÊÇ1M

´°¿ÚÔ½´ó, ÍøÂçÍÌÍÂÁ¿¾ÍÔ½´ó, ´«ÊäЧÂʾÍÔ½¸ß.

TCPµÄÄ¿±êÊÇÔÚ±£Ö¤ÍøÂç²»Óµ¶ÂµÄÇé¿öϾ¡Á¿Ìá¸ß´«ÊäЧÂÊ;

ÄÇôËùÓеÄÊý¾Ý°ü¶¼¿ÉÒÔÑÓ³ÙÓ¦´ðô?

¿Ï¶¨Ò²²»ÊÇ

ÓÐÁ½¸öÏÞÖÆ

ÊýÁ¿ÏÞÖÆ: ÿ¸ôN¸ö°ü¾ÍÓ¦´ðÒ»´Î

ʱ¼äÏÞÖÆ: ³¬¹ý×î´óÑÓ³Ùʱ¼ä¾ÍÓ¦´ðÒ»´Î

¾ßÌåµÄÊýÁ¿NºÍ×î´óÑÓ³Ùʱ¼ä, ÒÀ²Ù×÷ϵͳ²»Í¬Ò²ÓвîÒì

Ò»°ã N È¡2, ×î´óÑÓ³Ùʱ¼äÈ¡200ms

ÉÓ´øÓ¦´ð

ÔÚÑÓ³ÙÓ¦´ðµÄ»ù´¡ÉÏ, ÎÒÃÇ·¢ÏÖ, ºÜ¶àÇé¿öÏÂ

¿Í»§¶ËºÍ·þÎñÆ÷ÔÚÓ¦ÓòãÒ²ÊÇ ¡°Ò»·¢Ò»ÊÕ¡± µÄ

Òâζ×ſͻ§¶Ë¸ø·þÎñÆ÷˵ÁË ¡°How are you¡±

·þÎñÆ÷Ò²»á¸ø¿Í»§¶Ë»ØÒ»¸ö ¡°Fine, thank you¡±

ÄÇôÕâ¸öʱºòACK¾Í¿ÉÒÔ´î˳·ç³µ, ºÍ·þÎñÆ÷»ØÓ¦µÄ ¡°Fine, thank you¡± Ò»Æð·¢Ë͸ø¿Í»§¶Ë

ÃæÏò×Ö½ÚÁ÷

´´½¨Ò»¸öTCPµÄsocket, ͬʱÔÚÄÚºËÖд´½¨Ò»¸ö ·¢ËÍ»º³åÇø ºÍÒ»¸ö ½ÓÊÕ»º³åÇø;

µ÷ÓÃwriteʱ, Êý¾Ý»áÏÈдÈë·¢ËÍ»º³åÇøÖÐ;

Èç¹û·¢Ë͵Ä×Ö½ÚÊýÌ«´ó, »á±»²ð·Ö³É¶à¸öTCPµÄÊý¾Ý°ü·¢³ö;

Èç¹û·¢Ë͵Ä×Ö½ÚÊý̫С, ¾Í»áÏÈÔÚ»º³åÇøÀïµÈ´ý, µÈµ½»º³åÇø´óС²î²»¶àÁË, »òÕßµ½ÁËÆäËûºÏÊʵÄʱ»úÔÙ·¢ËͳöÈ¥;

½ÓÊÕÊý¾ÝµÄʱºò, Êý¾ÝÒ²ÊÇ´ÓÍø¿¨Çý¶¯³ÌÐòµ½´ïÄں˵ĽÓÊÕ»º³åÇø;

È»ºóÓ¦ÓóÌÐò¿ÉÒÔµ÷ÓÃread´Ó½ÓÊÕ»º³åÇøÄÃÊý¾Ý;

ÁíÒ»·½Ãæ, TCPµÄÒ»¸öÁ¬½Ó, ¼ÈÓз¢ËÍ»º³åÇø, Ò²ÓнÓÊÕ»º³åÇø,

ÄÇô¶ÔÓÚÕâÒ»¸öÁ¬½Ó, ¼È¿ÉÒÔ¶ÁÊý¾Ý, Ò²¿ÉÒÔдÊý¾Ý, Õâ¸ö¸ÅÄî½Ð×ö ȫ˫¹¤

ÓÉÓÚ»º³åÇøµÄ´æÔÚ, ËùÒÔTCP³ÌÐòµÄ¶ÁºÍд²»ÐèҪһһƥÅä

ÀýÈç:

д100¸ö×Ö½ÚµÄÊý¾Ý, ¿ÉÒÔµ÷ÓÃÒ»´Îwriteд100¸ö×Ö½Ú, Ò²¿ÉÒÔµ÷ÓÃ100´Îwrite, ÿ´Îдһ¸ö×Ö½Ú;

¶Á100¸ö×Ö½ÚÊý¾Ýʱ, Ò²ÍêÈ«²»ÐèÒª¿¼ÂÇдµÄʱºòÊÇÔõôдµÄ, ¼È¿ÉÒÔÒ»´Îread 100¸ö×Ö½Ú, Ò²¿ÉÒÔÒ»´ÎreadÒ»¸ö×Ö½Ú, ÖØ¸´100´Î;

Õ³°üÎÊÌâ

Ê×ÏÈÒªÃ÷È·, Õ³°üÎÊÌâÖÐµÄ ¡°°ü¡±, ÊÇÖ¸Ó¦ÓòãµÄÊý¾Ý°ü.

ÔÚTCPµÄЭÒéÍ·ÖÐ, ûÓÐÈçͬUDPÒ»ÑùµÄ ¡°±¨Îij¤¶È¡± ×Ö¶Î

µ«ÊÇÓÐÒ»¸öÐòºÅ×Ö¶Î.

Õ¾ÔÚ´«Êä²ãµÄ½Ç¶È, TCPÊÇÒ»¸öÒ»¸ö±¨ÎÄ´«¹ýÀ´µÄ. °´ÕÕÐòºÅÅźÃÐò·ÅÔÚ»º³åÇøÖÐ.

Õ¾ÔÚÓ¦ÓòãµÄ½Ç¶È, ¿´µ½µÄÖ»ÊÇÒ»´®Á¬ÐøµÄ×Ö½ÚÊý¾Ý.

ÄÇôӦÓóÌÐò¿´µ½ÁËÕâÒ»Á¬´®µÄ×Ö½ÚÊý¾Ý, ¾Í²»ÖªµÀ´ÓÄĸö²¿·Ö¿ªÊ¼µ½Äĸö²¿·ÖÊÇÒ»¸öÍêÕûµÄÓ¦ÓòãÊý¾Ý°ü.

´ËʱÊý¾ÝÖ®¼ä¾ÍûÓÐÁ˱߽ç, ¾Í²úÉúÁËÕ³°üÎÊÌâ

ÄÇôÈçºÎ±ÜÃâÕ³°üÎÊÌâÄØ?

¹é¸ù½áµ×¾ÍÊÇÒ»¾ä»°, Ã÷È·Á½¸ö°üÖ®¼äµÄ±ß½ç

¶ÔÓÚ¶¨³¤µÄ°ü

- ±£Ö¤Ã¿´Î¶¼°´¹Ì¶¨´óС¶ÁÈ¡¼´¿É

ÀýÈçÉÏÃæµÄRequest½á¹¹, Êǹ̶¨´óСµÄ, ÄÇô¾Í´Ó»º³åÇø´ÓÍ·¿ªÊ¼°´sizeof(Request)ÒÀ´Î¶ÁÈ¡¼´¿É

¶ÔÓڱ䳤µÄ°ü

- ¿ÉÒÔÔÚÊý¾Ý°üµÄÍ·²¿, Ô¼¶¨Ò»¸öÊý¾Ý°ü×ܳ¤¶ÈµÄ×Ö¶Î, ´Ó¶ø¾ÍÖªµÀÁ˰üµÄ½áÊøÎ»ÖÃ

»¹¿ÉÒÔÔÚ°üºÍ°üÖ®¼äʹÓÃÃ÷È·µÄ·Ö¸ô·ûÀ´×÷Ϊ±ß½ç(Ó¦ÓòãЭÒé, ÊdzÌÐòÔ±×Ô¼ºÀ´¶¨µÄ, Ö»Òª±£Ö¤·Ö¸ô·û²»ºÍÕýÎijåÍ»¼´¿É)

¶ÔÓÚUDPЭÒéÀ´Ëµ, ÊÇ·ñÒ²´æÔÚ ¡°Õ³°üÎÊÌ⡱ ÄØ?

¶ÔÓÚUDP, Èç¹û»¹Ã»ÓÐÏòÉϲ㽻¸¶Êý¾Ý, UDPµÄ±¨Îij¤¶ÈÈÔÈ»´æÔÚ.

ͬʱ, UDPÊÇÒ»¸öÒ»¸ö°ÑÊý¾Ý½»¸¶¸øÓ¦ÓòãµÄ, ¾ÍÓкÜÃ÷È·µÄÊý¾Ý±ß½ç.

Õ¾ÔÚÓ¦ÓòãµÄ½Ç¶È, ʹÓÃUDPµÄʱºò, ҪôÊÕµ½ÍêÕûµÄUDP±¨ÎÄ, Ҫô²»ÊÕ.

²»»á³öÏÖÊÕµ½ ¡°°ë¸ö¡± µÄÇé¿ö.

TCP Òì³£Çé¿ö

½ø³ÌÖÕÖ¹: ½ø³ÌÖÕÖ¹»áÊÍ·ÅÎļþÃèÊö·û, ÈÔÈ»¿ÉÒÔ·¢ËÍFIN. ºÍÕý³£¹Ø±ÕûÓÐÊ²Ã´Çø±ð.

»úÆ÷ÖØÆô: ºÍ½ø³ÌÖÕÖ¹µÄÇé¿öÏàͬ.

»úÆ÷µôµç/ÍøÏß¶Ï¿ª: ½ÓÊÕ¶ËÈÏΪÁ¬½Ó»¹ÔÚ, Ò»µ©½ÓÊÕ¶ËÓÐдÈë²Ù×÷, ½ÓÊÕ¶Ë·¢ÏÖÁ¬½ÓÒѾ­²»ÔÚÁË, ¾Í»á½øÐÐ reset. ¼´Ê¹Ã»ÓÐдÈë²Ù×÷, TCP×Ô¼ºÒ²ÄÚÖÃÁËÒ»¸ö±£»î¶¨Ê±Æ÷, »á¶¨ÆÚѯÎʶԷ½ÊÇ·ñ»¹ÔÚ. Èç¹û¶Ô·½²»ÔÚ, Ò²»á°ÑÁ¬½ÓÊÍ·Å.

ÁíÍâ, Ó¦ÓòãµÄijЩЭÒé, Ò²ÓÐһЩÕâÑùµÄ¼ì²â»úÖÆ.

ÀýÈçHTTP³¤Á¬½ÓÖÐ, Ò²»á¶¨ÆÚ¼ì²â¶Ô·½µÄ״̬.

ÀýÈçQQ, ÔÚQQ¶ÏÏßÖ®ºó, Ò²»á¶¨ÆÚ³¢ÊÔÖØÐÂÁ¬½Ó.

TCP С½á

ΪʲôTCPÕâô¸´ÔÓ?

ÒòΪ¼ÈÒª±£Ö¤¿É¿¿ÐÔ, ͬʱÓÖÒª¾¡¿ÉÄÜÌá¸ßÐÔÄÜ.

±£Ö¤¿É¿¿ÐԵĻúÖÆ

УÑéºÍ

ÐòÁкÅ(°´Ðòµ½´ï)

È·ÈÏÓ¦´ð

³¬Ê±ÖØ´«

Á¬½Ó¹ÜÀí

Á÷Á¿¿ØÖÆ

ÓµÈû¿ØÖÆ

Ìá¸ßÐÔÄܵĻúÖÆ

»¬¶¯´°¿Ú

¿ìËÙÖØ´«

ÑÓ³ÙÓ¦´ð

ÉÓ´øÓ¦´ð

¶¨Ê±Æ÷

³¬Ê±ÖØ´«¶¨Ê±Æ÷

±£»î¶¨Ê±Æ÷

TIME_WAIT¶¨Ê±Æ÷

»ùÓÚ TCP µÄÓ¦ÓòãЭÒé

HTTP

HTTPS

SSH

Telnet

FTP

SMTP

¡­

µ±È», Ò²°üÀ¨ÎÒÃÇ×Ô¼ºÐ´TCP³ÌÐòʱ×Ô¶¨ÒåµÄÓ¦ÓòãЭÒé

TCP ºÍ UDP ¶Ô±È

ÎÒÃÇ˵ÁËTCPÊǿɿ¿Á¬½Ó, ÄÇôÊDz»ÊÇTCPÒ»¶¨¾ÍÓÅÓÚUDPÄØ?

TCPºÍUDPÖ®¼äµÄÓŵãºÍȱµã, ²»Äܼòµ¥¾ø¶ÔµØ½øÐбȽÏ

TCPÓÃÓÚ¿É¿¿´«ÊäµÄÇé¿ö, Ó¦ÓÃÓÚÎļþ´«Êä, ÖØÒª×´Ì¬¸üеȳ¡¾°

UDPÓÃÓÚ¶Ô¸ßËÙ´«ÊäºÍʵʱÐÔÒªÇó½Ï¸ßµÄͨÐÅÁìÓò

ÀýÈç, ÔçÆÚµÄQQ, ÊÓÆµ´«ÊäµÈ. ÁíÍâUDP¿ÉÒÔÓÃÓڹ㲥

¹é¸ù½áµ×, TCPºÍUDP¶¼ÊÇÒ»ÖÖ¹¤¾ß, ʲôʱ»úÓÃ, ¾ßÌåÔõôÓÃ, »¹ÊÇÒª¸ù¾Ý¾ßÌåµÄÐèÇ󳡾°È¥¾ö¶¨.

 

   
1968 ´Îä¯ÀÀ       28
????

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

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

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