»¶ÓÄú·ÃÎÊÎÒ°®IT¼¼ÊõÍø£¬½ñÌìС±àΪÄã·ÖÏíµÄµçÄԽ̳ÌÊÇÍøÂçÐÒé·½ÃæµÄ¾Ñé֪ʶ½Ì³Ì£º¡¶¼ÆËã»úÍøÂç¡·Ö®ÔËÊä²ã£¬ÏÂÃæÊÇÏêϸµÄ·ÖÏí£¡
¡¶¼ÆËã»úÍøÂç¡·Ö®ÔËÊä²ã
¡¶¼ÆËã»úÍøÂç¡·Ö®ÔËÊä²ã
Ò»¡¢ÒýÑÔ
Ç°ÃæËµ¹ý£¬ÔËÊä²ã¸ºÔðÏòÁ½¸öÖ÷»úÖеĽø³ÌÖ®¼äµÄͨÐÅÌṩ·þÎñ¡£ËüÊÇÃæÏòͨÐŲ¿·ÖµÄ×î¸ß²ã£¬Ò²ÊÇÓû§¹¦ÄÜÖеÄ×îµÍ²ã¡£
ÔËÊä²ãÌṩ¸´ÓÃ(multiplexing)ºÍ·ÖÓÃ(demultiplexing)µÄ¹¦ÄÜ£¬»¹¶Ô±¨ÎĽøÐвî´í¼ì²â¡£ËüµÄÁ½¸öÖ÷ÒªÐÒéÊÇÎÞÁ¬½ÓµÄÓû§Êý¾Ý±¨ÐÒéUDP (User DatagramProtocol)ºÍÃæÏòÁ¬½ÓµÄ´«Êä¿ØÖÆÐÒéTCP (Transmission ControlProtocol)¡£
ÔËÊä²ãʹÓÃÐÒé¶Ë¿ÚºÅ(protocol port number)À´Ê¶±ðÖ÷»úÉϵĽø³Ì¡£¶Ë¿ÚºÅÖ»¾ßÓб¾µØÒâÒ壬·ÖΪÁ½´óÀࣺ·þÎñÆ÷¶ËʹÓõĶ˿ںţ¨ÓÖ·ÖΪÊìÖª¶Ë¿ÚºÅºÍµÇ¼Ç¶Ë¿ÚºÅ£©ºÍ¿Í»§¶ËʹÓõĶ˿ںţ¨¶ÌÔݶ˿ںţ©¡£
¶þ¡¢UDPºÍTCP
UDPºÍTCPµÄÌØµãÈçÏÂ±í¡£
UDP
TCP
Ïàͬµã
¢Ù¸´ÓúͷÖÓõŦÄÜ
¢Ú²î´í¼ì²â¹¦ÄÜ
²»Í¬µã
¢ÙÎÞÁ¬½Ó
¢ÙÃæÏòÁ¬½Ó
¢Ú¾¡×î´óŬÁ¦½»¸¶
¢Ú¿É¿¿½»¸¶
¢ÛÃæÏò±¨ÎÄ£¨¶ÔÉϲ㽻ÏÂÀ´µÄ±¨ÎļȲ»ºÏ²¢Ò²²»²ð·Ö£©
¢ÛÃæÏò×Ö½ÚÁ÷
¢ÜÎÞÓµÈû¿ØÖÆ
¢ÜÓÐÓµÈû¿ØÖÆ
¢ÝÖ§³Öm¶ÔnµÄ½»»¥Í¨ÐÅ
¢ÝÖ»Ö§³Öµã¶ÔµãµÄȫ˫¹¤Í¨ÐÅ
¢ÞÊײ¿¿ªÏúС£¨8×Ö½Ú£©
¢ÞÊײ¿Ïà¶Ô´ó£¨20×Ö½Ú£©
UDPµÄÊײ¿¸ñʽÈçÏ¡£

¡°¼ìÑéºÍ¡±¼ì²âÕû¸öÊý¾Ý±¨¡£¼ÆËã·½·¨Í¬IPÊý¾Ý±¨¡£¼ìÑéʱ¼ÓÉÏαÊײ¿¡£
TCP±¨ÎĶεÄÊײ¿¸ñʽÈçÏ¡£

¡°ÐòºÅ¡±¶Ôÿ¸ö×Ö½Ú¶¼°´Ðò±àºÅ£»¡°È·ÈϺš±ÊÇÆÚÍûÊÕµ½µÄÏÂÒ»¸ö×Ö½ÚµÄÐòºÅ£»¡°Êý¾ÝÆ«ÒÆ¡±ÊÇÊײ¿³¤¶È£¬µ¥Î»Îª4×Ö½Ú£»¼ìÑéºÍÓëUDPÀàËÆ¡£TCP±¨ÎĶÎÊײ¿³¤¶ÈΪ20~60×Ö½Ú¡£
¡°½ô¼±Ö¸Õ롱ºÍ¡°½ô¼±URG¡±Î»ÓÃÀ´´«Ëͽô¼±ÏûÏ¢£¨ÏÂÃæ½ö×÷ΪѧÎÊÀ©³äÓë̽ÌÖÀ´½éÉÜ£©¡£TCPµÄ½ô¼±»úÖÆÊÇÔÊÐí·¢ËÍÕßʹ½ÓÊÕÕß½ÓÊÕһЩ½ô¼±ÏûÏ¢£¬²¢ÈýÓÊÕ·½ÔÚ½ÓÊÕµ½ÕâÒ»ÏûÏ¢ºóÁ¢¿Ì֪ͨÓû§¡£ÕâÖÖ»úÖÆÊÇÔÚÊý¾ÝÁ÷ÊǼÓÈëÒ»¸öµã£¨½ô¼±Ö¸Õ룩£¬Ö¸³öÕâÊǽô¼±Êý¾ÝµÄ½áÊøµã£¬µ±½ÓÊÕ·½Òª½ÓÊÕµ½Õâ¸öµã֮ǰ£¬Ëü»á֪ͨÓû§½øÈë½ô¼±×´Ì¬£¬ÔÚ½ÓÊÕµ½Õâ¸öµãµÄÊý¾Ýºó£¬Ëü»á֪ͨÓû§½øÈëͨ³£×´Ì¬¡£ºÃÏñ½ô¼±Êý¾Ý²»½ö»áÓÅÏÈ·¢ËÍ£¬»¹»áÓÅÏȽÓÊÕ¡£ÕâÒ»µã»¹ÇëÖªÇéÈËÊ¿ºÍÎÒÒ»ÆðÌÖÂÛ¡£
¿ÉÒÔ·¢ÏÖ£¬UDPºÍTCPÖж¼³öÏÖÁË¡°Î±Êײ¿¡±ÕâÒ»×ֶΡ£Î±Êײ¿½ö½öÊÇΪÁ˼ÆËã¼ìÑéºÍ£¬¼È²»ÏòÏ´«ËÍÒ²²»ÏòÉϵݽ»¡£Stevens µÄ¡¶tcp/ipÏê½â¾íÒ» ÐÒé¡·ÊéÖÐÔ»°¡°ÆäÄ¿µÄÊÇÈÃUDPÁ½´Î¼ì²éÊý¾ÝÊÇ·ñÒѾÕýÈ·µ½´ïÄ¿µÄµØ¡±¡£µÚÒ»´Î£¬Í¨¹ýαÊײ¿µÄIPµØÖ·¼ìÑ飬UDP¿ÉÒÔÈ·ÈϸÃÊý¾Ý±¨ÊDz»ÊÇ·¢Ë͸ø±¾»úIPµØÖ·µÄ£»µÚ¶þ£¬Í¨¹ýαÊײ¿µÄÐÒé×ֶμìÑ飬UDP¿ÉÒÔÈ·ÈÏIPÓÐûÓаѲ»Ó¦¸Ã´«¸øUDP¶øÓ¦¸Ã´«¸ø±ðµÄ¸ß²ãµÄÊý¾Ý±¨´«¸øÁËUDP¡£´ÓÕâÒ»µãÉÏ£¬Î±Êײ¿µÄ×÷ÓÃÆäʵºÜ´ó¡£
Èý¡¢TCPµÄ¡°¸ß¼¶¹¦ÄÜ¡±
ÎÒÃÇÖªµÀ£¬TCP±ÈUDP¶àÁ˺ܶ๦ÄÜ£¬Ò²Ê¹µÃËü±íÏֵøü¼ÓÇ¿´ó¡£ÕâÀï²»ÊÇ˵UDP±ÈTCP²î£¬ËüÃǸ÷Óи÷µÄÓô¦¡£±ÈÈçÔÚÊÓÆµ»áÒéµÈʵʱÐԱȿɿ¿ÐÔ¸üÖØÒªµÄÓ¦ÓÃÖУ¬»òÒªÇó¿ªÏúСµÄ³¡ºÏÏ£¬»¹ÊÇ·ÇUDPĪÊôµÄ¡£TCPµÄ¡°¸ß¼¶¹¦ÄÜ¡±Ö÷ÒªÓпɿ¿´«Êä¡¢Á÷Á¿¿ØÖÆ¡¢ÓµÈû¿ØÖƺÍÁ¬½Ó¹ÜÀíËIJ¿·Ö¡£ÏÂÃæÎÒÃÇÀ´½øÐÐÒ»Ò»½éÉÜ¡£
3.1 ¿É¿¿´«Êä
ÀíÏëµÄ´«ÊäÌõ¼þÓÐÒÔÏÂÁ½¸öÌØµã£º´«ÊäÐŵÀ²»²úÉú²î´í£»²»¹Ü·¢ËÍ·½ÒÔ¶à¿ìµÄËÙ¶È·¢ËÍÊý¾Ý£¬½ÓÊÕ·½×ÜÊÇÀ´µÃ¼°´¦ÀíÊÕµ½µÄÊý¾Ý¡£
×î¼òµ¥µÄ·½·¨ÊÇÍ£Ö¹µÈ´ýÐÒé¡£ËüÄÜ×Ô¶¯ÖØ´«¡£ÐŵÀÀûÓÃÂÊU=T_D/(T_D+RTT+T_A )£¨ß×£¬CSDNÀïÃæ²»ÄÜÕ³WORDµÄ¹«Ê½°¡¡¡ÕâÀ﹫ʽÀïÃæµÄÏ»®Ïß¾ÍÊÇϱêµÄÒâ˼£©¡£T_DΪµ¥¸ö·Ö×éµÄ·¢ËÍʱ¼ä£¬T_AÊÇÈ·ÈÏ·Ö×é·¢ËÍʱ¼ä£¬RTTΪÍù·µÊ±¼ä¡£
Í£Ö¹µÈ´ýÐÒéµÄȱµãÊÇÐŵÀÀûÓÃÂÊÌ«µÍ¡£Òò´Ë²ÉÓÃÁ÷Ë®Ïß´«Ê䣬¼´Ò»´ÎÁ¬Ðø·¢ËͶà¸ö·Ö×é¡£¿ÉÒÔʹÓÃÁ¬ÐøARQÐÒéºÍ»¬¶¯´°¿ÚÐÒé¡£
»¬¶¯´°¿ÚÐÒéÊǿɿ¿´«ÊäµÄ×îÖØÒªµÄÐÒé¡£×ÔÓµÄÎÊÌâÖ®Ò»¾ÍÊdz¬Ê±ÖØ´«Ê±¼äµÄÑ¡Ôñ¡£
³¬Ê±ÖØ´«Ê±¼äRTO(Retransmission Time-Out)Ó¦ÂÔ´óÓÚRTT¡£µ«¿¼Âǵ½ÍøÂçÊǶ¯Ì¬µÄ£¬RTTʱ¿ÌÔڱ仯£¬Òò´ËÐèÒª¶¯Ì¬¼ÆËã³öÁ½¸ö²ÎÊý¡ª¡ª¼ÓȨƽ¾ùÍù·µÊ±¼äºÍÆ«²îµÄ¼ÓȨƽ¾ùÖµ¡ª¡ªÀ´¶¯Ì¬µÃ³öRTOµÄÖµ£ºRTO=RTT_S+4¡ÁRTT_D¡£
ÆäÖУ¬RTT_S=(1-α)¡Á(¾ÉµÄRTT_S )+α¡Á(еÄRTTÑù±¾)
RTT_D=(1-β)¡Á(¾ÉµÄRTT_D )+β¡Á|RTT_S-еÄRTTÑù±¾|
ͨ³££¬α=1/8£¬β=1/4¡£
3.2 Á÷Á¿¿ØÖÆ¡¢ÓµÈû¿ØÖÆ
Á÷Á¿¿ØÖÆ(flow control)¾ÍÊÇÈ÷¢ËÍ·½µÄ·¢ËÍËÙÂʲ»ÒªÌ«¿ì£¬ÒªÈýÓÊÕ·½À´µÃ¼°½ÓÊÕ¡£²ÉÓý«×Ô¼ºµÄ½ÓÊÕ´°¿ÚrwndÖµ·´À¡¸ø·¢ËÍ·½µÄ·½Ê½À´¶¯Ì¬¿ØÖÆ·¢ËÍ·½µÄ·¢ËÍ´°¿Ú¡£
ÓµÈû¿ØÖÆ(congestion control)¾ÍÊÇ·ÀÖ¹¹ý¶àµÄÊý¾Ý×¢Èëµ½ÍøÂçÖУ¬ÕâÑù¿ÉÒÔÊ¹ÍøÂçÖеÄ·ÓÉÆ÷»òÁ´Â·²»Ö¹ýÔØ¡£
Á½ÕßµÄÇø±ðÊÇÁ÷Á¿¿ØÖÆÊǶ˵½¶ËµÄÎÊÌ⣬¿¼ÂǽÓÊÕ·½µÄ½ÓÊÕ£»¶øÓµÈû¿ØÖÆÊÇÉæ¼°µ½È«¾ÖµÄÎÊÌ⣬¿¼ÂÇÍøÂçµÄ³©Í¨¡£
ÓµÈû¿ØÖƵÄËÄÖÖËã·¨ÊǷdz£ÖØÒªµÄ»úÖÆ£ºÂý¿ªÊ¼(slow-start)¡¢ÓµÈû±ÜÃâ(congestion avoidance)¡¢¿ìÖØ´«(fast retransmit)¡¢¿ì»Ö¸´(fastrecovery)¡£
ÓÉÓÚËã·¨ÈýÑÔÁ½Óï˵²»Ç壬ËùÒÔÔÚÕâÀïÖ»×ܽáһϡ£Èç¹û¶ÔËã·¨²»ÊìϤ×îºÃÒª¿´½Ì²Ä¡£
£¨1£©Âý¿ªÊ¼
¸Õ¿ªÊ¼Ê±ÉèÖÃÓµÈû´°¿Úcwnd=·¢ËÍ´°¿Ú=1 MSS£¨×î´ó±¨ÎĶΣ©¡£½Ó×Åÿ¾¹ýÒ»¸ö´«ÊäÂִΣ¬cwndºÍ·¢ËÍ´°¿Ú¾Í¼Ó±¶£¬Ö±µ½cwnd>ssthresh£¨Âý¿ªÊ¼ÃÅÏÞ£©¡£
£¨2£©ÓµÈû±ÜÃâ
cwnd>ssthreshºó£¬Ã¿¾¹ýÒ»¸ö´«ÊäÂִΣ¬cwnd¾Í¼Ó1MSS£¨¼Ó·¨Ôö´ó£©£¬¶ø²»ÊǼӱ¶¡£Ö±µ½ÍøÂç³öÏÖÓµÈû£¨³¬Ê±£©¡£
³öÏÖÓµÈûºó½«ssthreshÉèÖÃΪ´ËʱcwndµÄÒ»°ë£¨³Ë·¨¼õС£©£¬È»ºó°ÑcwndÖÃ1£¬Ö´ÐÐÂý¿ªÊ¼Ëã·¨¡£
£¨3£©¿ìÖØ´«
½ÓÊÕ·½ÊÕµ½Ê§ÐòµÄ±¨ÎĶκó¾ÍÁ¢¼´·¢³öÖØ¸´È·ÈÏ£¬ÇÒ½ÓÏÂÀ´Ã¿ÊÕµ½Ò»¸ö±¨ÎĶζ¼·¢ËÍÒ»´ÎÖØ¸´È·ÈÏ¡£·¢ËÍ·½Ö»ÒªÒ»Á¬ÊÕµ½Èý¸öÖØ¸´È·ÈϾÍÓ¦µ±Á¢¼´ÖØ´«¶Ô·½ÉÐδÊÕµ½µÄ±¨ÎĶΡ£
£¨4£©¿ì»Ö¸´
·¢ËÍ·½Á¬ÐøÊÕµ½Èý¸öÖØ¸´È·ÈÏʱ£¬Ö´Ðг˷¨¼õСËã·¨£¬°ÑssthreshÉèÖÃΪcwndµÄÒ»°ë£¬È»ºó£¨²»Ö´ÐÐÂý¿ªÊ¼£©°ÑcwndÒ²ÉèÖÃΪssthreshµÄÊýÖµ£¬Ö´Ðмӷ¨Ôö´óËã·¨¡£
ÔÚʵ¼ÊÖз¢ËÍ´°¿Ú²»Ò»¶¨Ò»Ö±µÈÓÚcwnd£¬ÒòΪËü»¹ÒªÊܽÓÊÕ´°¿ÚrwndµÄÏÞÖÆ¡£
TCP»¹Ê¹ÓÃËæ»úÔçÆÚ¼ì²âRED (Random Early Detection)À´ÔÚ·ÓÉÆ÷µÄƽ¾ù¶ÓÁг¤¶È½éÓÚ×î´óÃÅÏÞºÍ×îСÃÅÏÞÖ®¼äʱ¾ÍÒÔ¸ÅÂÊpËæ»ú¶ªÆú¸ö±ð·Ö×飬À´±ÜÃâÈ«¾Öͬ²½£¨¶àÌõTCPͬʱӵÈû£¬ÓÖ¼¸ºõͬʱ»Ö¸´£©¡£p²»Êdz£Êý¡£
3.3 Á¬½Ó¹ÜÀí
Õâ½Ú±È½Ï¼òµ¥¡£TCPµÄÁ¬½Ó½¨Á¢¹ý³ÌÊÇÈý´ÎÎÕÊÖ£º¿Í»§»úÇëÇó²¢ÉèÖÿͻ§¶Ë·¢Ë͵ijõʼÐòºÅ¡¢·þÎñÆ÷È·ÈÏÇëÇó²¢ÉèÖ÷þÎñÆ÷¶Ë·¢Ë͵ijõʼÐòºÅ¡¢¿Í»§ÔÙ´ÎÈ·ÈÏ¡£Ç°Á½´Î¶¼¸÷ÏûºÄÒ»¸öÐòºÅ£¬µÚÈý´ÎÈç¹û±¨ÎĶβ»Ð¯´øÊý¾ÝÔò²»ÏûºÄÐòºÅ¡££¨ÎÒ¾ÍÊÇÔÚÆÚÄ©¿¼ÊÔÖÐÍü¼ÇÁ˲Å×ö´íÁËÒ»µÀÌ⣩
Á¬½ÓÊÍ·ÅÏà¶Ô½Ï¸´ÔÓ£¬¾¹ýÁ½¸ö¶þ´ÎÎÕÊÖ¡£µÚÒ»´ÎÎÕÊÖ£¨¿Í»§¶Ë·¢Æð£©Ê¹TCPÁ¬½Ó´¦ÓÚ°ë¹Ø±Õ״̬£¬¿Í»§¶Ë²»ÄÜ·¢ËÍÊý¾Ý£¬¶ø·þÎñÆ÷¶Ë»¹¿ÉÒÔ£»µÚ¶þ´ÎÎÕÊÖ£¨·þÎñÆ÷¶Ë·¢Æð£©½áÊøÁ¬½Ó¡£
ÒÔÉϾÍÊǹØÓÚ¡¶¼ÆËã»úÍøÂç¡·Ö®ÔËÊä²ãµÄÍøÂçÐÒé֪ʶ·ÖÏí£¬¸ü¶àµçÄԽ̳ÌÇëÒÆ²½µ½>>µçÄԽ̡̳£
- ÆÀÂÛÁÐ±í£¨ÍøÓÑÆÀÂÛ½ö¹©ÍøÓѱí´ï¸öÈË¿´·¨£¬²¢²»±íÃ÷±¾Õ¾Í¬ÒâÆä¹Ûµã»ò֤ʵÆäÃèÊö£©
-
