服务器开发中网络数据分析与故障排查经验漫谈.html 135 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829
  1. <!DOCTYPE HTML>
  2. <html lang="" >
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  6. <title>服务器开发中网络数据分析与故障排查经验漫谈 · 高性能服务器开发 技术专栏</title>
  7. <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  8. <meta name="description" content="">
  9. <meta name="generator" content="GitBook 3.2.3">
  10. <meta name="author" content="easy_coder">
  11. <link rel="stylesheet" href="../../gitbook/style.css">
  12. <link rel="stylesheet" href="../../gitbook/gitbook-plugin-chapter-fold/chapter-fold.css">
  13. <link rel="stylesheet" href="../../gitbook/gitbook-plugin-search-pro/search.css">
  14. <link rel="stylesheet" href="../../gitbook/gitbook-plugin-splitter/splitter.css">
  15. <link rel="stylesheet" href="../../gitbook/gitbook-plugin-back-to-top-button/plugin.css">
  16. <link rel="stylesheet" href="../../gitbook/gitbook-plugin-prism/prism.css">
  17. <link rel="stylesheet" href="../../gitbook/gitbook-plugin-tbfed-pagefooter/footer.css">
  18. <link rel="stylesheet" href="../../gitbook/gitbook-plugin-code/plugin.css">
  19. <link rel="stylesheet" href="../../gitbook/gitbook-plugin-anchor-navigation-ex/style/plugin.css">
  20. <link rel="stylesheet" href="../../gitbook/gitbook-plugin-fontsettings/website.css">
  21. <link rel="stylesheet" href="../../gitbook/gitbook-plugin-theme-fexa/fexa.css">
  22. <meta name="HandheldFriendly" content="true"/>
  23. <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
  24. <meta name="apple-mobile-web-app-capable" content="yes">
  25. <meta name="apple-mobile-web-app-status-bar-style" content="black">
  26. <link rel="apple-touch-icon-precomposed" sizes="152x152" href="../../gitbook/images/apple-touch-icon-precomposed-152.png">
  27. <link rel="shortcut icon" href="../../gitbook/images/favicon.ico" type="image/x-icon">
  28. <link rel="next" href="../高性能服务器框架设计/" />
  29. <link rel="prev" href="从抓包的角度分析connect函数的连接过程.html" />
  30. </head>
  31. <body>
  32. <div class="book">
  33. <div class="header-inner">
  34. <!-- LOGO -->
  35. <div class="logo"></div>
  36. <span class="title"></span>
  37. <!-- Search -->
  38. <div id="book-search-input" role="search">
  39. <input type="text" placeholder="Type to search" />
  40. </div>
  41. <!-- Nav -->
  42. <ul class="header-nav">
  43. </ul>
  44. </div>
  45. <div class="book-summary">
  46. <div class="book-summary-title">文档目录</div>
  47. <nav role="navigation">
  48. <ul class="summary">
  49. <li class="header">Part I</li>
  50. <li class="chapter " data-level="1.1" data-path="../../">
  51. <a href="../../">
  52. Introduction
  53. </a>
  54. </li>
  55. <li class="chapter " data-level="1.2" data-path="../C++必知必会的知识点/">
  56. <a href="../C++必知必会的知识点/">
  57. C++必知必会的知识点
  58. </a>
  59. <ul class="articles">
  60. <li class="chapter " data-level="1.2.1" data-path="../C++必知必会的知识点/如何成为一名合格的CC++开发者?.html">
  61. <a href="../C++必知必会的知识点/如何成为一名合格的CC++开发者?.html">
  62. 如何成为一名合格的C/C++开发者?
  63. </a>
  64. </li>
  65. <li class="chapter " data-level="1.2.2" data-path="../C++必知必会的知识点/不定参数函数实现var_arg系列的宏.html">
  66. <a href="../C++必知必会的知识点/不定参数函数实现var_arg系列的宏.html">
  67. 不定参数函数实现var_arg系列的宏
  68. </a>
  69. </li>
  70. <li class="chapter " data-level="1.2.3" data-path="../C++必知必会的知识点/你一定要搞明白的C函数调用方式与栈原理.html">
  71. <a href="../C++必知必会的知识点/你一定要搞明白的C函数调用方式与栈原理.html">
  72. 你一定要搞明白的C函数调用方式与栈原理
  73. </a>
  74. </li>
  75. <li class="chapter " data-level="1.2.4" data-path="../C++必知必会的知识点/深入理解CC++中的指针.html">
  76. <a href="../C++必知必会的知识点/深入理解CC++中的指针.html">
  77. 深入理解C/C++中的指针
  78. </a>
  79. </li>
  80. <li class="chapter " data-level="1.2.5" data-path="../C++必知必会的知识点/详解C++11中的智能指针.html">
  81. <a href="../C++必知必会的知识点/详解C++11中的智能指针.html">
  82. 详解C++11中的智能指针
  83. </a>
  84. </li>
  85. <li class="chapter " data-level="1.2.6" data-path="../C++必知必会的知识点/C++17结构化绑定.html">
  86. <a href="../C++必知必会的知识点/C++17结构化绑定.html">
  87. C++17结构化绑定
  88. </a>
  89. </li>
  90. <li class="chapter " data-level="1.2.7" data-path="../C++必知必会的知识点/C++必须掌握的pimpl惯用法.html">
  91. <a href="../C++必知必会的知识点/C++必须掌握的pimpl惯用法.html">
  92. C++必须掌握的pimpl惯用法
  93. </a>
  94. </li>
  95. <li class="chapter " data-level="1.2.8" data-path="../C++必知必会的知识点/用VisualStudio调试Linux程序.html">
  96. <a href="../C++必知必会的知识点/用VisualStudio调试Linux程序.html">
  97. 用Visual Studio调试Linux程序
  98. </a>
  99. </li>
  100. <li class="chapter " data-level="1.2.9" data-path="../C++必知必会的知识点/如何使用VisualStudio管理和阅读开源项目代码.html">
  101. <a href="../C++必知必会的知识点/如何使用VisualStudio管理和阅读开源项目代码.html">
  102. 如何使用Visual Studio管理和阅读开源项目代码
  103. </a>
  104. </li>
  105. <li class="chapter " data-level="1.2.10" data-path="../C++必知必会的知识点/利用cmake工具生成VisualStudio工程文件.html">
  106. <a href="../C++必知必会的知识点/利用cmake工具生成VisualStudio工程文件.html">
  107. 利用cmake工具生成Visual Studio工程文件
  108. </a>
  109. </li>
  110. </ul>
  111. </li>
  112. <li class="chapter " data-level="1.3" data-path="../多线程/">
  113. <a href="../多线程/">
  114. 多线程
  115. </a>
  116. <ul class="articles">
  117. <li class="chapter " data-level="1.3.1" data-path="../多线程/后台C++开发你一定要知道的条件变量.html">
  118. <a href="../多线程/后台C++开发你一定要知道的条件变量.html">
  119. 后台C++开发你一定要知道的条件变量
  120. </a>
  121. </li>
  122. <li class="chapter " data-level="1.3.2" data-path="../多线程/整型变量赋值是原子操作吗?.html">
  123. <a href="../多线程/整型变量赋值是原子操作吗?.html">
  124. 整型变量赋值是原子操作吗?
  125. </a>
  126. </li>
  127. </ul>
  128. </li>
  129. <li class="divider"></li>
  130. <li class="chapter " data-level="2.1" data-path="../网络编程/">
  131. <a href="../网络编程/">
  132. 网络编程
  133. </a>
  134. <ul class="articles">
  135. <li class="chapter " data-level="2.1.1" data-path="../网络编程/bind函数重难点解析.html">
  136. <a href="../网络编程/bind函数重难点解析.html">
  137. bind 函数重难点解析
  138. </a>
  139. </li>
  140. <li class="chapter " data-level="2.1.2" data-path="../网络编程/connect函数在阻塞和非阻塞模式下的行为.html">
  141. <a href="../网络编程/connect函数在阻塞和非阻塞模式下的行为.html">
  142. connect 函数在阻塞和非阻塞模式下的行为
  143. </a>
  144. </li>
  145. <li class="chapter " data-level="2.1.3" data-path="../网络编程/select函数重难点解析.html">
  146. <a href="../网络编程/select函数重难点解析.html">
  147. select 函数重难点解析
  148. </a>
  149. </li>
  150. <li class="chapter " data-level="2.1.4" data-path="../网络编程/Linuxepoll模型(含LT模式和ET模式详解).html">
  151. <a href="../网络编程/Linuxepoll模型(含LT模式和ET模式详解).html">
  152. Linux epoll 模型(含LT 模式和 ET 模式详解)
  153. </a>
  154. </li>
  155. <li class="chapter " data-level="2.1.5" data-path="../网络编程/socket的阻塞模式和非阻塞模式.html">
  156. <a href="../网络编程/socket的阻塞模式和非阻塞模式.html">
  157. socket 的阻塞模式和非阻塞模式
  158. </a>
  159. </li>
  160. <li class="chapter " data-level="2.1.6" data-path="../网络编程/非阻塞模式下send和recv函数的返回值.html">
  161. <a href="../网络编程/非阻塞模式下send和recv函数的返回值.html">
  162. 非阻塞模式下 send 和 recv 函数的返回值
  163. </a>
  164. </li>
  165. <li class="chapter " data-level="2.1.7" data-path="../网络编程/服务器开发通信协议设计介绍.html">
  166. <a href="../网络编程/服务器开发通信协议设计介绍.html">
  167. 服务器开发通信协议设计介绍
  168. </a>
  169. </li>
  170. <li class="chapter " data-level="2.1.8" data-path="../网络编程/TCP协议如何解决粘包、半包问题.html">
  171. <a href="../网络编程/TCP协议如何解决粘包、半包问题.html">
  172. TCP 协议如何解决粘包、半包问题
  173. </a>
  174. </li>
  175. <li class="chapter " data-level="2.1.9" data-path="../网络编程/网络通信中收发数据的正确姿势.html">
  176. <a href="../网络编程/网络通信中收发数据的正确姿势.html">
  177. 网络通信中收发数据的正确姿势
  178. </a>
  179. </li>
  180. <li class="chapter " data-level="2.1.10" data-path="../网络编程/服务器端发数据时,如果对端一直不收,怎么办?.html">
  181. <a href="../网络编程/服务器端发数据时,如果对端一直不收,怎么办?.html">
  182. 服务器端发数据时,如果对端一直不收,怎么办?
  183. </a>
  184. </li>
  185. </ul>
  186. </li>
  187. <li class="divider"></li>
  188. <li class="chapter " data-level="3.1" data-path="./">
  189. <a href="./">
  190. 程序员必知必会的网络命令
  191. </a>
  192. <ul class="articles">
  193. <li class="chapter " data-level="3.1.1" data-path="利用telnet命令发电子邮件.html">
  194. <a href="利用telnet命令发电子邮件.html">
  195. 利用telnet命令发电子邮件
  196. </a>
  197. </li>
  198. <li class="chapter " data-level="3.1.2" data-path="做Java或者C++开发都应该知道的lsof命令.html">
  199. <a href="做Java或者C++开发都应该知道的lsof命令.html">
  200. 做Java或者C++开发都应该知道的lsof命令
  201. </a>
  202. </li>
  203. <li class="chapter " data-level="3.1.3" data-path="Linux网络故障排查的瑞士军刀.html">
  204. <a href="Linux网络故障排查的瑞士军刀.html">
  205. Linux网络故障排查的瑞士军刀nc命令
  206. </a>
  207. </li>
  208. <li class="chapter " data-level="3.1.4" data-path="Linuxtcpdump使用介绍.html">
  209. <a href="Linuxtcpdump使用介绍.html">
  210. Linux tcpdump使用详解
  211. </a>
  212. </li>
  213. <li class="chapter " data-level="3.1.5" data-path="从抓包的角度分析connect函数的连接过程.html">
  214. <a href="从抓包的角度分析connect函数的连接过程.html">
  215. 从抓包的角度分析connect函数的连接过程
  216. </a>
  217. </li>
  218. <li class="chapter active" data-level="3.1.6" data-path="服务器开发中网络数据分析与故障排查经验漫谈.html">
  219. <a href="服务器开发中网络数据分析与故障排查经验漫谈.html">
  220. 服务器开发中网络数据分析与故障排查经验漫谈
  221. </a>
  222. </li>
  223. </ul>
  224. </li>
  225. <li class="header">Part II</li>
  226. <li class="chapter " data-level="4.1" data-path="../高性能服务器框架设计/">
  227. <a href="../高性能服务器框架设计/">
  228. 高性能服务器框架设计
  229. </a>
  230. <ul class="articles">
  231. <li class="chapter " data-level="4.1.1" data-path="../高性能服务器框架设计/主线程与工作线程的分工.html">
  232. <a href="../高性能服务器框架设计/主线程与工作线程的分工.html">
  233. 主线程与工作线程的分工
  234. </a>
  235. </li>
  236. <li class="chapter " data-level="4.1.2" data-path="../高性能服务器框架设计/Reactor模式.html">
  237. <a href="../高性能服务器框架设计/Reactor模式.html">
  238. Reactor模式
  239. </a>
  240. </li>
  241. <li class="chapter " data-level="4.1.3" data-path="../高性能服务器框架设计/实例:一个服务器程序的架构介绍.html">
  242. <a href="../高性能服务器框架设计/实例:一个服务器程序的架构介绍.html">
  243. 实例:一个服务器程序的架构介绍
  244. </a>
  245. </li>
  246. <li class="chapter " data-level="4.1.4" data-path="../高性能服务器框架设计/错误码系统的设计.html">
  247. <a href="../高性能服务器框架设计/错误码系统的设计.html">
  248. 错误码系统的设计
  249. </a>
  250. </li>
  251. <li class="chapter " data-level="4.1.5" data-path="../高性能服务器框架设计/日志系统的设计.html">
  252. <a href="../高性能服务器框架设计/日志系统的设计.html">
  253. 日志系统的设计
  254. </a>
  255. </li>
  256. <li class="chapter " data-level="4.1.6" data-path="../高性能服务器框架设计/如何设计断线自动重连机制.html">
  257. <a href="../高性能服务器框架设计/如何设计断线自动重连机制.html">
  258. 如何设计断线自动重连机制
  259. </a>
  260. </li>
  261. <li class="chapter " data-level="4.1.7" data-path="../高性能服务器框架设计/心跳包机制设计详解.html">
  262. <a href="../高性能服务器框架设计/心跳包机制设计详解.html">
  263. 心跳包机制设计详解
  264. </a>
  265. </li>
  266. <li class="chapter " data-level="4.1.8" data-path="../高性能服务器框架设计/业务数据处理一定要单独开线程吗.html">
  267. <a href="../高性能服务器框架设计/业务数据处理一定要单独开线程吗.html">
  268. 业务数据处理一定要单独开线程吗
  269. </a>
  270. </li>
  271. <li class="chapter " data-level="4.1.9" data-path="../高性能服务器框架设计/C++高性能服务器网络框架设计细节.html">
  272. <a href="../高性能服务器框架设计/C++高性能服务器网络框架设计细节.html">
  273. C++ 高性能服务器网络框架设计细节
  274. </a>
  275. </li>
  276. </ul>
  277. </li>
  278. <li class="divider"></li>
  279. <li class="chapter " data-level="5.1" data-path="../服务器开发案例实战/">
  280. <a href="../服务器开发案例实战/">
  281. 服务器开发案例实战
  282. </a>
  283. <ul class="articles">
  284. <li class="chapter " data-level="5.1.1" data-path="../服务器开发案例实战/从零实现一个http服务器.html">
  285. <a href="../服务器开发案例实战/从零实现一个http服务器.html">
  286. 从零实现一个http服务器
  287. </a>
  288. </li>
  289. <li class="chapter " data-level="5.1.2" data-path="../服务器开发案例实战/从零实现一款12306刷票软件.html">
  290. <a href="../服务器开发案例实战/从零实现一款12306刷票软件.html">
  291. 从零实现一款12306刷票软件
  292. </a>
  293. </li>
  294. <li class="chapter " data-level="5.1.3" data-path="../服务器开发案例实战/从零实现一个邮件收发客户端.html">
  295. <a href="../服务器开发案例实战/从零实现一个邮件收发客户端.html">
  296. 从零实现一个邮件收发客户端
  297. </a>
  298. </li>
  299. <li class="chapter " data-level="5.1.4" data-path="../服务器开发案例实战/从零开发一个WebSocket服务器.html">
  300. <a href="../服务器开发案例实战/从零开发一个WebSocket服务器.html">
  301. 从零开发一个WebSocket服务器
  302. </a>
  303. </li>
  304. <li class="chapter " data-level="5.1.5" data-path="../服务器开发案例实战/1从一款多人联机实时对战游戏开始.html">
  305. <a href="../服务器开发案例实战/1从一款多人联机实时对战游戏开始.html">
  306. 从零学习开源项目系列(一) 从一款多人联机实时对战游戏开始
  307. </a>
  308. </li>
  309. <li class="chapter " data-level="5.1.6" data-path="../服务器开发案例实战/2最后一战概况.html">
  310. <a href="../服务器开发案例实战/2最后一战概况.html">
  311. 从零学习开源项目系列(二) 最后一战概况
  312. </a>
  313. </li>
  314. <li class="chapter " data-level="5.1.7" data-path="../服务器开发案例实战/3CSBattleMgr服务源码研究.html">
  315. <a href="../服务器开发案例实战/3CSBattleMgr服务源码研究.html">
  316. 从零学习开源项目系列(三) CSBattleMgr服务源码研究
  317. </a>
  318. </li>
  319. <li class="chapter " data-level="5.1.8" data-path="../服务器开发案例实战/4LogServer源码探究.html">
  320. <a href="../服务器开发案例实战/4LogServer源码探究.html">
  321. 从零学习开源项目系列(四)LogServer源码探究
  322. </a>
  323. </li>
  324. </ul>
  325. </li>
  326. <li class="header">Part III</li>
  327. <li class="chapter " data-level="6.1" data-path="../TeamTalk源码解析/">
  328. <a href="../TeamTalk源码解析/">
  329. TeamTalk IM源码分析
  330. </a>
  331. <ul class="articles">
  332. <li class="chapter " data-level="6.1.1" data-path="../TeamTalk源码解析/01TeamTalk介绍.html">
  333. <a href="../TeamTalk源码解析/01TeamTalk介绍.html">
  334. 01 TeamTalk介绍
  335. </a>
  336. </li>
  337. <li class="chapter " data-level="6.1.2" data-path="../TeamTalk源码解析/02服务器端的程序的编译与部署.html">
  338. <a href="../TeamTalk源码解析/02服务器端的程序的编译与部署.html">
  339. 02 服务器端的程序的编译与部署
  340. </a>
  341. </li>
  342. <li class="chapter " data-level="6.1.3" data-path="../TeamTalk源码解析/03服务器端的程序架构介绍.html">
  343. <a href="../TeamTalk源码解析/03服务器端的程序架构介绍.html">
  344. 03 服务器端的程序架构介绍
  345. </a>
  346. </li>
  347. <li class="chapter " data-level="6.1.4" data-path="../TeamTalk源码解析/04服务器端db_proxy_server源码分析.html">
  348. <a href="../TeamTalk源码解析/04服务器端db_proxy_server源码分析.html">
  349. 04 服务器端db_proxy_server源码分析
  350. </a>
  351. </li>
  352. <li class="chapter " data-level="6.1.5" data-path="../TeamTalk源码解析/05服务器端msg_server源码分析.html">
  353. <a href="../TeamTalk源码解析/05服务器端msg_server源码分析.html">
  354. 05 服务器端msg_server源码分析
  355. </a>
  356. </li>
  357. <li class="chapter " data-level="6.1.6" data-path="../TeamTalk源码解析/06服务器端login_server源码分析.html">
  358. <a href="../TeamTalk源码解析/06服务器端login_server源码分析.html">
  359. 06 服务器端login_server源码分析
  360. </a>
  361. </li>
  362. <li class="chapter " data-level="6.1.7" data-path="../TeamTalk源码解析/07服务器端msfs源码分析.html">
  363. <a href="../TeamTalk源码解析/07服务器端msfs源码分析.html">
  364. 07 服务器端msfs源码分析
  365. </a>
  366. </li>
  367. <li class="chapter " data-level="6.1.8" data-path="../TeamTalk源码解析/08服务器端file_server源码分析.html">
  368. <a href="../TeamTalk源码解析/08服务器端file_server源码分析.html">
  369. 08 服务器端file_server源码分析
  370. </a>
  371. </li>
  372. <li class="chapter " data-level="6.1.9" data-path="../TeamTalk源码解析/09服务器端route_server源码分析.html">
  373. <a href="../TeamTalk源码解析/09服务器端route_server源码分析.html">
  374. 09 服务器端route_server源码分析
  375. </a>
  376. </li>
  377. <li class="chapter " data-level="6.1.10" data-path="../TeamTalk源码解析/10开放一个TeamTalk测试服务器地址和几个测试账号.html">
  378. <a href="../TeamTalk源码解析/10开放一个TeamTalk测试服务器地址和几个测试账号.html">
  379. 10 开放一个TeamTalk测试服务器地址和几个测试账号
  380. </a>
  381. </li>
  382. <li class="chapter " data-level="6.1.11" data-path="../TeamTalk源码解析/11pc客户端源码分析.html">
  383. <a href="../TeamTalk源码解析/11pc客户端源码分析.html">
  384. 11 pc客户端源码分析
  385. </a>
  386. </li>
  387. </ul>
  388. </li>
  389. <li class="divider"></li>
  390. <li class="chapter " data-level="7.1" data-path="../libevent源码深度剖析/">
  391. <a href="../libevent源码深度剖析/">
  392. libevent源码深度剖析
  393. </a>
  394. <ul class="articles">
  395. <li class="chapter " data-level="7.1.1" data-path="../libevent源码深度剖析/libevent源码深度剖析01.html">
  396. <a href="../libevent源码深度剖析/libevent源码深度剖析01.html">
  397. libevent源码深度剖析01
  398. </a>
  399. </li>
  400. <li class="chapter " data-level="7.1.2" data-path="../libevent源码深度剖析/libevent源码深度剖析02.html">
  401. <a href="../libevent源码深度剖析/libevent源码深度剖析02.html">
  402. libevent源码深度剖析02
  403. </a>
  404. </li>
  405. <li class="chapter " data-level="7.1.3" data-path="../libevent源码深度剖析/libevent源码深度剖析03.html">
  406. <a href="../libevent源码深度剖析/libevent源码深度剖析03.html">
  407. libevent源码深度剖析03
  408. </a>
  409. </li>
  410. <li class="chapter " data-level="7.1.4" data-path="../libevent源码深度剖析/libevent源码深度剖析04.html">
  411. <a href="../libevent源码深度剖析/libevent源码深度剖析04.html">
  412. libevent源码深度剖析04
  413. </a>
  414. </li>
  415. <li class="chapter " data-level="7.1.5" data-path="../libevent源码深度剖析/libevent源码深度剖析05.html">
  416. <a href="../libevent源码深度剖析/libevent源码深度剖析05.html">
  417. libevent源码深度剖析05
  418. </a>
  419. </li>
  420. <li class="chapter " data-level="7.1.6" data-path="../libevent源码深度剖析/libevent源码深度剖析06.html">
  421. <a href="../libevent源码深度剖析/libevent源码深度剖析06.html">
  422. libevent源码深度剖析06
  423. </a>
  424. </li>
  425. <li class="chapter " data-level="7.1.7" data-path="../libevent源码深度剖析/libevent源码深度剖析07.html">
  426. <a href="../libevent源码深度剖析/libevent源码深度剖析07.html">
  427. libevent源码深度剖析07
  428. </a>
  429. </li>
  430. <li class="chapter " data-level="7.1.8" data-path="../libevent源码深度剖析/libevent源码深度剖析08.html">
  431. <a href="../libevent源码深度剖析/libevent源码深度剖析08.html">
  432. libevent源码深度剖析08
  433. </a>
  434. </li>
  435. <li class="chapter " data-level="7.1.9" data-path="../libevent源码深度剖析/libevent源码深度剖析09.html">
  436. <a href="../libevent源码深度剖析/libevent源码深度剖析09.html">
  437. libevent源码深度剖析09
  438. </a>
  439. </li>
  440. <li class="chapter " data-level="7.1.10" data-path="../libevent源码深度剖析/libevent源码深度剖析10.html">
  441. <a href="../libevent源码深度剖析/libevent源码深度剖析10.html">
  442. libevent源码深度剖析10
  443. </a>
  444. </li>
  445. <li class="chapter " data-level="7.1.11" data-path="../libevent源码深度剖析/libevent源码深度剖析11.html">
  446. <a href="../libevent源码深度剖析/libevent源码深度剖析11.html">
  447. libevent源码深度剖析11
  448. </a>
  449. </li>
  450. <li class="chapter " data-level="7.1.12" data-path="../libevent源码深度剖析/libevent源码深度剖析12.html">
  451. <a href="../libevent源码深度剖析/libevent源码深度剖析12.html">
  452. libevent源码深度剖析12
  453. </a>
  454. </li>
  455. <li class="chapter " data-level="7.1.13" data-path="../libevent源码深度剖析/libevent源码深度剖析13.html">
  456. <a href="../libevent源码深度剖析/libevent源码深度剖析13.html">
  457. libevent源码深度剖析13
  458. </a>
  459. </li>
  460. </ul>
  461. </li>
  462. <li class="chapter " data-level="7.2" data-path="../leveldb源码分析/">
  463. <a href="../leveldb源码分析/">
  464. leveldb源码分析
  465. </a>
  466. <ul class="articles">
  467. <li class="chapter " data-level="7.2.1" data-path="../leveldb源码分析/leveldb源码分析1.html">
  468. <a href="../leveldb源码分析/leveldb源码分析1.html">
  469. leveldb源码分析1
  470. </a>
  471. </li>
  472. <li class="chapter " data-level="7.2.2" data-path="../leveldb源码分析/leveldb源码分析2.html">
  473. <a href="../leveldb源码分析/leveldb源码分析2.html">
  474. leveldb源码分析2
  475. </a>
  476. </li>
  477. <li class="chapter " data-level="7.2.3" data-path="../leveldb源码分析/leveldb源码分析3.html">
  478. <a href="../leveldb源码分析/leveldb源码分析3.html">
  479. leveldb源码分析3
  480. </a>
  481. </li>
  482. <li class="chapter " data-level="7.2.4" data-path="../leveldb源码分析/leveldb源码分析4.html">
  483. <a href="../leveldb源码分析/leveldb源码分析4.html">
  484. leveldb源码分析4
  485. </a>
  486. </li>
  487. <li class="chapter " data-level="7.2.5" data-path="../leveldb源码分析/leveldb源码分析5.html">
  488. <a href="../leveldb源码分析/leveldb源码分析5.html">
  489. leveldb源码分析5
  490. </a>
  491. </li>
  492. <li class="chapter " data-level="7.2.6" data-path="../leveldb源码分析/leveldb源码分析6.html">
  493. <a href="../leveldb源码分析/leveldb源码分析6.html">
  494. leveldb源码分析6
  495. </a>
  496. </li>
  497. <li class="chapter " data-level="7.2.7" data-path="../leveldb源码分析/leveldb源码分析7.html">
  498. <a href="../leveldb源码分析/leveldb源码分析7.html">
  499. leveldb源码分析7
  500. </a>
  501. </li>
  502. <li class="chapter " data-level="7.2.8" data-path="../leveldb源码分析/leveldb源码分析8.html">
  503. <a href="../leveldb源码分析/leveldb源码分析8.html">
  504. leveldb源码分析8
  505. </a>
  506. </li>
  507. <li class="chapter " data-level="7.2.9" data-path="../leveldb源码分析/leveldb源码分析9.html">
  508. <a href="../leveldb源码分析/leveldb源码分析9.html">
  509. leveldb源码分析9
  510. </a>
  511. </li>
  512. <li class="chapter " data-level="7.2.10" data-path="../leveldb源码分析/leveldb源码分析10.html">
  513. <a href="../leveldb源码分析/leveldb源码分析10.html">
  514. leveldb源码分析10
  515. </a>
  516. </li>
  517. <li class="chapter " data-level="7.2.11" data-path="../leveldb源码分析/leveldb源码分析11.html">
  518. <a href="../leveldb源码分析/leveldb源码分析11.html">
  519. leveldb源码分析11
  520. </a>
  521. </li>
  522. <li class="chapter " data-level="7.2.12" data-path="../leveldb源码分析/leveldb源码分析12.html">
  523. <a href="../leveldb源码分析/leveldb源码分析12.html">
  524. leveldb源码分析12
  525. </a>
  526. </li>
  527. <li class="chapter " data-level="7.2.13" data-path="../leveldb源码分析/leveldb源码分析13.html">
  528. <a href="../leveldb源码分析/leveldb源码分析13.html">
  529. leveldb源码分析13
  530. </a>
  531. </li>
  532. <li class="chapter " data-level="7.2.14" data-path="../leveldb源码分析/leveldb源码分析14.html">
  533. <a href="../leveldb源码分析/leveldb源码分析14.html">
  534. leveldb源码分析14
  535. </a>
  536. </li>
  537. <li class="chapter " data-level="7.2.15" data-path="../leveldb源码分析/leveldb源码分析15.html">
  538. <a href="../leveldb源码分析/leveldb源码分析15.html">
  539. leveldb源码分析15
  540. </a>
  541. </li>
  542. <li class="chapter " data-level="7.2.16" data-path="../leveldb源码分析/leveldb源码分析16.html">
  543. <a href="../leveldb源码分析/leveldb源码分析16.html">
  544. leveldb源码分析16
  545. </a>
  546. </li>
  547. <li class="chapter " data-level="7.2.17" data-path="../leveldb源码分析/leveldb源码分析17.html">
  548. <a href="../leveldb源码分析/leveldb源码分析17.html">
  549. leveldb源码分析17
  550. </a>
  551. </li>
  552. <li class="chapter " data-level="7.2.18" data-path="../leveldb源码分析/leveldb源码分析18.html">
  553. <a href="../leveldb源码分析/leveldb源码分析18.html">
  554. leveldb源码分析18
  555. </a>
  556. </li>
  557. <li class="chapter " data-level="7.2.19" data-path="../leveldb源码分析/leveldb源码分析19.html">
  558. <a href="../leveldb源码分析/leveldb源码分析19.html">
  559. leveldb源码分析19
  560. </a>
  561. </li>
  562. <li class="chapter " data-level="7.2.20" data-path="../leveldb源码分析/leveldb源码分析20.html">
  563. <a href="../leveldb源码分析/leveldb源码分析20.html">
  564. leveldb源码分析20
  565. </a>
  566. </li>
  567. <li class="chapter " data-level="7.2.21" data-path="../leveldb源码分析/leveldb源码分析21.html">
  568. <a href="../leveldb源码分析/leveldb源码分析21.html">
  569. leveldb源码分析21
  570. </a>
  571. </li>
  572. <li class="chapter " data-level="7.2.22" data-path="../leveldb源码分析/leveldb源码分析22.html">
  573. <a href="../leveldb源码分析/leveldb源码分析22.html">
  574. leveldb源码分析22
  575. </a>
  576. </li>
  577. </ul>
  578. </li>
  579. <li class="divider"></li>
  580. <li class="chapter " data-level="8.1" data-path="../Memcached源码分析/">
  581. <a href="../Memcached源码分析/">
  582. Memcached源码分析
  583. </a>
  584. <ul class="articles">
  585. <li class="chapter " data-level="8.1.1" data-path="../Memcached源码分析/00服务器资源调整.html">
  586. <a href="../Memcached源码分析/00服务器资源调整.html">
  587. 00 服务器资源调整
  588. </a>
  589. </li>
  590. <li class="chapter " data-level="8.1.2" data-path="../Memcached源码分析/01初始化参数解析.html">
  591. <a href="../Memcached源码分析/01初始化参数解析.html">
  592. 01 初始化参数解析
  593. </a>
  594. </li>
  595. <li class="chapter " data-level="8.1.3" data-path="../Memcached源码分析/02网络监听的建立.html">
  596. <a href="../Memcached源码分析/02网络监听的建立.html">
  597. 02 网络监听的建立
  598. </a>
  599. </li>
  600. <li class="chapter " data-level="8.1.4" data-path="../Memcached源码分析/03网络连接建立.html">
  601. <a href="../Memcached源码分析/03网络连接建立.html">
  602. 03 网络连接建立
  603. </a>
  604. </li>
  605. <li class="chapter " data-level="8.1.5" data-path="../Memcached源码分析/04内存初始化.html">
  606. <a href="../Memcached源码分析/04内存初始化.html">
  607. 04 内存初始化
  608. </a>
  609. </li>
  610. <li class="chapter " data-level="8.1.6" data-path="../Memcached源码分析/05资源初始化.html">
  611. <a href="../Memcached源码分析/05资源初始化.html">
  612. 05 资源初始化
  613. </a>
  614. </li>
  615. <li class="chapter " data-level="8.1.7" data-path="../Memcached源码分析/06get过程.html">
  616. <a href="../Memcached源码分析/06get过程.html">
  617. 06 get过程
  618. </a>
  619. </li>
  620. <li class="chapter " data-level="8.1.8" data-path="../Memcached源码分析/07cas属性.html">
  621. <a href="../Memcached源码分析/07cas属性.html">
  622. 07 cas属性
  623. </a>
  624. </li>
  625. <li class="chapter " data-level="8.1.9" data-path="../Memcached源码分析/08内存池.html">
  626. <a href="../Memcached源码分析/08内存池.html">
  627. 08 内存池
  628. </a>
  629. </li>
  630. <li class="chapter " data-level="8.1.10" data-path="../Memcached源码分析/09连接队列.html">
  631. <a href="../Memcached源码分析/09连接队列.html">
  632. 09 连接队列
  633. </a>
  634. </li>
  635. <li class="chapter " data-level="8.1.11" data-path="../Memcached源码分析/10Hash表操作.html">
  636. <a href="../Memcached源码分析/10Hash表操作.html">
  637. 10 Hash表操作
  638. </a>
  639. </li>
  640. <li class="chapter " data-level="8.1.12" data-path="../Memcached源码分析/12set操作.html">
  641. <a href="../Memcached源码分析/12set操作.html">
  642. 12 set操作
  643. </a>
  644. </li>
  645. <li class="chapter " data-level="8.1.13" data-path="../Memcached源码分析/13do_item_alloc操作.html">
  646. <a href="../Memcached源码分析/13do_item_alloc操作.html">
  647. 13 do_item_alloc操作
  648. </a>
  649. </li>
  650. <li class="chapter " data-level="8.1.14" data-path="../Memcached源码分析/14item结构.html">
  651. <a href="../Memcached源码分析/14item结构.html">
  652. 14 item结构
  653. </a>
  654. </li>
  655. <li class="chapter " data-level="8.1.15" data-path="../Memcached源码分析/15Hash表扩容.html">
  656. <a href="../Memcached源码分析/15Hash表扩容.html">
  657. 15 Hash表扩容
  658. </a>
  659. </li>
  660. <li class="chapter " data-level="8.1.16" data-path="../Memcached源码分析/16线程交互.html">
  661. <a href="../Memcached源码分析/16线程交互.html">
  662. 16 线程交互
  663. </a>
  664. </li>
  665. <li class="chapter " data-level="8.1.17" data-path="../Memcached源码分析/17状态机.html">
  666. <a href="../Memcached源码分析/17状态机.html">
  667. 17 状态机
  668. </a>
  669. </li>
  670. </ul>
  671. </li>
  672. <li class="divider"></li>
  673. <li class="chapter " data-level="9.1" data-path="../游戏开发专题/">
  674. <a href="../游戏开发专题/">
  675. 游戏开发专题
  676. </a>
  677. <ul class="articles">
  678. <li class="chapter " data-level="9.1.1" data-path="../游戏开发专题/1游戏服务器开发的基本体系与服务器端开发的一些建议.html">
  679. <a href="../游戏开发专题/1游戏服务器开发的基本体系与服务器端开发的一些建议.html">
  680. 1 游戏服务器开发的基本体系与服务器端开发的一些建议
  681. </a>
  682. </li>
  683. <li class="chapter " data-level="9.1.2" data-path="../游戏开发专题/2网络游戏服务器开发框架设计介绍.html">
  684. <a href="../游戏开发专题/2网络游戏服务器开发框架设计介绍.html">
  685. 2 网络游戏服务器开发框架设计介绍
  686. </a>
  687. </li>
  688. <li class="chapter " data-level="9.1.3" data-path="../游戏开发专题/3游戏后端开发需要掌握的知识.html">
  689. <a href="../游戏开发专题/3游戏后端开发需要掌握的知识.html">
  690. 3 游戏后端开发需要掌握的知识
  691. </a>
  692. </li>
  693. <li class="chapter " data-level="9.1.4" data-path="../游戏开发专题/4关于游戏服务端架构的整理.html">
  694. <a href="../游戏开发专题/4关于游戏服务端架构的整理.html">
  695. 4 关于游戏服务端架构的整理
  696. </a>
  697. </li>
  698. <li class="chapter " data-level="9.1.5" data-path="../游戏开发专题/5各类游戏对应的服务端架构.html">
  699. <a href="../游戏开发专题/5各类游戏对应的服务端架构.html">
  700. 5 各类游戏对应的服务端架构
  701. </a>
  702. </li>
  703. <li class="chapter " data-level="9.1.6" data-path="../游戏开发专题/6从腾讯QQgame高性能服务器集群架构看“分而治之”与“自治”等分布式架构设计原则.html">
  704. <a href="../游戏开发专题/6从腾讯QQgame高性能服务器集群架构看“分而治之”与“自治”等分布式架构设计原则.html">
  705. 6 从腾讯QQgame高性能服务器集群架构看“分而治之”与“自治”等分布式架构设计原则
  706. </a>
  707. </li>
  708. <li class="chapter " data-level="9.1.7" data-path="../游戏开发专题/7QQ游戏百万人同时在线服务器架构实现.html">
  709. <a href="../游戏开发专题/7QQ游戏百万人同时在线服务器架构实现.html">
  710. 7 QQ游戏百万人同时在线服务器架构实现
  711. </a>
  712. </li>
  713. <li class="chapter " data-level="9.1.8" data-path="../游戏开发专题/8大型多人在线游戏服务器架构设计.html">
  714. <a href="../游戏开发专题/8大型多人在线游戏服务器架构设计.html">
  715. 8 大型多人在线游戏服务器架构设计
  716. </a>
  717. </li>
  718. <li class="chapter " data-level="9.1.9" data-path="../游戏开发专题/9百万用户级游戏服务器架构设计.html">
  719. <a href="../游戏开发专题/9百万用户级游戏服务器架构设计.html">
  720. 9 百万用户级游戏服务器架构设计
  721. </a>
  722. </li>
  723. <li class="chapter " data-level="9.1.10" data-path="../游戏开发专题/10十万在线的WebGame的数据库设计思路.html">
  724. <a href="../游戏开发专题/10十万在线的WebGame的数据库设计思路.html">
  725. 10 十万在线的WebGame的数据库设计思路
  726. </a>
  727. </li>
  728. <li class="chapter " data-level="9.1.11" data-path="../游戏开发专题/11一种高性能网络游戏服务器架构设计.html">
  729. <a href="../游戏开发专题/11一种高性能网络游戏服务器架构设计.html">
  730. 11 一种高性能网络游戏服务器架构设计
  731. </a>
  732. </li>
  733. <li class="chapter " data-level="9.1.12" data-path="../游戏开发专题/12经典游戏服务器端架构概述.html">
  734. <a href="../游戏开发专题/12经典游戏服务器端架构概述.html">
  735. 12 经典游戏服务器端架构概述
  736. </a>
  737. </li>
  738. <li class="chapter " data-level="9.1.13" data-path="../游戏开发专题/13游戏跨服架构进化之路.html">
  739. <a href="../游戏开发专题/13游戏跨服架构进化之路.html">
  740. 13 游戏跨服架构进化之路
  741. </a>
  742. </li>
  743. </ul>
  744. </li>
  745. <li class="header">Part IV</li>
  746. <li class="chapter " data-level="10.1" data-path="../程序员面试题精讲/">
  747. <a href="../程序员面试题精讲/">
  748. 程序员面试题精讲
  749. </a>
  750. <ul class="articles">
  751. <li class="chapter " data-level="10.1.1" data-path="../程序员面试题精讲/腾讯后台开发实习生技能要求.html">
  752. <a href="../程序员面试题精讲/腾讯后台开发实习生技能要求.html">
  753. 腾讯后台开发实习生技能要求
  754. </a>
  755. </li>
  756. <li class="chapter " data-level="10.1.2" data-path="../程序员面试题精讲/聊聊如何拿大厂的offer.html">
  757. <a href="../程序员面试题精讲/聊聊如何拿大厂的offer.html">
  758. 聊聊如何拿大厂的 offer
  759. </a>
  760. </li>
  761. <li class="chapter " data-level="10.1.3" data-path="../程序员面试题精讲/网络通信题目集锦.html">
  762. <a href="../程序员面试题精讲/网络通信题目集锦.html">
  763. 网络通信题目集锦
  764. </a>
  765. </li>
  766. <li class="chapter " data-level="10.1.4" data-path="../程序员面试题精讲/我面试后端开发经理的经历.html">
  767. <a href="../程序员面试题精讲/我面试后端开发经理的经历.html">
  768. 我面试后端开发经理的经历
  769. </a>
  770. </li>
  771. <li class="chapter " data-level="10.1.5" data-path="../程序员面试题精讲/LinuxCC++后端开发面试问哪些问题.html">
  772. <a href="../程序员面试题精讲/LinuxCC++后端开发面试问哪些问题.html">
  773. Linux C/C++后端开发面试问哪些问题
  774. </a>
  775. </li>
  776. </ul>
  777. </li>
  778. <li class="chapter " data-level="10.2" data-path="../职业规划/">
  779. <a href="../职业规划/">
  780. 职业规划
  781. </a>
  782. <ul class="articles">
  783. <li class="chapter " data-level="10.2.1" data-path="../职业规划/给工作4年迷茫的程序员们的一点建议.html">
  784. <a href="../职业规划/给工作4年迷茫的程序员们的一点建议.html">
  785. 给工作 4 年迷茫的程序员们的一点建议
  786. </a>
  787. </li>
  788. <li class="chapter " data-level="10.2.2" data-path="../职业规划/聊聊技术人员的常见的职业问题.html">
  789. <a href="../职业规划/聊聊技术人员的常见的职业问题.html">
  790. 聊聊技术人员的常见的职业问题
  791. </a>
  792. </li>
  793. <li class="chapter " data-level="10.2.3" data-path="../职业规划/写给那些傻傻想做服务器开发的朋友.html">
  794. <a href="../职业规划/写给那些傻傻想做服务器开发的朋友.html">
  795. 写给那些傻傻想做服务器开发的朋友
  796. </a>
  797. </li>
  798. </ul>
  799. </li>
  800. <li class="chapter " data-level="10.3" data-path="../自我提升与开源代码/">
  801. <a href="../自我提升与开源代码/">
  802. 自我提升与开源代码
  803. </a>
  804. <ul class="articles">
  805. <li class="chapter " data-level="10.3.1" data-path="../自我提升与开源代码/2020年好好读一读开源代码吧.html">
  806. <a href="../自我提升与开源代码/2020年好好读一读开源代码吧.html">
  807. 2020 年好好读一读开源代码吧
  808. </a>
  809. </li>
  810. </ul>
  811. </li>
  812. <li class="chapter " data-level="10.4" data-path="../后端开发相关的书籍/">
  813. <a href="../后端开发相关的书籍/">
  814. 后端开发相关的书籍
  815. </a>
  816. <ul class="articles">
  817. <li class="chapter " data-level="10.4.1" data-path="../后端开发相关的书籍/后台开发应该读的书.html">
  818. <a href="../后端开发相关的书籍/后台开发应该读的书.html">
  819. 后台开发应该读的书
  820. </a>
  821. </li>
  822. </ul>
  823. </li>
  824. <li class="chapter " data-level="10.5" data-path="../程序员的简历/">
  825. <a href="../程序员的简历/">
  826. 程序员的简历
  827. </a>
  828. <ul class="articles">
  829. <li class="chapter " data-level="10.5.1" data-path="../程序员的简历/程序员如何写简历.html">
  830. <a href="../程序员的简历/程序员如何写简历.html">
  831. 程序员如何写简历
  832. </a>
  833. </li>
  834. </ul>
  835. </li>
  836. <li class="chapter " data-level="10.6" data-path="../程序员的薪资与年终奖那些事儿/">
  837. <a href="../程序员的薪资与年终奖那些事儿/">
  838. 程序员的薪资与年终奖那些事儿
  839. </a>
  840. <ul class="articles">
  841. <li class="chapter " data-level="10.6.1" data-path="../程序员的薪资与年终奖那些事儿/技术面试与HR谈薪资技巧.html">
  842. <a href="../程序员的薪资与年终奖那些事儿/技术面试与HR谈薪资技巧.html">
  843. 技术面试与HR谈薪资技巧
  844. </a>
  845. </li>
  846. <li class="chapter " data-level="10.6.2" data-path="../程序员的薪资与年终奖那些事儿/聊一聊程序员如何增加收入.html">
  847. <a href="../程序员的薪资与年终奖那些事儿/聊一聊程序员如何增加收入.html">
  848. 聊一聊程序员如何增加收入
  849. </a>
  850. </li>
  851. <li class="chapter " data-level="10.6.3" data-path="../程序员的薪资与年终奖那些事儿/谈一谈年终奖.html">
  852. <a href="../程序员的薪资与年终奖那些事儿/谈一谈年终奖.html">
  853. 谈一谈年终奖
  854. </a>
  855. </li>
  856. </ul>
  857. </li>
  858. <li class="chapter " data-level="10.7" data-path="../程序员的烦心事/">
  859. <a href="../程序员的烦心事/">
  860. 程序员的烦心事
  861. </a>
  862. <ul class="articles">
  863. <li class="chapter " data-level="10.7.1" data-path="../程序员的烦心事/拒绝了一家公司的offer后,他们的副总和hr总监同时打电话来询问拒绝原因并极力要求加入,我该不该去?.html">
  864. <a href="../程序员的烦心事/拒绝了一家公司的offer后,他们的副总和hr总监同时打电话来询问拒绝原因并极力要求加入,我该不该去?.html">
  865. 拒绝了一家公司的offer后,他们的副总和hr总监同时打电话来询问拒绝原因并极力要求加入,我该不该去?
  866. </a>
  867. </li>
  868. <li class="chapter " data-level="10.7.2" data-path="../程序员的烦心事/我是一名程序员,结婚时女友要求我用两年的工资作为彩礼,我该不该答应?.html">
  869. <a href="../程序员的烦心事/我是一名程序员,结婚时女友要求我用两年的工资作为彩礼,我该不该答应?.html">
  870. 我是一名程序员,结婚时女友要求我用两年的工资作为彩礼,我该不该答应?
  871. </a>
  872. </li>
  873. </ul>
  874. </li>
  875. <li class="chapter " data-level="10.8" data-path="../作者的故事/">
  876. <a href="../作者的故事/">
  877. 作者的故事
  878. </a>
  879. <ul class="articles">
  880. <li class="chapter " data-level="10.8.1" data-path="../作者的故事/我的2019.html">
  881. <a href="../作者的故事/我的2019.html">
  882. 我的 2019
  883. </a>
  884. </li>
  885. <li class="chapter " data-level="10.8.2" data-path="../作者的故事/我是如何年薪五十万的.html">
  886. <a href="../作者的故事/我是如何年薪五十万的.html">
  887. 我是如何年薪五十万的
  888. </a>
  889. </li>
  890. </ul>
  891. </li>
  892. <li class="divider"></li>
  893. <li>
  894. <a href="https://www.gitbook.com" target="blank" class="gitbook-link">
  895. Published with GitBook
  896. </a>
  897. </li>
  898. </ul>
  899. </nav>
  900. </div>
  901. <!-- Content nav -->
  902. <div class="book-anchor">
  903. <div class="book-anchor-title">在这篇文章中:</div>
  904. <div class="book-anchor-body">
  905. </div>
  906. </div>
  907. <div class="book-body">
  908. <div class="body-inner">
  909. <div class="book-header" role="navigation">
  910. <!-- Title -->
  911. <h1>
  912. <i class="fa fa-circle-o-notch fa-spin"></i>
  913. <a href="../.." >服务器开发中网络数据分析与故障排查经验漫谈</a>
  914. </h1>
  915. </div>
  916. <div class="page-wrapper" tabindex="-1" role="main">
  917. <div class="page-inner">
  918. <div id="book-search-results">
  919. <div class="search-noresults">
  920. <section class="normal markdown-section">
  921. <div id="anchor-navigation-ex-navbar"><i class="fa fa-navicon"></i><ul><li><span class="title-icon "></span><a href="#&#x670D;&#x52A1;&#x5668;&#x5F00;&#x53D1;&#x4E2D;&#x7F51;&#x7EDC;&#x6570;&#x636E;&#x5206;&#x6790;&#x4E0E;&#x6545;&#x969C;&#x6392;&#x67E5;&#x7ECF;&#x9A8C;&#x6F2B;&#x8C08;"><b></b>&#x670D;&#x52A1;&#x5668;&#x5F00;&#x53D1;&#x4E2D;&#x7F51;&#x7EDC;&#x6570;&#x636E;&#x5206;&#x6790;&#x4E0E;&#x6545;&#x969C;&#x6392;&#x67E5;&#x7ECF;&#x9A8C;&#x6F2B;&#x8C08;</a></li><ul><li><span class="title-icon "></span><a href="#&#x4E8C;&#x3001;&#x5E38;&#x7528;&#x7684;&#x7F51;&#x7EDC;&#x6545;&#x969C;&#x6392;&#x67E5;&#x5DE5;&#x5177;"><b></b>&#x4E8C;&#x3001;&#x5E38;&#x7528;&#x7684;&#x7F51;&#x7EDC;&#x6545;&#x969C;&#x6392;&#x67E5;&#x5DE5;&#x5177;</a></li><li><span class="title-icon "></span><a href="#&#x4E09;&#x3001;-tcp&#x4E09;&#x6B21;&#x63E1;&#x624B;&#x548C;&#x56DB;&#x6B21;&#x6325;&#x624B;&#x8FC7;&#x7A0B;&#x89E3;&#x6790;"><b></b>&#x4E09;&#x3001; tcp&#x4E09;&#x6B21;&#x63E1;&#x624B;&#x548C;&#x56DB;&#x6B21;&#x6325;&#x624B;&#x8FC7;&#x7A0B;&#x89E3;&#x6790;</a></li><li><span class="title-icon "></span><a href="#&#x56DB;&#x3001;-&#x5173;&#x4E8E;&#x8DE8;&#x7CFB;&#x7EDF;&#x4E0E;&#x8DE8;&#x8BED;&#x8A00;&#x4E4B;&#x95F4;&#x7684;&#x7F51;&#x7EDC;&#x901A;&#x4FE1;&#x8FDE;&#x901A;&#x95EE;&#x9898;"><b></b>&#x56DB;&#x3001; &#x5173;&#x4E8E;&#x8DE8;&#x7CFB;&#x7EDF;&#x4E0E;&#x8DE8;&#x8BED;&#x8A00;&#x4E4B;&#x95F4;&#x7684;&#x7F51;&#x7EDC;&#x901A;&#x4FE1;&#x8FDE;&#x901A;&#x95EE;&#x9898;</a></li></ul></ul></div><h1 id="&#x670D;&#x52A1;&#x5668;&#x5F00;&#x53D1;&#x4E2D;&#x7F51;&#x7EDC;&#x6570;&#x636E;&#x5206;&#x6790;&#x4E0E;&#x6545;&#x969C;&#x6392;&#x67E5;&#x7ECF;&#x9A8C;&#x6F2B;&#x8C08;"><a name="&#x670D;&#x52A1;&#x5668;&#x5F00;&#x53D1;&#x4E2D;&#x7F51;&#x7EDC;&#x6570;&#x636E;&#x5206;&#x6790;&#x4E0E;&#x6545;&#x969C;&#x6392;&#x67E5;&#x7ECF;&#x9A8C;&#x6F2B;&#x8C08;" class="anchor-navigation-ex-anchor" href="#&#x670D;&#x52A1;&#x5668;&#x5F00;&#x53D1;&#x4E2D;&#x7F51;&#x7EDC;&#x6570;&#x636E;&#x5206;&#x6790;&#x4E0E;&#x6545;&#x969C;&#x6392;&#x67E5;&#x7ECF;&#x9A8C;&#x6F2B;&#x8C08;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x670D;&#x52A1;&#x5668;&#x5F00;&#x53D1;&#x4E2D;&#x7F51;&#x7EDC;&#x6570;&#x636E;&#x5206;&#x6790;&#x4E0E;&#x6545;&#x969C;&#x6392;&#x67E5;&#x7ECF;&#x9A8C;&#x6F2B;&#x8C08;</h1>
  922. <p>&#x200B; </p>
  923. <p>&#x4E00;&#x3001; &#x64CD;&#x4F5C;&#x7CFB;&#x7EDF;&#x63D0;&#x4F9B;&#x7684;&#x7F51;&#x7EDC;&#x63A5;&#x53E3;</p>
  924. <p>&#x4E3A;&#x4E86;&#x80FD;&#x66F4;&#x597D;&#x7684;&#x6392;&#x67E5;&#x7F51;&#x7EDC;&#x901A;&#x4FE1;&#x95EE;&#x9898;&#xFF0C;&#x6211;&#x4EEC;&#x9700;&#x8981;&#x719F;&#x6089;&#x64CD;&#x4F5C;&#x7CFB;&#x7EDF;&#x63D0;&#x4F9B;&#x7684;&#x4EE5;&#x4E0B;&#x7F51;&#x7EDC;&#x63A5;&#x53E3;&#x51FD;&#x6570;&#xFF0C;&#x5217;&#x8868;&#x5982;&#x4E0B;&#xFF1A;</p>
  925. <table>
  926. <thead>
  927. <tr>
  928. <th>&#x63A5;&#x53E3;&#x51FD;&#x6570;&#x540D;&#x79F0;</th>
  929. <th>&#x63A5;&#x53E3;&#x51FD;&#x6570;&#x63CF;&#x8FF0;</th>
  930. <th>&#x63A5;&#x53E3;&#x51FD;&#x6570;&#x7B7E;&#x540D;</th>
  931. </tr>
  932. </thead>
  933. <tbody>
  934. <tr>
  935. <td>socket</td>
  936. <td>&#x521B;&#x5EFA;&#x5957;&#x63A5;&#x5B57;</td>
  937. <td>int socket(int domain, int type, int protocol);</td>
  938. </tr>
  939. <tr>
  940. <td>connect</td>
  941. <td>&#x8FDE;&#x63A5;&#x4E00;&#x4E2A;&#x670D;&#x52A1;&#x5668;&#x5730;&#x5740;</td>
  942. <td>int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen);</td>
  943. </tr>
  944. <tr>
  945. <td>send</td>
  946. <td>&#x53D1;&#x9001;&#x6570;&#x636E;</td>
  947. <td>ssize_t send(int sockfd, const void *buf, size_t len, int flags);</td>
  948. </tr>
  949. <tr>
  950. <td>recv</td>
  951. <td>&#x6536;&#x53D6;&#x6570;&#x636E;</td>
  952. <td>ssize_t recv(int sockfd, void *buf, size_t len, int flags);</td>
  953. </tr>
  954. <tr>
  955. <td>accept</td>
  956. <td>&#x63A5;&#x6536;&#x8FDE;&#x63A5;</td>
  957. <td>int accept4(int sockfd, struct sockaddr <em>addr, socklen_t </em>addrlen, int flags);</td>
  958. </tr>
  959. <tr>
  960. <td>shutdown</td>
  961. <td>&#x5173;&#x95ED;&#x6536;&#x53D1;&#x94FE;&#x8DEF;</td>
  962. <td>int shutdown(int sockfd, int how);</td>
  963. </tr>
  964. <tr>
  965. <td>close</td>
  966. <td>&#x5173;&#x95ED;&#x5957;&#x63A5;&#x5B57;</td>
  967. <td>int close(int fd);</td>
  968. </tr>
  969. <tr>
  970. <td>setsockopt</td>
  971. <td>&#x8BBE;&#x7F6E;&#x5957;&#x63A5;&#x5B57;&#x9009;&#x9879;</td>
  972. <td>int setsockopt(int sockfd, int level, int optname, const void *optval, socklen_t optlen);</td>
  973. </tr>
  974. </tbody>
  975. </table>
  976. <p>&#x6CE8;&#x610F;&#xFF1A;&#x8FD9;&#x91CC;&#x4EE5;bekeley&#x63D0;&#x4F9B;&#x7684;&#x6807;&#x51C6;&#x4E3A;&#x4F8B;&#xFF0C;&#x4E0D;&#x5305;&#x62EC;&#x7279;&#x5B9A;&#x64CD;&#x4F5C;&#x7CFB;&#x7EDF;&#x4E0A;&#x7279;&#x6709;&#x7684;&#x63A5;&#x53E3;&#x51FD;&#x6570;&#xFF08;&#x5982;Windows&#x5E73;&#x53F0;&#x7684;WSASend&#xFF0C;linux&#x7684;accept4&#xFF09;&#xFF0C;&#x4E5F;&#x4E0D;&#x5305;&#x62EC;&#x5B9E;&#x9645;&#x4E0E;&#x7F51;&#x7EDC;&#x6570;&#x636E;&#x6765;&#x5F80;&#x4E0D;&#x76F8;&#x5173;&#x7684;&#x51FD;&#x6570;&#xFF08;&#x5982;select&#x3001;linux&#x7684;epoll&#xFF09;&#xFF0C;&#x8FD9;&#x91CC;&#x53EA;&#x8BA8;&#x8BBA;&#x4E0E;tcp&#x76F8;&#x5173;&#x7684;&#x63A5;&#x53E3;&#x51FD;&#x6570;&#xFF0C;&#x50CF;&#x4E0E;udp&#x76F8;&#x5173;&#x7684;&#x51FD;&#x6570;sendto/recvfrom&#x7B49;&#x51FD;&#x6570;&#x4E0E;&#x6B64;&#x7C7B;&#x4F3C;&#x3002;</p>
  977. <p>&#x4E0B;&#x9762;&#x8BA8;&#x8BBA;&#x4E00;&#x4E0B;&#x4EE5;&#x4E0A;&#x51FD;&#x6570;&#x7684;&#x4E00;&#x4E9B;&#x4F7F;&#x7528;&#x6CE8;&#x610F;&#x4E8B;&#x9879;&#xFF1A;</p>
  978. <p>1 &#x4EE5;&#x4E0A;&#x51FD;&#x6570;&#x5982;&#x679C;&#x8C03;&#x7528;&#x51FA;&#x9519;&#x540E;&#xFF0C;&#x8FD4;&#x56DE;&#x503C;&#x5747;&#x4E3A;-1&#xFF1B;&#x4F46;&#x662F;&#x8FD4;&#x56DE;&#x503C;&#x662F;-1&#xFF0C;&#x4E0D;&#x4E00;&#x5B9A;&#x4EE3;&#x8868;&#x51FA;&#x9519;&#xFF0C;&#x8FD9;&#x8FD8;&#x5F97;&#x6839;&#x636E;&#x5BF9;&#x5E94;&#x7684;&#x5957;&#x63A5;&#x5B57;&#x6A21;&#x5F0F;&#xFF08;&#x963B;&#x585E;&#x4E0E;&#x975E;&#x963B;&#x585E;&#x6A21;&#x5F0F;&#xFF09;&#x3002;</p>
  979. <p>2 &#x9ED8;&#x8BA4;&#x4F7F;&#x7528;&#x7684;socket&#x51FD;&#x6570;&#x521B;&#x5EFA;&#x7684;&#x5957;&#x63A5;&#x5B57;&#x662F;&#x963B;&#x585E;&#x6A21;&#x5F0F;&#x7684;&#xFF0C;&#x53EF;&#x4EE5;&#x8C03;&#x7528;&#x76F8;&#x5173;&#x63A5;&#x53E3;&#x51FD;&#x6570;&#x5C06;&#x5176;&#x8BBE;&#x7F6E;&#x4E3A;&#x975E;&#x963B;&#x585E;&#x6A21;&#x5F0F;&#xFF08;Windows&#x5E73;&#x53F0;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;ioctlsocket&#x51FD;&#x6570;&#xFF0C;linux&#x5E73;&#x53F0;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;fcntl&#x51FD;&#x6570;&#xFF0C;&#x5177;&#x4F53;&#x8BBE;&#x7F6E;&#x65B9;&#x6CD5;&#x53EF;&#x4EE5;&#x53C2;&#x8003;<a href="http://mp.weixin.qq.com/s?__biz=MzU2MTQ1MzI3NQ==&amp;mid=2247483953&amp;idx=1&amp;sn=290847bffc273bbeb33ae1d71a53ab00&amp;chksm=fc79c385cb0e4a93d9a4f2d85184c10e8ac498aea6a87a7afe3641d8ed0d1b0e043c062560e8&amp;scene=21#wechat_redirect" target="_blank">&#x8FD9;&#x91CC;</a>&#x3002;&#xFF09;&#x3002;&#x963B;&#x585E;&#x6A21;&#x5F0F;&#x548C;&#x975E;&#x963B;&#x585E;&#x6A21;&#x5F0F;&#x7684;&#x5957;&#x63A5;&#x5B57;&#xFF0C;&#x5BF9;&#x670D;&#x52A1;&#x5668;&#x7684;&#x8FDE;&#x63A5;&#x670D;&#x52A1;&#x5668;&#x548C;&#x7F51;&#x7EDC;&#x6570;&#x636E;&#x7684;&#x6536;&#x53D1;&#x884C;&#x4E3A;&#x5F71;&#x54CD;&#x5F88;&#x5927;&#x3002;&#x8BE6;&#x60C5;&#x5982;&#x4E0B;&#xFF1A;</p>
  980. <p><strong>&#x963B;&#x585E;&#x6A21;&#x5F0F;</strong>&#x4E0B;&#xFF0C;connect&#x51FD;&#x6570;&#x5982;&#x679C;&#x4E0D;&#x80FD;&#x7ACB;&#x523B;&#x8FDE;&#x4E0A;&#x670D;&#x52A1;&#x5668;&#xFF0C;&#x4F1A;&#x5BFC;&#x81F4;&#x6267;&#x884C;&#x6D41;&#x963B;&#x585E;&#x5728;&#x90A3;&#x91CC;&#x4E00;&#x4F1A;&#x513F;&#xFF0C;&#x76F4;&#x5230;connect&#x8FDE;&#x63A5;&#x6210;&#x529F;&#x6216;&#x5931;&#x8D25;&#x6216;&#x7F51;&#x7EDC;&#x8D85;&#x65F6;&#xFF1B;&#x800C;&#x975E;&#x963B;&#x585E;&#x6A21;&#x5F0F;&#x4E0B;&#xFF0C;&#x65E0;&#x8BBA;&#x662F;&#x5426;&#x8FDE;&#x63A5;&#x6210;&#x529F;connect&#x5C06;&#x7ACB;&#x5373;&#x8FD4;&#x56DE;&#xFF0C;&#x6B64;&#x65F6;&#x5982;&#x679C;&#x672A;&#x8FDE;&#x63A5;&#x6210;&#x529F;&#xFF0C;&#x8FD4;&#x56DE;&#x503C;&#x5C06;&#x662F;-1&#xFF0C;&#x9519;&#x8BEF;&#x7801;&#x662F;EINPROGRESS&#xFF0C;&#x8868;&#x793A;&#x8FDE;&#x63A5;&#x64CD;&#x4F5C;&#x4ECD;&#x7136;&#x5728;&#x8FDB;&#x884C;&#x4E2D;&#x3002;Linux&#x5E73;&#x53F0;&#x540E;&#x7EED;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x4F7F;&#x7528;select/poll&#x7B49;&#x51FD;&#x6570;&#x68C0;&#x6D4B;&#x8BE5;socket&#x662F;&#x5426;&#x53EF;&#x5199;&#x6765;&#x5224;&#x65AD;&#x8FDE;&#x63A5;&#x662F;&#x5426;&#x6210;&#x529F;&#x3002;</p>
  981. <p><strong>&#x963B;&#x585E;&#x5957;&#x63A5;&#x5B57;&#x6A21;&#x5F0F;</strong>&#x4E0B;&#xFF0C;send&#x51FD;&#x6570;&#x5982;&#x679C;&#x7531;&#x4E8E;&#x5BF9;&#x7AEF;tcp&#x7A97;&#x53E3;&#x592A;&#x5C0F;&#xFF0C;&#x4E0D;&#x8DB3;&#x4EE5;&#x5C06;&#x5168;&#x90E8;&#x6570;&#x636E;&#x53D1;&#x9001;&#x51FA;&#x53BB;&#xFF0C;&#x5C06;&#x963B;&#x585E;&#x6267;&#x884C;&#x6D41;&#xFF0C;&#x76F4;&#x5230;&#x51FA;&#x9519;&#x6216;&#x8D85;&#x65F6;&#x6216;&#x8005;&#x5168;&#x90E8;&#x53D1;&#x9001;&#x51FA;&#x53BB;&#x4E3A;&#x6B62;&#xFF1B;&#x540C;&#x7406;recv&#x51FD;&#x6570;&#x5982;&#x679C;&#x5F53;&#x524D;&#x534F;&#x8BAE;&#x6808;&#x7CFB;&#x7EDF;&#x7F13;&#x51B2;&#x533A;&#x4E2D;&#x65E0;&#x6570;&#x636E;&#x53EF;&#x8BFB;&#xFF0C;&#x4E5F;&#x4F1A;&#x963B;&#x585E;&#x6267;&#x884C;&#x6D41;&#xFF0C;&#x76F4;&#x5230;&#x51FA;&#x9519;&#x6216;&#x8005;&#x8D85;&#x65F6;&#x6216;&#x8005;&#x8BFB;&#x53D6;&#x5230;&#x6570;&#x636E;&#x3002;send&#x548C;recv&#x51FD;&#x6570;&#x7684;&#x8D85;&#x65F6;&#x65F6;&#x95F4;&#x53EF;&#x4EE5;&#x53C2;&#x8003;&#x4E0B;&#x6587;&#x5173;&#x4E8E;&#x5E38;&#x7528;socket&#x9009;&#x9879;&#x7684;&#x4ECB;&#x7ECD;&#x3002;</p>
  982. <p><strong>&#x975E;&#x963B;&#x585E;&#x5957;&#x63A5;&#x5B57;&#x6A21;&#x5F0F;</strong>&#x4E0B;&#xFF0C;&#x5982;&#x679C;&#x7531;&#x4E8E;&#x5BF9;&#x7AEF;tcp&#x7A97;&#x53E3;&#x592A;&#x5C0F;&#xFF0C;&#x4E0D;&#x8DB3;&#x4EE5;&#x5C06;&#x6570;&#x636E;&#x53D1;&#x51FA;&#x53BB;&#xFF0C;&#x5B83;&#x5C06;&#x7ACB;&#x523B;&#x8FD4;&#x56DE;&#xFF0C;&#x4E0D;&#x4F1A;&#x963B;&#x585E;&#x6267;&#x884C;&#x6D41;&#xFF0C;&#x6B64;&#x65F6;&#x8FD4;&#x56DE;&#x503C;&#x4E3A;-1&#xFF0C;&#x9519;&#x8BEF;&#x7801;&#x662F;EAGAIN&#x6216;EWOULDBLOCK&#xFF0C;&#x8868;&#x793A;&#x5F53;&#x524D;&#x6570;&#x636E;&#x53D1;&#x4E0D;&#x51FA;&#x53BB;&#xFF0C;&#x5E0C;&#x671B;&#x4F60;&#x4E0B;&#x6B21;&#x518D;&#x8BD5;&#x3002;&#x4F46;&#x662F;&#x8FD4;&#x56DE;&#x503C;&#x5982;&#x679C;&#x662F;-1&#xFF0C;&#x4E5F;&#x53EF;&#x80FD;&#x662F;&#x771F;&#x6B63;&#x7684;&#x51FA;&#x9519;&#x4E86;&#xFF0C;&#x4E5F;&#x53EF;&#x80FD;&#x5F97;&#x5230;&#x9519;&#x8BEF;&#x7801;EINTR&#xFF0C;&#x8868;&#x793A;&#x88AB;linux&#x4FE1;&#x53F7;&#x4E2D;&#x65AD;&#x4E86;&#xFF0C;&#x8FD9;&#x70B9;&#x9700;&#x8981;&#x6CE8;&#x610F;&#x4E00;&#x4E0B;&#x3002;recv&#x51FD;&#x6570;&#x4E0E;send&#x51FD;&#x6570;&#x60C5;&#x5F62;&#x4E00;&#x6837;&#x3002;</p>
  983. <p>3 send&#x51FD;&#x6570;&#x867D;&#x7136;&#x540D;&#x79F0;&#x53EB;&#x201C;send&#x201D;&#xFF0C;&#x4F46;&#x662F;&#x5176;&#x5E76;&#x4E0D;&#x662F;&#x5C06;&#x6570;&#x636E;&#x53D1;&#x9001;&#x5230;&#x7F51;&#x7EDC;&#x4E0A;&#x53BB;&#xFF0C;&#x53EA;&#x662F;&#x5C06;&#x6570;&#x636E;&#x4ECE;&#x5E94;&#x7528;&#x5C42;&#x7F13;&#x51B2;&#x533A;&#x4E2D;&#x62F7;&#x8D1D;&#x5230;&#x534F;&#x8BAE;&#x6808;&#x5185;&#x6838;&#x7F13;&#x51B2;&#x533A;&#x4E2D;&#xFF0C;&#x5177;&#x4F53;&#x4EC0;&#x4E48;&#x65F6;&#x5019;&#x53D1;&#x9001;&#x5230;&#x7F51;&#x7EDC;&#x4E0A;&#x53BB;&#xFF0C;&#x4E0E;&#x534F;&#x8BAE;&#x6808;&#x672C;&#x8EAB;&#x884C;&#x4E3A;&#x6709;&#x5173;&#x7CFB;&#xFF08;socket&#x9009;&#x9879;nagle&#x7B97;&#x6CD5;&#x4E0E;&#x8FD9;&#x4E2A;&#x6709;&#x5173;&#x7CFB;&#xFF0C;&#x4E0B;&#x6587;&#x4ECB;&#x7ECD;&#x5E38;&#x89C1;&#x5957;&#x63A5;&#x5B57;&#x9009;&#x9879;&#x65F6;&#x4F1A;&#x4ECB;&#x7ECD;&#xFF09;&#xFF0C;&#x8FD9;&#x70B9;&#x9700;&#x8981;&#x7279;&#x522B;&#x6CE8;&#x610F;&#xFF0C;&#x6240;&#x4EE5;&#x5373;&#x4F7F;send&#x51FD;&#x6570;&#x8FD4;&#x56DE;&#x4E00;&#x4E2A;&#x5927;&#x4E8E;0&#x7684;&#x503C;n&#xFF0C;&#x4E5F;&#x4E0D;&#x80FD;&#x8868;&#x660E;&#x5DF2;&#x7ECF;&#x6709;n&#x4E2A;&#x5B57;&#x8282;&#x53D1;&#x9001;&#x5230;&#x7F51;&#x7EDC;&#x4E0A;&#x53BB;&#x4E86;&#x3002;&#x540C;&#x6837;&#x7684;&#x9053;&#x7406;&#xFF0C;recv&#x51FD;&#x6570;&#x4E5F;&#x4E0D;&#x662F;&#x4ECE;&#x7F51;&#x7EDC;&#x4E0A;&#x6536;&#x53D6;&#x6570;&#x636E;&#xFF0C;&#x53EA;&#x662F;&#x4ECE;&#x534F;&#x8BAE;&#x6808;&#x5185;&#x6838;&#x7F13;&#x51B2;&#x533A;&#x62F7;&#x8D1D;&#x6570;&#x636E;&#x81F3;&#x5E94;&#x7528;&#x5C42;&#x7F13;&#x51B2;&#x533A;&#xFF0C;&#x5E76;&#x4E0D;&#x662F;&#x771F;&#x6B63;&#x5730;&#x4ECE;&#x7F51;&#x7EDC;&#x4E0A;&#x6536;&#x6570;&#x636E;&#xFF0C;&#x6240;&#x4EE5;&#xFF0C;&#x8C03;&#x7528;recv&#x65F6;&#xFF0C;&#x64CD;&#x4F5C;&#x7CFB;&#x7EDF;&#x7684;&#x534F;&#x8BAE;&#x6808;&#x5DF2;&#x7ECF;&#x5C06;&#x6570;&#x636E;&#x4ECE;&#x7F51;&#x7EDC;&#x4E0A;&#x6536;&#x5230;&#x81EA;&#x5DF1;&#x7684;&#x5185;&#x6838;&#x7F13;&#x51B2;&#x533A;&#x4E2D;&#x4E86;&#xFF0C;recv&#x4EC5;&#x4EC5;&#x662F;&#x4E00;&#x6B21;&#x6570;&#x636E;&#x62F7;&#x8D1D;&#x64CD;&#x4F5C;&#x800C;&#x5DF2;&#x3002;</p>
  984. <p>4 &#x7531;&#x4E8E;&#x5957;&#x63A5;&#x5B57;&#x5B9E;&#x73B0;&#x662F;&#x6536;&#x53D1;&#x5168;&#x53CC;&#x5DE5;&#x7684;&#xFF0C;&#x6536;&#x548C;&#x53D1;&#x901A;&#x9053;&#x76F8;&#x4E92;&#x72EC;&#x7ACB;&#xFF0C;&#x4E0D;&#x4F1A;&#x76F8;&#x4E92;&#x5F71;&#x54CD;&#xFF0C;shutdown&#x51FD;&#x6570;&#x662F;&#x7528;&#x6765;&#x9009;&#x62E9;&#x5173;&#x95ED;socket&#x6536;&#x53D1;&#x901A;&#x9053;&#x4E2D;&#x67D0;&#x4E00;&#x8DEF;&#xFF08;&#x5F53;&#x7136;&#xFF0C;&#x4E5F;&#x53EF;&#x4EE5;&#x4E24;&#x8DEF;&#x90FD;&#x5173;&#x95ED;&#xFF09;&#xFF0C;&#x5176;how&#x53C2;&#x6570;&#x53D6;&#x503C;&#x4E00;&#x822C;&#x6709;&#x4E09;&#x4E2A;&#xFF1A;SHUT_RD/SHUT_WR/SHUT_RDWR&#xFF0C;SHUT_RD&#x8868;&#x793A;&#x5173;&#x95ED;&#x6536;&#x6D88;&#x606F;&#x94FE;&#x8DEF;&#xFF0C;&#x5373;&#x8BE5;&#x5957;&#x63A5;&#x5B57;&#x4E0D;&#x80FD;&#x518D;&#x6536;&#x53D6;&#x6570;&#x636E;&#xFF0C;&#x540C;&#x7406;SHUT_WR&#x8868;&#x793A;&#x5173;&#x95ED;&#x5957;&#x63A5;&#x5B57;&#x53D1;&#x6D88;&#x606F;&#x94FE;&#x8DEF;&#xFF0C;&#x4F46;&#x662F;&#x8FD9;&#x91CC;&#x6709;&#x4E2A;&#x95EE;&#x9898;&#xFF0C;&#x6709;&#x65F6;&#x5019;&#x6211;&#x4EEC;&#x9700;&#x8981;&#x7B49;&#x5F85;&#x7F13;&#x51B2;&#x533A;&#x4E2D;&#x6570;&#x636E;&#x53D1;&#x9001;&#x5B8C;&#x540E;&#x518D;&#x5173;&#x95ED;&#x8FDE;&#x63A5;&#x600E;&#x4E48;&#x529E;&#xFF1F;&#x8FD9;&#x91CC;&#x5C31;&#x8981;&#x7528;&#x5230;&#x5957;&#x63A5;&#x5B57;&#x9009;&#x9879;LINGER&#xFF0C;&#x5173;&#x4E8E;&#x8FD9;&#x4E2A;&#x9009;&#x9879;&#x8BF7;&#x53C2;&#x8003;&#x4E0B;&#x6587;&#x5E38;&#x89C1;&#x7684;&#x5957;&#x63A5;&#x5B57;&#x9009;&#x9879;&#x4ECB;&#x7ECD;&#x3002;&#x6700;&#x540E;&#xFF0C;SHUT_RDWR&#x540C;&#x65F6;&#x5173;&#x95ED;&#x6536;&#x6D88;&#x606F;&#x94FE;&#x8DEF;&#x548C;&#x53D1;&#x6D88;&#x606F;&#x94FE;&#x8DEF;&#x3002;&#x901A;&#x8FC7;&#x4E0A;&#x9762;&#x7684;&#x5206;&#x6790;&#xFF0C;&#x6211;&#x4EEC;&#x5F97;&#x51FA;&#x7ED3;&#x8BBA;&#xFF0C;shutdown&#x51FD;&#x6570;&#x5E76;&#x4E0D;&#x4F1A;&#x8981;&#x6C42;&#x64CD;&#x4F5C;&#x7CFB;&#x7EDF;&#x5E95;&#x5C42;&#x56DE;&#x6536;&#x5957;&#x63A5;&#x5B57;&#x7B49;&#x8D44;&#x6E90;&#xFF0C;&#x771F;&#x6B63;&#x4F1A;&#x56DE;&#x6536;&#x8D44;&#x6E90;&#x662F;close&#x51FD;&#x6570;&#xFF0C;&#x8FD9;&#x4E2A;&#x51FD;&#x6570;&#x4F1A;&#x8981;&#x6C42;&#x64CD;&#x4F5C;&#x7CFB;&#x7EDF;&#x56DE;&#x6536;&#x76F8;&#x5173;&#x5957;&#x63A5;&#x5B57;&#x8D44;&#x6E90;&#xFF0C;&#x5E76;&#x91CA;&#x653E;&#x5BF9;ip&#x5730;&#x5740;&#x4E0E;&#x7AEF;&#x53E3;&#x53F7;&#x4E8C;&#x5143;&#x7EC4;&#x7684;&#x5360;&#x7528;&#xFF0C;&#x4F46;&#x662F;&#x7531;&#x4E8E;tcp&#x56DB;&#x6B21;&#x6325;&#x624B;&#x6700;&#x540E;&#x4E00;&#x4E2A;&#x9636;&#x6BB5;&#x6709;&#x4E2A;TIME_WAIT&#x72B6;&#x6001;&#xFF08;&#x5173;&#x4E8E;&#x8FD9;&#x4E2A;&#x72B6;&#x6001;&#x4E0B;&#x6587;&#x4ECB;&#x7ECD;tcp&#x4E09;&#x6B21;&#x63E1;&#x624B;&#x548C;&#x56DB;&#x6B21;&#x56DE;&#x6536;&#x65F6;&#x4F1A;&#x8BE6;&#x7EC6;&#x4ECB;&#x7ECD;&#xFF09;&#xFF0C;&#x5BFC;&#x81F4;&#x4E0E;&#x8BE5;socket&#x76F8;&#x5173;&#x7684;&#x7AEF;&#x53E3;&#x53F7;&#x8D44;&#x6E90;&#x4E0D;&#x4F1A;&#x88AB;&#x7ACB;&#x5373;&#x91CA;&#x653E;&#xFF0C;&#x6709;&#x65F6;&#x5019;&#x4E3A;&#x4E86;&#x8FBE;&#x5230;&#x91CA;&#x653E;&#x7AEF;&#x53E3;&#x7528;&#x6765;&#x590D;&#x7528;&#xFF0C;&#x6211;&#x4EEC;&#x4F1A;&#x8BBE;&#x7F6E;&#x5957;&#x63A5;&#x5B57;&#x9009;&#x9879;SOL_REUSEPORT&#xFF08;&#x5173;&#x4E8E;&#x8FD9;&#x4E2A;&#x9009;&#x9879;&#xFF0C;&#x4E0B;&#x6587;&#x4F1A;&#x4ECB;&#x7ECD;&#xFF09;&#x3002;&#x7EFC;&#x5408;&#x8D77;&#x6765;&#xFF0C;&#x6211;&#x4EEC;&#x5173;&#x95ED;&#x4E00;&#x4E2A;&#x5957;&#x63A5;&#x5B57;&#xFF0C;&#x4E00;&#x822C;&#x4F1A;&#x5148;&#x8C03;&#x7528;shutdown&#x51FD;&#x6570;&#x518D;&#x8C03;&#x7528;close&#x51FD;&#x6570;&#xFF0C;&#x8FD9;&#x5C31;&#x662F;&#x6240;&#x8C13;&#x7684;&#x4F18;&#x96C5;&#x5173;&#x95ED;&#xFF1A;</p>
  985. <p><img src="../imgs/netdown1.webp" alt=""></p>
  986. <p>5 &#x5E38;&#x89C1;&#x7684;&#x5957;&#x63A5;&#x5B57;&#x9009;&#x9879;</p>
  987. <p>&#x4E25;&#x683C;&#x610F;&#x4E49;&#x4E0A;&#x8BF4;&#x5957;&#x63A5;&#x5B57;&#x9009;&#x9879;&#x662F;&#x6709;&#x4E0D;&#x540C;&#x5C42;&#x7EA7;&#x7684;&#xFF08;level&#xFF09;&#xFF0C;&#x5982;socket&#x7EA7;&#x522B;&#x3001;TCP&#x7EA7;&#x522B;&#x3001;IP&#x7EA7;&#x522B;&#xFF0C;&#x8FD9;&#x91CC;&#x6211;&#x4EEC;&#x4E0D;&#x533A;&#x5206;&#x5177;&#x4F53;&#x7684;&#x7EA7;&#x522B;&#x3002;</p>
  988. <ul>
  989. <li><strong>SO_SNDTIMEO&#x4E0E;SO_RCVTIMEO</strong></li>
  990. </ul>
  991. <p>&#x8FD9;&#x4E24;&#x4E2A;&#x9009;&#x9879;&#x7528;&#x4E8E;&#x8BBE;&#x7F6E;&#x963B;&#x585E;&#x6A21;&#x5F0F;&#x4E0B;&#x5957;&#x63A5;&#x5B57;&#xFF0C;SO_SNDTIMEO&#x7528;&#x4E8E;&#x5728;send&#x6570;&#x636E;&#x7531;&#x4E8E;&#x5BF9;&#x7AEF;tcp&#x7A97;&#x53E3;&#x592A;&#x5C0F;&#xFF0C;&#x53D1;&#x4E0D;&#x51FA;&#x53BB;&#x800C;&#x6700;&#x5927;&#x7684;&#x963B;&#x585E;&#x65F6;&#x957F;&#xFF1B;SO_RCVTIMEO&#x7528;&#x4E8E;recv&#x51FD;&#x6570;&#x56E0;&#x63A5;&#x53D7;&#x7F13;&#x51B2;&#x533A;&#x65E0;&#x6570;&#x636E;&#x800C;&#x963B;&#x585E;&#x7684;&#x6700;&#x5927;&#x963B;&#x585E;&#x65F6;&#x957F;&#x3002;&#x5982;&#x679C;&#x4F60;&#x9700;&#x8981;&#x83B7;&#x53D6;&#x5B83;&#x4EEC;&#x7684;&#x9ED8;&#x8BA4;&#x503C;&#xFF0C;&#x8BF7;&#x4F7F;&#x7528;getsockopt&#x51FD;&#x6570;&#x3002;</p>
  992. <ul>
  993. <li><strong>TCP_NODELAY</strong></li>
  994. </ul>
  995. <p>&#x64CD;&#x4F5C;&#x7CFB;&#x7EDF;&#x5E95;&#x5C42;&#x534F;&#x8BAE;&#x6808;&#x9ED8;&#x8BA4;&#x6709;&#x8FD9;&#x6837;&#x4E00;&#x4E2A;&#x673A;&#x5236;&#xFF0C;&#x4E3A;&#x4E86;&#x51CF;&#x5C11;&#x7F51;&#x7EDC;&#x901A;&#x4FE1;&#x6B21;&#x6570;&#xFF0C;&#x4F1A;&#x5C06;send&#x7B49;&#x51FD;&#x6570;&#x63D0;&#x4EA4;&#x7ED9;tcp&#x534F;&#x8BAE;&#x6808;&#x7684;&#x591A;&#x4E2A;&#x5C0F;&#x7684;&#x6570;&#x636E;&#x5305;&#x5408;&#x5E76;&#x6210;&#x4E00;&#x4E2A;&#x5927;&#x7684;&#x6570;&#x636E;&#x5305;&#xFF0C;&#x6700;&#x540E;&#x518D;&#x4E00;&#x6B21;&#x6027;&#x53D1;&#x51FA;&#x53BB;&#xFF0C;&#x4E5F;&#x5C31;&#x662F;&#x8BF4;&#xFF0C;&#x5982;&#x679C;&#x4F60;&#x8C03;&#x7528;send&#x51FD;&#x6570;&#x5F80;&#x5185;&#x6838;&#x534F;&#x8BAE;&#x6808;&#x7F13;&#x51B2;&#x533A;&#x62F7;&#x8D1D;&#x4E86;&#x4E00;&#x4E2A;&#x6570;&#x636E;&#xFF0C;&#x8FD9;&#x4E2A;&#x6570;&#x636E;&#x4E5F;&#x8BB8;&#x4E0D;&#x4F1A;&#x9A6C;&#x4E0A;&#x53D1;&#x5230;&#x7F51;&#x7EDC;&#x4E0A;&#x53BB;&#xFF0C;&#x800C;&#x662F;&#x8981;&#x7B49;&#x5230;&#x534F;&#x8BAE;&#x6808;&#x7F13;&#x51B2;&#x533A;&#x79EF;&#x7D2F;&#x5230;&#x4E00;&#x5B9A;&#x91CF;&#x7684;&#x6570;&#x636E;&#x540E;&#x624D;&#x4F1A;&#x4E00;&#x6B21;&#x6027;&#x53D1;&#x51FA;&#x53BB;&#xFF0C;&#x6211;&#x4EEC;&#x628A;&#x8FD9;&#x79CD;&#x673A;&#x5236;&#x53EB;&#x505A;nagle&#x7B97;&#x6CD5;&#x3002;&#x9ED8;&#x8BA4;&#x6253;&#x5F00;&#x4E86;&#x8FD9;&#x4E2A;&#x673A;&#x5236;&#xFF0C;&#x6709;&#x65F6;&#x5019;&#x6211;&#x4EEC;&#x5E0C;&#x671B;&#x5173;&#x95ED;&#x8FD9;&#x79CD;&#x673A;&#x5236;&#xFF0C;&#x8BA9;send&#x7684;&#x6570;&#x636E;&#x80FD;&#x591F;&#x7ACB;&#x523B;&#x53D1;&#x51FA;&#x53BB;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x9009;&#x62E9;&#x5173;&#x95ED;&#x8FD9;&#x4E2A;&#x7B97;&#x6CD5;&#xFF0C;&#x8FD9;&#x5C31;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x8BBE;&#x7F6E;&#x5957;&#x63A5;&#x5B57;&#x9009;&#x9879;TCP_NODELAY&#xFF0C;&#x5373;&#x5173;&#x95ED;nagle&#x7B97;&#x6CD5;&#x3002;</p>
  996. <ul>
  997. <li><strong>SO_LINGER</strong></li>
  998. </ul>
  999. <p>linger&#x8FD9;&#x4E2A;&#x5355;&#x8BCD;&#x672C;&#x8EAB;&#x7684;&#x610F;&#x601D;&#xFF0C;&#x662F;&#x201C;&#x6682;&#x505C;&#x3001;&#x9017;&#x7559;&#x201D;&#x3002;&#x8FD9;&#x4E2A;&#x9009;&#x9879;&#x7684;&#x7528;&#x5904;&#x662F;&#x7528;&#x4E8E;&#x89E3;&#x51B3;&#xFF0C;&#x5F53;&#x9700;&#x8981;&#x5173;&#x95ED;&#x5957;&#x63A5;&#x5B57;&#x65F6;&#xFF0C;&#x534F;&#x8BAE;&#x6808;&#x53D1;&#x9001;&#x7F13;&#x51B2;&#x533A;&#x4E2D;&#x5C1A;&#x6709;&#x672A;&#x53D1;&#x9001;&#x51FA;&#x53BB;&#x7684;&#x6570;&#x636E;&#xFF0C;&#x7B49;&#x5F85;&#x8FD9;&#x4E9B;&#x6570;&#x636E;&#x53D1;&#x5B8C;&#x7684;&#x6700;&#x957F;&#x7B49;&#x5F85;&#x65F6;&#x95F4;&#x3002;</p>
  1000. <ul>
  1001. <li><strong>SO_REUSEADDR/SO_REUSEPORT</strong></li>
  1002. </ul>
  1003. <p>&#x4E00;&#x4E2A;&#x7AEF;&#x53E3;&#xFF0C;&#x5C24;&#x5176;&#x662F;&#x4F5C;&#x4E3A;&#x670D;&#x52A1;&#x5668;&#x7AEF;&#x7AEF;&#x53E3;&#x5728;&#x56DB;&#x6B21;&#x6325;&#x624B;&#x7684;&#x6700;&#x540E;&#x4E00;&#x6B65;&#xFF0C;&#x6709;&#x4E00;&#x4E2A;&#x4E3A;TIME_WAIT&#x7684;&#x72B6;&#x6001;&#xFF0C;&#x8FD9;&#x4E2A;&#x72B6;&#x6001;&#x4E00;&#x822C;&#x6301;&#x7EED;2MSL&#xFF08;MSL&#xFF0C;maximum segment life&#xFF0C; &#x6700;&#x5927;&#x751F;&#x5B58;&#x5468;&#x671F;&#xFF0C;RFC&#x4E0A;&#x5EFA;&#x8BAE;&#x662F;2&#x5206;&#x949F;&#xFF09;&#x3002;&#x8FD9;&#x4E2A;&#x72B6;&#x6001;&#x5B58;&#x5728;&#x539F;&#x56E0;&#x5982;&#x4E0B;&#xFF1A;1. &#x4FDD;&#x8BC1;&#x53D1;&#x51FA;&#x53BB;&#x7684;ack&#x80FD;&#x88AB;&#x9001;&#x8FBE;&#xFF08;&#x8D85;&#x65F6;&#x4F1A;&#x91CD;&#x53D1;ack&#xFF09;2. &#x8BA9;&#x8FDF;&#x6765;&#x7684;&#x62A5;&#x6587;&#x6709;&#x8DB3;&#x591F;&#x7684;&#x65F6;&#x95F4;&#x88AB;&#x4E22;&#x5F03;&#xFF0C;&#x53CD;&#x8FC7;&#x6765;&#x8BF4;&#xFF0C;&#x5982;&#x679C;&#x4E0D;&#x5B58;&#x5728;&#x8FD9;&#x4E2A;&#x72B6;&#x6001;&#xFF0C;&#x90A3;&#x4E48;&#x53EF;&#x4EE5;&#x7ACB;&#x523B;&#x590D;&#x7528;&#x8FD9;&#x4E2A;&#x5730;&#x5740;&#x548C;&#x7AEF;&#x53E3;&#x53F7;&#xFF0C;&#x90A3;&#x4E48;&#x53EF;&#x80FD;&#x4F1A;&#x6536;&#x5230;&#x8001;&#x7684;&#x8FDE;&#x63A5;&#x8FDF;&#x6765;&#x7684;&#x6570;&#x636E;&#xFF0C;&#x8FD9;&#x663E;&#x7136;&#x662F;&#x4E0D;&#x597D;&#x7684;&#x3002;&#x4E3A;&#x4E86;&#x7ACB;&#x5373;&#x56DE;&#x6536;&#x590D;&#x7528;&#x7AEF;&#x53E3;&#x53F7;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x5F00;&#x542F;&#x5957;&#x63A5;&#x5B57;SO_REUSEADDR/SO_REUSEPORT&#x3002;</p>
  1004. <ul>
  1005. <li><strong>SO_KEEPALIVE</strong></li>
  1006. </ul>
  1007. <p>&#x9ED8;&#x8BA4;&#x60C5;&#x51B5;&#x4E0B;&#xFF0C;&#x5F53;&#x4E00;&#x4E2A;&#x8FDE;&#x63A5;&#x957F;&#x65F6;&#x95F4;&#x6CA1;&#x6709;&#x6570;&#x636E;&#x6765;&#x5F80;&#xFF0C;&#x4F1A;&#x88AB;&#x7CFB;&#x7EDF;&#x9632;&#x706B;&#x5899;&#x4E4B;&#x7C7B;&#x7684;&#x670D;&#x52A1;&#x5173;&#x95ED;&#x3002;&#x4E3A;&#x4E86;&#x907F;&#x514D;&#x8FD9;&#x79CD;&#x73B0;&#x8C61;&#xFF0C;&#x5C24;&#x5176;&#x662F;&#x4E00;&#x4E9B;&#x9700;&#x8981;&#x957F;&#x8FDE;&#x63A5;&#x7684;&#x5E94;&#x7528;&#x573A;&#x666F;&#x4E0B;&#xFF0C;&#x6211;&#x4EEC;&#x9700;&#x8981;&#x4F7F;&#x7528;&#x5FC3;&#x8DF3;&#x5305;&#x673A;&#x5236;&#xFF0C;&#x5373;&#x5B9A;&#x65F6;&#x4ECE;&#x4E24;&#x7AEF;&#x5B9A;&#x65F6;&#x53D1;&#x4E00;&#x70B9;&#x6570;&#x636E;&#xFF0C;&#x8FD9;&#x79CD;&#x884C;&#x4E3A;&#x53EB;&#x505A;&#x201C;&#x4FDD;&#x6D3B;&#x201D;&#x3002;&#x800C;tcp&#x534F;&#x8BAE;&#x6808;&#x672C;&#x8EAB;&#x4E5F;&#x63D0;&#x4F9B;&#x4E86;&#x8FD9;&#x79CD;&#x673A;&#x5236;&#xFF0C;&#x90A3;&#x5C31;&#x662F;&#x8BBE;&#x7F6E;&#x5957;&#x63A5;&#x5B57;SO_KEEPALIVE&#x9009;&#x9879;&#xFF0C;&#x5F00;&#x542F;&#x8FD9;&#x4E2A;&#x9009;&#x9879;&#x540E;&#xFF0C;tcp&#x534F;&#x8BAE;&#x6808;&#x4F1A;&#x5B9A;&#x65F6;&#x53D1;&#x9001;&#x5FC3;&#x8DF3;&#x5305;&#x63A2;&#x9488;&#xFF0C;&#x4F46;&#x662F;&#x8FD9;&#x4E2A;&#x9ED8;&#x8BA4;&#x65F6;&#x95F4;&#x6BD4;&#x8F83;&#x957F;&#xFF08;2&#x4E2A;&#x5C0F;&#x65F6;&#xFF09;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x7EE7;&#x7EED;&#x901A;&#x8FC7;&#x76F8;&#x5173;&#x9009;&#x9879;&#x6539;&#x53D8;&#x8FD9;&#x4E2A;&#x9ED8;&#x8BA4;&#x503C;&#x3002;</p>
  1008. <p>&#x200B; </p>
  1009. <h2 id="&#x4E8C;&#x3001;&#x5E38;&#x7528;&#x7684;&#x7F51;&#x7EDC;&#x6545;&#x969C;&#x6392;&#x67E5;&#x5DE5;&#x5177;"><a name="&#x4E8C;&#x3001;&#x5E38;&#x7528;&#x7684;&#x7F51;&#x7EDC;&#x6545;&#x969C;&#x6392;&#x67E5;&#x5DE5;&#x5177;" class="anchor-navigation-ex-anchor" href="#&#x4E8C;&#x3001;&#x5E38;&#x7528;&#x7684;&#x7F51;&#x7EDC;&#x6545;&#x969C;&#x6392;&#x67E5;&#x5DE5;&#x5177;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x4E8C;&#x3001;&#x5E38;&#x7528;&#x7684;&#x7F51;&#x7EDC;&#x6545;&#x969C;&#x6392;&#x67E5;&#x5DE5;&#x5177;</h2>
  1010. <p><strong>1.ping</strong></p>
  1011. <p>ping&#x547D;&#x4EE4;&#x53EF;&#x7528;&#x4E8E;&#x6D4B;&#x8BD5;&#x7F51;&#x7EDC;&#x662F;&#x5426;&#x8FDE;&#x901A;&#x3002;</p>
  1012. <p><strong>2.telnet</strong></p>
  1013. <p>&#x547D;&#x4EE4;&#x4F7F;&#x7528;&#x683C;&#x5F0F;&#xFF1A;</p>
  1014. <pre class="language-"><code>telnet ip&#x6216;&#x57DF;&#x540D; port
  1015. </code></pre><p>&#x4F8B;&#x5982;&#xFF1A;</p>
  1016. <pre class="language-"><code>telnet 120.55.94.78 8888
  1017. telnet www.baidu.com 80
  1018. </code></pre><p>&#x7ED3;&#x5408;ping&#x548C;telnet&#x547D;&#x4EE4;&#x6211;&#x4EEC;&#x5C31;&#x53EF;&#x4EE5;&#x5224;&#x65AD;&#x4E00;&#x4E2A;&#x670D;&#x52A1;&#x5668;&#x5730;&#x5740;&#x4E0A;&#x7684;&#x67D0;&#x4E2A;&#x7AEF;&#x53E3;&#x53F7;&#x662F;&#x5426;&#x53EF;&#x4EE5;&#x5BF9;&#x5916;&#x63D0;&#x4F9B;&#x670D;&#x52A1;&#x3002;</p>
  1019. <p>&#x7531;&#x4E8E;&#x6211;&#x4EEC;&#x4F7F;&#x7528;&#x7684;&#x5F00;&#x53D1;&#x673A;&#x5668;&#x4EE5;windows&#x5C45;&#x591A;&#xFF0C;&#x9ED8;&#x8BA4;&#x60C5;&#x51B5;&#x4E0B;&#xFF0C;windows&#x7CFB;&#x7EDF;&#x7684;telnet&#x547D;&#x4EE4;&#x662F;&#x6CA1;&#x6709;&#x6253;&#x5F00;&#x7684;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x5728;&#x3010;&#x63A7;&#x5236;&#x9762;&#x677F;&#x3011;- &#x3010;&#x7A0B;&#x5E8F;&#x3011;- &#x3010;&#x7A0B;&#x5E8F;&#x548C;&#x529F;&#x80FD;&#x3011;- &#x3010;&#x6253;&#x5F00;&#x6216;&#x5173;&#x95ED;Windows&#x529F;&#x80FD;&#x3011;&#x4E2D;&#x6253;&#x5F00;telnet&#x529F;&#x80FD;&#x3002;</p>
  1020. <p><img src="../imgs/netdown2.webp" alt=""></p>
  1021. <p><strong>3.host&#x547D;&#x4EE4;</strong></p>
  1022. <p>host &#x547D;&#x4EE4;&#x53EF;&#x4EE5;&#x89E3;&#x6790;&#x57DF;&#x540D;&#x5F97;&#x5230;&#x5BF9;&#x5E94;&#x7684;ip&#x5730;&#x5740;&#x3002;&#x4F8B;&#x5982;&#xFF0C;&#x6211;&#x4EEC;&#x8981;&#x5F97;&#x5230;www.baidu.com&#x8FD9;&#x4E2A;&#x57DF;&#x540D;&#x7684;ip&#x5730;&#x5740;&#xFF0C;&#x53EF;&#x4EE5;&#x8F93;&#x5165;&#xFF1A;</p>
  1023. <p><img src="../imgs/netdown3.png" alt=""></p>
  1024. <p> &#x5F97;&#x5230;www.google.com&#x7684;ip&#x5730;&#x5740;&#x53EF;&#x4EE5;&#x8F93;&#x5165;&#xFF1A;</p>
  1025. <p><img src="../imgs/netdown4.png" alt=""></p>
  1026. <p><strong>4 .netstat&#x547D;&#x4EE4;</strong></p>
  1027. <p>&#x5E38;&#x89C1;&#x7684;&#x9009;&#x9879;&#x6709;&#xFF1A;</p>
  1028. <p>-a (all)&#x663E;&#x793A;&#x6240;&#x6709;&#x9009;&#x9879;&#xFF0C;netstat&#x9ED8;&#x8BA4;&#x4E0D;&#x663E;&#x793A;LISTEN&#x76F8;&#x5173;</p>
  1029. <p>-t (tcp)&#x4EC5;&#x663E;&#x793A;tcp&#x76F8;&#x5173;&#x9009;&#x9879;</p>
  1030. <p>-u (udp)&#x4EC5;&#x663E;&#x793A;udp&#x76F8;&#x5173;&#x9009;&#x9879;</p>
  1031. <p>-n &#x62D2;&#x7EDD;&#x663E;&#x793A;&#x522B;&#x540D;&#xFF0C;&#x80FD;&#x663E;&#x793A;&#x6570;&#x5B57;&#x7684;&#x5168;&#x90E8;&#x8F6C;&#x5316;&#x6210;&#x6570;&#x5B57;&#x3002;(&#x91CD;&#x8981;)</p>
  1032. <p>-l &#x4EC5;&#x5217;&#x51FA;&#x6709;&#x5728; Listen (&#x76D1;&#x542C;) &#x7684;&#x670D;&#x52D9;&#x72B6;&#x6001;</p>
  1033. <p>-p &#x663E;&#x793A;&#x5EFA;&#x7ACB;&#x76F8;&#x5173;&#x94FE;&#x63A5;&#x7684;&#x7A0B;&#x5E8F;&#x540D;(macOS&#x4E2D;&#x8868;&#x793A;&#x534F;&#x8BAE; -p protocol)</p>
  1034. <p>-r &#x663E;&#x793A;&#x8DEF;&#x7531;&#x4FE1;&#x606F;&#xFF0C;&#x8DEF;&#x7531;&#x8868;</p>
  1035. <p>-e &#x663E;&#x793A;&#x6269;&#x5C55;&#x4FE1;&#x606F;&#xFF0C;&#x4F8B;&#x5982;uid&#x7B49;</p>
  1036. <p>-s &#x6309;&#x5404;&#x4E2A;&#x534F;&#x8BAE;&#x8FDB;&#x884C;&#x7EDF;&#x8BA1; (&#x91CD;&#x8981;)</p>
  1037. <p>-c &#x6BCF;&#x9694;&#x4E00;&#x4E2A;&#x56FA;&#x5B9A;&#x65F6;&#x95F4;&#xFF0C;&#x6267;&#x884C;&#x8BE5;netstat&#x547D;&#x4EE4;&#x3002;</p>
  1038. <p><strong>5. lsof&#x547D;&#x4EE4;</strong></p>
  1039. <p>lsof&#xFF0C;&#x5373;list opened filedescriptor&#xFF0C;&#x5373;&#x5217;&#x51FA;&#x5F53;&#x524D;&#x64CD;&#x4F5C;&#x7CFB;&#x7EDF;&#x4E2D;&#x6253;&#x5F00;&#x7684;&#x6240;&#x6709;&#x6587;&#x4EF6;&#x63CF;&#x8FF0;&#x7B26;&#xFF0C;socket&#x4E5F;&#x662F;&#x4E00;&#x79CD;file descriptor&#xFF0C;&#x5E38;&#x89C1;&#x7684;&#x9009;&#x9879;&#x662F;:</p>
  1040. <p>-i &#x5217;&#x51FA;&#x7CFB;&#x7EDF;&#x6253;&#x5F00;&#x7684;socket fd</p>
  1041. <p>-P &#x4E0D;&#x8981;&#x663E;&#x793A;&#x7AEF;&#x53E3;&#x53F7;&#x522B;&#x540D;</p>
  1042. <p>-n &#x4E0D;&#x8981;&#x663E;&#x793A;ip&#x5730;&#x5740;&#x522B;&#x540D;&#xFF08;&#x5982;localhost&#x4F1A;&#x7528;127.0.0.1&#x6765;&#x4EE3;&#x66FF;&#xFF09;</p>
  1043. <p>+c w &#x7A0B;&#x5E8F;&#x5217;&#x540D;&#x79F0;&#x6700;&#x5927;&#x53EF;&#x4EE5;&#x663E;&#x793A;&#x5230;w&#x4E2A;&#x5B57;&#x7B26;&#x3002;</p>
  1044. <p>&#x5E38;&#x89C1;&#x7684;&#x9009;&#x9879;&#x7EC4;&#x5408;&#x4E3A;lsof &#x2013;i &#x2013;Pn&#xFF1A;</p>
  1045. <p><img src="../imgs/netdown5.webp" alt=""></p>
  1046. <p>&#x53EF;&#x4EE5;&#x770B;&#x5230;&#x5217;&#x51FA;&#x4E86;&#x5F53;&#x524D;&#x4FA6;&#x542C;&#x7684;socket&#xFF0C;&#x548C;&#x8FDE;&#x63A5;socket&#x7684;tcp&#x72B6;&#x6001;&#x3002;</p>
  1047. <p><strong>6.pstack</strong></p>
  1048. <p>&#x4E25;&#x683C;&#x610F;&#x4E49;&#x4E0A;&#x6765;&#x8BF4;&#xFF0C;&#x8FD9;&#x4E2A;&#x4E0D;&#x7B97;&#x7F51;&#x7EDC;&#x6392;&#x67E5;&#x6545;&#x969C;&#x548C;&#x8C03;&#x8BD5;&#x547D;&#x4EE4;&#xFF0C;&#x4F46;&#x662F;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x5229;&#x7528;&#x8FD9;&#x4E2A;&#x547D;&#x4EE4;&#x6765;&#x67E5;&#x770B;&#x67D0;&#x4E2A;&#x8FDB;&#x7A0B;&#x7684;&#x7EBF;&#x7A0B;&#x6570;&#x91CF;&#x548C;&#x7EBF;&#x7A0B;&#x8C03;&#x7528;&#x5806;&#x6808;&#x662F;&#x5426;&#x8FD0;&#x884C;&#x6B63;&#x5E38;&#x3002;&#x6307;&#x4EE4;&#x4F7F;&#x7528;&#x683C;&#x5F0F;&#xFF1A;</p>
  1049. <pre class="language-"><code>pstack pid
  1050. </code></pre><p>&#x5373;&#xFF0C;pstack &#x8FDB;&#x7A0B;&#x53F7;&#xFF0C;&#x5982;&#xFF1A;</p>
  1051. <p><img src="../imgs/netdown6.jpeg" alt=""></p>
  1052. <p><strong>7.nc&#x547D;&#x4EE4;</strong></p>
  1053. <p>&#x5373;netcat&#x547D;&#x4EE4;&#xFF0C;&#x8FD9;&#x4E2A;&#x5DE5;&#x5177;&#x5728;&#x6392;&#x67E5;&#x7F51;&#x7EDC;&#x6545;&#x969C;&#x65F6;&#x975E;&#x5E38;&#x6709;&#x7528;&#xFF0C;&#x56E0;&#x800C;&#x88AB;&#x4E1A;&#x7EE9;&#x79F0;&#x4E3A;&#x7F51;&#x7EDC;&#x754C;&#x7684;&#x201C;&#x745E;&#x58EB;&#x519B;&#x5200;&#x201D;&#x3002;&#x5E38;&#x89C1;&#x7684;&#x7528;&#x6CD5;&#x5982;&#x4E0B;&#xFF1A;</p>
  1054. <ul>
  1055. <li>&#x6A21;&#x62DF;&#x670D;&#x52A1;&#x5668;&#x7AEF;&#x5728;&#x6307;&#x5B9A;ip&#x5730;&#x5740;&#x548C;&#x7AEF;&#x53E3;&#x53F7;&#x4E0A;&#x4FA6;&#x542C;</li>
  1056. </ul>
  1057. <pre class="language-"><code>nc &#x2013;l 0.0.0.0 8888
  1058. </code></pre><ul>
  1059. <li>&#x6A21;&#x62DF;&#x5BA2;&#x6237;&#x7AEF;&#x8FDE;&#x63A5;&#x5230;&#x6307;&#x5B9A;ip&#x5730;&#x5740;&#x548C;&#x7AEF;&#x53E3;&#x53F7;</li>
  1060. </ul>
  1061. <pre class="language-"><code>nc 0.0.0.0 8888
  1062. </code></pre><p>&#x6211;&#x4EEC;&#x77E5;&#x9053;&#x5BA2;&#x6237;&#x7AEF;&#x8FDE;&#x63A5;&#x670D;&#x52A1;&#x5668;&#x4E00;&#x822C;&#x90FD;&#x662F;&#x64CD;&#x4F5C;&#x7CFB;&#x7EDF;&#x968F;&#x673A;&#x5206;&#x914D;&#x4E00;&#x4E2A;&#x53EF;&#x7528;&#x7684;&#x7AEF;&#x53E3;&#x53F7;&#x8FDE;&#x63A5;&#x5230;&#x670D;&#x52A1;&#x5668;&#x4E0A;&#x53BB;&#xFF0C;&#x8FD9;&#x4E2A;&#x6307;&#x4EE4;&#x751A;&#x81F3;&#x53EF;&#x4EE5;&#x6307;&#x5B9A;&#x4F7F;&#x7528;&#x54EA;&#x4E2A;&#x7AEF;&#x53E3;&#x53F7;&#x8FDE;&#x63A5;&#xFF0C;&#x5982;&#xFF1A;</p>
  1063. <pre class="language-"><code>nc &#x2013;p 12345 127.0.0.1 8888
  1064. </code></pre><p>&#x5BA2;&#x6237;&#x7AEF;&#x4F7F;&#x7528;&#x7AEF;&#x53E3;12345&#x53BB;&#x8FDE;&#x63A5;&#x670D;&#x52A1;&#x5668;127.0.0.1::8888&#x3002;</p>
  1065. <ul>
  1066. <li>&#x4F7F;&#x7528;nc&#x547D;&#x4EE4;&#x53D1;&#x6D88;&#x606F;&#x548C;&#x53D1;&#x6587;&#x4EF6;</li>
  1067. </ul>
  1068. <p>&#x5BA2;&#x6237;&#x7AEF;</p>
  1069. <p><img src="../imgs/netdown7.webp" alt=""></p>
  1070. <p>&#x670D;&#x52A1;&#x5668;</p>
  1071. <p><img src="../imgs/netdown8.webp" alt=""></p>
  1072. <p>8 .tcpdump</p>
  1073. <p>&#x8FD9;&#x4E2A;&#x662F;linux&#x7CFB;&#x7EDF;&#x81EA;&#x5E26;&#x7684;&#x6293;&#x5305;&#x5DE5;&#x5177;&#xFF0C;&#x529F;&#x80FD;&#x975E;&#x5E38;&#x5F3A;&#x5927;&#xFF0C;&#x9ED8;&#x8BA4;&#x9700;&#x8981;&#x5F00;&#x542F;root&#x6743;&#x9650;&#x624D;&#x80FD;&#x4F7F;&#x7528;&#x3002;</p>
  1074. <p><img src="../imgs/netdown9.webp" alt=""></p>
  1075. <p>&#x5176;&#x5E38;&#x89C1;&#x7684;&#x9009;&#x9879;&#x6709;&#xFF1A;</p>
  1076. <p>-i &#x6307;&#x5B9A;&#x7F51;&#x5361;</p>
  1077. <p>-X &#x2013;XX &#x6253;&#x5370;&#x5341;&#x516D;&#x8FDB;&#x5236;&#x7684;&#x7F51;&#x7EDC;&#x6570;&#x636E;&#x5305;</p>
  1078. <p>-n &#x2013;nn &#x4E0D;&#x663E;&#x793A;ip&#x5730;&#x5740;&#x548C;&#x7AEF;&#x53E3;&#x7684;&#x522B;&#x540D;</p>
  1079. <p>-S &#x4EE5;&#x7EDD;&#x5BF9;&#x503C;&#x663E;&#x793A;&#x5305;&#x7684;ISN&#x53F7;&#xFF08;&#x5305;&#x5E8F;&#x5217;&#x53F7;&#xFF09;</p>
  1080. <p>&#x5E38;&#x7528;&#x7684;&#x8FC7;&#x6EE4;&#x6761;&#x4EF6;&#x6709;&#x5982;&#x4E0B;&#x5F62;&#x5F0F;&#xFF1A;</p>
  1081. <pre class="language-"><code>tcpdump &#x2013;i any &#x2018;port 8888&#x2019;
  1082. tcpdump &#x2013;i any &#x2018;tcp port 8888&#x2019;
  1083. tcpdump &#x2013;i any &#x2018;tcp src port 8888&#x2019;
  1084. tcpdump &#x2013;i any &#x2018;tcp src port 8888 and udp dst port 9999&#x2019;
  1085. tcpdump -i any &apos;src host 127.0.0.1 and tcp src port 12345&apos; -XX -nn -vv
  1086. </code></pre><p>&#x5173;&#x4E8E;tcpdump&#x547D;&#x4EE4;&#x63A5;&#x4E0B;&#x6765;&#x5C06;&#x4F1A;&#x4EE5;&#x5BF9;tcp&#x4E09;&#x6B21;&#x63E1;&#x624B;&#x548C;&#x56DB;&#x6B21;&#x6325;&#x624B;&#x7684;&#x5305;&#x6570;&#x636E;&#x8FDB;&#x884C;&#x6293;&#x5305;&#x6765;&#x5206;&#x6790;&#x3002;</p>
  1087. <h2 id="&#x4E09;&#x3001;-tcp&#x4E09;&#x6B21;&#x63E1;&#x624B;&#x548C;&#x56DB;&#x6B21;&#x6325;&#x624B;&#x8FC7;&#x7A0B;&#x89E3;&#x6790;"><a name="&#x4E09;&#x3001;-tcp&#x4E09;&#x6B21;&#x63E1;&#x624B;&#x548C;&#x56DB;&#x6B21;&#x6325;&#x624B;&#x8FC7;&#x7A0B;&#x89E3;&#x6790;" class="anchor-navigation-ex-anchor" href="#&#x4E09;&#x3001;-tcp&#x4E09;&#x6B21;&#x63E1;&#x624B;&#x548C;&#x56DB;&#x6B21;&#x6325;&#x624B;&#x8FC7;&#x7A0B;&#x89E3;&#x6790;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x4E09;&#x3001; tcp&#x4E09;&#x6B21;&#x63E1;&#x624B;&#x548C;&#x56DB;&#x6B21;&#x6325;&#x624B;&#x8FC7;&#x7A0B;&#x89E3;&#x6790;</h2>
  1088. <p>&#x719F;&#x7EC3;&#x5730;&#x638C;&#x63E1;tcp&#x4E09;&#x6B21;&#x63E1;&#x624B;&#x548C;&#x56DB;&#x6B21;&#x6325;&#x624B;&#x8FC7;&#x7A0B;&#x7684;&#x6BCF;&#x4E00;&#x4E2A;&#x7EC6;&#x8282;&#x662F;&#x6211;&#x4EEC;&#x6392;&#x67E5;&#x7F51;&#x7EDC;&#x95EE;&#x9898;&#x7684;&#x57FA;&#x7840;&#x3002;</p>
  1089. <p><img src="../imgs/netdown10.webp" alt=""></p>
  1090. <p>&#x4E0B;&#x9762;&#x6211;&#x4EEC;&#x6765;&#x901A;&#x8FC7;tcpdump&#x6293;&#x5305;&#x80FD;&#x5B9E;&#x6218;&#x4E00;&#x4E0B;&#x4E09;&#x6B21;&#x63E1;&#x624B;&#x7684;&#x8FC7;&#x7A0B;&#xFF0C;&#x5047;&#x8BBE;&#x6211;&#x7684;&#x670D;&#x52A1;&#x5668;&#x7AEF;&#x7684;&#x5730;&#x5740;&#x662F; 127.0.0.0.1 : 12345&#xFF0C;&#x4F7F;&#x7528;nc&#x547D;&#x4EE4;&#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x670D;&#x52A1;&#x5668;&#x7A0B;&#x5E8F;&#x5E76;&#x5728;&#x8FD9;&#x4E2A;&#x5730;&#x5740;&#x4E0A;&#x8FDB;&#x884C;&#x4FA6;&#x542C;&#xFF1A;</p>
  1091. <pre class="language-"><code>nc &#x2013;v -l 127.0.0.0.112345
  1092. </code></pre><p><img src="../imgs/netdown11.png" alt=""></p>
  1093. <p>&#x7136;&#x540E;&#x5728;&#x5BA2;&#x6237;&#x7AEF;&#x673A;&#x5668;&#x4E0A;&#x5F00;&#x542F;tcpdump&#x5DE5;&#x5177;&#xFF1A;</p>
  1094. <p><img src="../imgs/netdown12.webp" alt=""></p>
  1095. <p>&#x7136;&#x540E;&#x5728;&#x5BA2;&#x6237;&#x7AEF;&#x4F7F;&#x7528;nc&#x547D;&#x4EE4;&#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x5BA2;&#x6237;&#x7AEF;&#x53BB;&#x8FDE;&#x63A5;&#x670D;&#x52A1;&#x5668;&#xFF1A;</p>
  1096. <p><img src="../imgs/netdown13.png" alt=""></p>
  1097. <p>&#x6211;&#x4EEC;&#x6293;&#x5230;&#x7684;&#x5305;&#x5982;&#x4E0B;&#xFF1A;</p>
  1098. <p><img src="../imgs/netdown14.jpeg" alt=""></p>
  1099. <p>&#x56FE;&#x7247;&#x770B;&#x4E0D;&#x6E05;&#xFF0C;&#x53EF;&#x4EE5;&#x653E;&#x5927;&#x6765;&#x770B;&#x3002;&#x4E0A;&#x9762;&#x6211;&#x4EEC;&#x9700;&#x8981;&#x6CE8;&#x610F;&#x7684;&#x662F;&#xFF1A;</p>
  1100. <p>&#x4E09;&#x6B21;&#x63E1;&#x624B;&#x8FC7;&#x7A0B;&#x662F;&#x5BA2;&#x6237;&#x7AEF;&#x5148;&#x7ED9;&#x670D;&#x52A1;&#x5668;&#x53D1;&#x9001;&#x4E00;&#x4E2A;SYN&#xFF0C;&#x7136;&#x540E;&#x670D;&#x52A1;&#x5668;&#x5E94;&#x7B54;&#x4E00;&#x4E2A;SYN+ACK&#xFF0C;&#x5E94;&#x7B54;&#x7684;&#x5E8F;&#x5217;&#x53F7;&#x662F;&#x9012;&#x589E;1&#x7684;&#xFF0C;&#x8868;&#x793A;&#x5E94;&#x7B54;&#x54EA;&#x4E2A;&#x8BF7;&#x6C42;&#xFF0C;&#x5373;&#x4ECE;4004096087&#x9012;&#x589E;&#x5230;4004096088&#xFF0C;&#x63A5;&#x7740;&#x5BA2;&#x6237;&#x7AEF;&#x518D;&#x5E94;&#x7B54;&#x4E00;&#x4E2A;ACK&#x3002;&#x8FD9;&#x4E2A;&#x65F6;&#x5019;&#xFF0C;&#x6211;&#x4EEC;&#x53D1;&#x73B0;&#x53D1;&#x5305;&#x5E8F;&#x5217;&#x53F7;&#x548C;&#x5E94;&#x7B54;&#x5E8F;&#x5217;&#x53F7;&#x90FD;&#x53D8;&#x6210;1&#x4E86;&#xFF0C;&#x8FD9;&#x662F;tcpdump&#x4F7F;&#x7528;&#x76F8;&#x5BF9;&#x5E8F;&#x53F7;&#xFF0C;&#x6211;&#x4EEC;&#x52A0;&#x4E0A;-S&#x9009;&#x9879;&#x540E;&#x5C31;&#x53D8;&#x6210;&#x7EDD;&#x5BF9;&#x5E8F;&#x5217;&#x53F7;&#x4E86;&#x3002;</p>
  1101. <p><img src="../imgs/netdown15.jpeg" alt=""></p>
  1102. <p> &#x8FD9;&#x662F;&#x6B63;&#x5E38;&#x7684;tcp&#x4E09;&#x6B21;&#x63E1;&#x624B;&#xFF0C;&#x5047;&#x5982;&#x6211;&#x4EEC;&#x8FDE;&#x63A5;&#x7684;&#x670D;&#x52A1;&#x5668;ip&#x5730;&#x5740;&#x5B58;&#x5728;&#xFF0C;&#x4F46;&#x76D1;&#x542C;&#x7AEF;&#x53E3;&#x53F7;&#x5E76;&#x4E0D;&#x5B58;&#x5728;&#xFF0C;&#x6211;&#x4EEC;&#x770B;&#x4E0B;tcpdump&#x6293;&#x5305;&#x7ED3;&#x679C;&#xFF1A;</p>
  1103. <p><img src="../imgs/netdown16.webp" alt=""></p>
  1104. <p>&#x8FD9;&#x4E2A;&#x65F6;&#x5019;&#x5BA2;&#x6237;&#x7AEF;&#x53D1;&#x9001;SYN&#xFF0C;&#x670D;&#x52A1;&#x5668;&#x5E94;&#x7B54;ACK+RST&#xFF1A;</p>
  1105. <p><img src="../imgs/netdown17.jpeg" alt=""></p>
  1106. <p> &#x8FD9;&#x4E2A;&#x5E94;&#x7B54;&#x5305;&#x4F1A;&#x5BFC;&#x81F4;&#x5BA2;&#x6237;&#x7AEF;&#x7684;connect&#x8FDE;&#x63A5;&#x5931;&#x8D25;&#x3002;</p>
  1107. <p>&#x8FD8;&#x6709;&#x4E00;&#x79CD;&#x60C5;&#x51B5;&#x5C31;&#x662F;&#x5BA2;&#x6237;&#x7AEF;&#x8BBF;&#x95EE;&#x4E00;&#x4E2A;&#x5F88;&#x9065;&#x8FDC;&#x7684;ip&#xFF0C;&#x6216;&#x8005;&#x7F51;&#x7EDC;&#x7E41;&#x5FD9;&#xFF0C;&#x670D;&#x52A1;&#x5668;&#x5BF9;&#x5BA2;&#x6237;&#x7AEF;&#x53D1;&#x9001;&#x7684;&#x7F51;&#x7EDC;SYN&#x62A5;&#x6587;&#x6CA1;&#x6709;&#x5E94;&#x7B54;&#xFF0C;&#x4F1A;&#x51FA;&#x73B0;&#x4EC0;&#x4E48;&#x60C5;&#x51B5;&#x5462;&#xFF1F;</p>
  1108. <p><img src="../imgs/netdown18.png" alt=""></p>
  1109. <p>&#x6211;&#x4EEC;&#x5148;&#x5C06;&#x9632;&#x706B;&#x5899;&#x7684;&#x5DF2;&#x6709;&#x89C4;&#x5219;&#x90FD;&#x6E05;&#x7406;&#x6389;: iptables -F</p>
  1110. <p>&#x7136;&#x540E;&#x7ED9;&#x9632;&#x706B;&#x5899;&#x7684;INPUT&#x94FE;&#x4E0A;&#x589E;&#x52A0;&#x4E00;&#x4E2A;&#x89C4;&#x5219;&#xFF0C;&#x4E22;&#x5F03;&#x672C;&#x5730;&#x7F51;&#x5361;lo&#xFF08;&#x4E5F;&#x5C31;&#x662F;127.0.0.1&#x8FD9;&#x4E2A;&#x56DE;&#x73AF;&#x5730;&#x5740;&#xFF09;&#x4E0A;&#x7684;&#x6240;&#x6709;SYN&#x5305;&#x3002;</p>
  1111. <p><img src="../imgs/netdown19.jpeg" alt=""></p>
  1112. <p> &#x63A5;&#x7740;&#xFF0C;&#x6211;&#x4EEC;&#x770B;&#x5230;tcpdump&#x6293;&#x5230;&#x7684;&#x6570;&#x636E;&#x5305;&#x5982;&#x4E0B;&#xFF1A;</p>
  1113. <p><img src="../imgs/netdown20.jpeg" alt=""></p>
  1114. <p> &#x8FDE;&#x63A5;&#x4E0D;&#x4E0A;&#xFF0C;&#x4E00;&#x5171;&#x91CD;&#x8BD5;&#x4E86;5&#x6B21;&#xFF0C;&#x91CD;&#x8BD5;&#x7684;&#x65F6;&#x95F4;&#x95F4;&#x9694;&#x662F;1&#x79D2;&#xFF0C;2&#x79D2;&#xFF0C;4&#x79D2;&#xFF0C;8&#x79D2;&#xFF0C;16&#x79D2;&#xFF0C;&#x6700;&#x540E;&#x8FD4;&#x56DE;&#x5931;&#x8D25;&#x3002;&#x8FD9;&#x4E2A;&#x91CD;&#x8BD5;&#x6B21;&#x6570;&#x5728;/proc/sys/net/ipv4/tcp_syn_retries &#x5185;&#x6838;&#x53C2;&#x6570;&#x4E2D;&#x8BBE;&#x7F6E;&#xFF0C;&#x9ED8;&#x8BA4;&#x4E3A;6&#x3002;</p>
  1115. <p>&#x56DB;&#x6B21;&#x6325;&#x624B;&#x4E0E;&#x4E09;&#x6B21;&#x63E1;&#x624B;&#x57FA;&#x672C;&#x4E0A;&#x7C7B;&#x4F3C;&#xFF0C;&#x8FD9;&#x91CC;&#x5C31;&#x4E0D;&#x8D34;&#x51FA;tcpdump&#x6293;&#x5305;&#x7684;&#x8BE6;&#x60C5;&#x4E86;&#x3002;&#x5B9E;&#x9645;&#x7684;&#x7F51;&#x7EDC;&#x5F00;&#x53D1;&#x4E2D;&#xFF0C;&#x5C24;&#x5176;&#x662F;&#x9AD8;QPS&#x7684;&#x670D;&#x52A1;&#x5668;&#x7A0B;&#x5E8F;&#xFF0C;&#x53EF;&#x80FD;&#x5728;&#x5728;&#x670D;&#x52A1;&#x5668;&#x7A0B;&#x5E8F;&#x6240;&#x5728;&#x7684;&#x7CFB;&#x7EDF;&#x4E0A;&#x7559;&#x4E0B;&#x5927;&#x91CF;&#x975E;ESTABLISHED&#x7684;&#x4E2D;&#x95F4;&#x72B6;&#x6001;&#xFF0C;&#x5982;CLOSE_WAIT/TIME_WAIT&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;&#x4EE5;&#x4E0B;&#x6307;&#x4EE4;&#x6765;&#x7EDF;&#x8BA1;&#x8FD9;&#x4E9B;&#x72B6;&#x6001;&#x4FE1;&#x606F;&#xFF1A;</p>
  1116. <p><strong>netstat -n | awk &apos;/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}&apos;</strong> </p>
  1117. <p>&#x5F97;&#x5230;&#x7ED3;&#x679C;&#x53EF;&#x80FD;&#x7C7B;&#x4F3C;&#xFF1A;</p>
  1118. <p><img src="../imgs/netdown21.jpeg" alt=""></p>
  1119. <p>&#x8BA9;&#x6211;&#x4EEC;&#x518D;&#x8D34;&#x4E00;&#x5F20;tcp&#x4E09;&#x6B21;&#x63E1;&#x624B;&#x548C;&#x56DB;&#x6B21;&#x6325;&#x624B;&#x66F4;&#x6E05;&#x6670;&#x7684;&#x56FE;&#x5427;&#x3002;</p>
  1120. <p><img src="../imgs/netdown22.jpeg" alt=""></p>
  1121. <p> &#x4E0B;&#x9762;&#x770B;&#x4E0B;&#x4E00;&#x822C;&#x6BD4;&#x8F83;&#x5173;&#x5FC3;&#x7684;&#x4E09;&#x79CD;TCP&#x72B6;&#x6001;</p>
  1122. <ul>
  1123. <li><strong>SYN_RECV</strong></li>
  1124. </ul>
  1125. <p>&#x670D;&#x52A1;&#x7AEF;&#x6536;&#x5230;&#x5EFA;&#x7ACB;&#x8FDE;&#x63A5;&#x7684;SYN&#x6CA1;&#x6709;&#x6536;&#x5230;ACK&#x5305;&#x7684;&#x65F6;&#x5019;&#x5904;&#x5728;SYN_RECV&#x72B6;&#x6001;&#x3002;&#x6709;&#x4E24;&#x4E2A;&#x76F8;&#x5173;&#x7CFB;&#x7EDF;&#x914D;&#x7F6E;&#xFF1A;</p>
  1126. <p>1 net.ipv4.tcp_synack_retries&#xFF0C;&#x6574;&#x5F62;&#xFF0C;&#x9ED8;&#x8BA4;&#x503C;&#x662F;5</p>
  1127. <p>&#x5BF9;&#x4E8E;&#x8FDC;&#x7AEF;&#x7684;&#x8FDE;&#x63A5;&#x8BF7;&#x6C42;SYN&#xFF0C;&#x5185;&#x6838;&#x4F1A;&#x53D1;&#x9001;SYN &#xFF0B; ACK&#x6570;&#x636E;&#x62A5;&#xFF0C;&#x4EE5;&#x786E;&#x8BA4;&#x6536;&#x5230;&#x4E0A;&#x4E00;&#x4E2A; SYN&#x8FDE;&#x63A5;&#x8BF7;&#x6C42;&#x5305;&#x3002;&#x8FD9;&#x662F;&#x4E09;&#x6B21;&#x63E1;&#x624B;&#x673A;&#x5236;&#x7684;&#x7B2C;&#x4E8C;&#x4E2A;&#x6B65;&#x9AA4;&#x3002;&#x8FD9;&#x91CC;&#x51B3;&#x5B9A;&#x5185;&#x6838;&#x5728;&#x653E;&#x5F03;&#x8FDE;&#x63A5;&#x4E4B;&#x524D;&#x6240;&#x9001;&#x51FA;&#x7684; SYN+ACK &#x6570;&#x76EE;&#x3002;&#x4E0D;&#x5E94;&#x8BE5;&#x5927;&#x4E8E;255&#xFF0C;&#x9ED8;&#x8BA4;&#x503C;&#x662F;5&#xFF0C;&#x5BF9;&#x5E94;&#x4E8E;180&#x79D2;&#x5DE6;&#x53F3;&#x65F6;&#x95F4;&#x3002;&#x901A;&#x5E38;&#x6211;&#x4EEC;&#x4E0D;&#x5BF9;&#x8FD9;&#x4E2A;&#x503C;&#x8FDB;&#x884C;&#x4FEE;&#x6539;&#xFF0C;&#x56E0;&#x4E3A;&#x6211;&#x4EEC;&#x5E0C;&#x671B;TCP&#x8FDE;&#x63A5;&#x4E0D;&#x8981;&#x56E0;&#x4E3A;&#x5076;&#x5C14;&#x7684;&#x4E22;&#x5305;&#x800C;&#x65E0;&#x6CD5;&#x5EFA;&#x7ACB;&#x3002;</p>
  1128. <p>2 net.ipv4.tcp_syncookies</p>
  1129. <p>&#x4E00;&#x822C;&#x670D;&#x52A1;&#x5668;&#x90FD;&#x4F1A;&#x8BBE;&#x7F6E;net.ipv4.tcp_syncookies=1&#x6765;&#x9632;&#x6B62;SYN Flood&#x653B;&#x51FB;&#x3002;&#x5047;&#x8BBE;&#x4E00;&#x4E2A;&#x7528;&#x6237;&#x5411;&#x670D;&#x52A1;&#x5668;&#x53D1;&#x9001;&#x4E86;SYN&#x62A5;&#x6587;&#x540E;&#x7A81;&#x7136;&#x6B7B;&#x673A;&#x6216;&#x6389;&#x7EBF;&#xFF0C;&#x90A3;&#x4E48;&#x670D;&#x52A1;&#x5668;&#x5728;&#x53D1;&#x51FA;SYN+ACK&#x5E94;&#x7B54;&#x62A5;&#x6587;&#x540E;&#x662F;&#x65E0;&#x6CD5;&#x6536;&#x5230;&#x5BA2;&#x6237;&#x7AEF;&#x7684;ACK&#x62A5;&#x6587;&#x7684;&#xFF08;&#x7B2C;&#x4E09;&#x6B21;&#x63E1;&#x624B;&#x65E0;&#x6CD5;&#x5B8C;&#x6210;&#xFF09;&#xFF0C;&#x8FD9;&#x79CD;&#x60C5;&#x51B5;&#x4E0B;&#x670D;&#x52A1;&#x5668;&#x7AEF;&#x4E00;&#x822C;&#x4F1A;&#x91CD;&#x8BD5;&#xFF08;&#x518D;&#x6B21;&#x53D1;&#x9001;SYN+ACK&#x7ED9;&#x5BA2;&#x6237;&#x7AEF;&#xFF09;&#x5E76;&#x7B49;&#x5F85;&#x4E00;&#x6BB5;&#x65F6;&#x95F4;&#x540E;&#x4E22;&#x5F03;&#x8FD9;&#x4E2A;&#x672A;&#x5B8C;&#x6210;&#x7684;&#x8FDE;&#x63A5;&#xFF0C;&#x8FD9;&#x6BB5;&#x65F6;&#x95F4;&#x7684;&#x957F;&#x5EA6;&#x6211;&#x4EEC;&#x79F0;&#x4E3A;SYN Timeout&#xFF0C;&#x4E00;&#x822C;&#x6765;&#x8BF4;&#x8FD9;&#x4E2A;&#x65F6;&#x95F4;&#x662F;&#x5206;&#x949F;&#x7684;&#x6570;&#x91CF;&#x7EA7;&#xFF08;&#x5927;&#x7EA6;&#x4E3A;30&#x79D2;-2&#x5206;&#x949F;&#xFF09;&#x3002;&#x8FD9;&#x4E9B;&#x5904;&#x5728;SYNC_RECV&#x7684;TCP&#x8FDE;&#x63A5;&#x79F0;&#x4E3A;&#x534A;&#x8FDE;&#x63A5;&#xFF0C;&#x5E76;&#x5B58;&#x50A8;&#x5728;&#x5185;&#x6838;&#x7684;&#x534A;&#x8FDE;&#x63A5;&#x961F;&#x5217;&#x4E2D;&#xFF0C;&#x5728;&#x5185;&#x6838;&#x6536;&#x5230;&#x5BF9;&#x7AEF;&#x53D1;&#x9001;&#x7684;ack&#x5305;&#x65F6;&#x4F1A;&#x67E5;&#x627E;&#x534A;&#x8FDE;&#x63A5;&#x961F;&#x5217;&#xFF0C;&#x5E76;&#x5C06;&#x7B26;&#x5408;&#x7684;requst_sock&#x4FE1;&#x606F;&#x5B58;&#x50A8;&#x5230;&#x5B8C;&#x6210;&#x4E09;&#x6B21;&#x63E1;&#x624B;&#x7684;&#x8FDE;&#x63A5;&#x7684;&#x961F;&#x5217;&#x4E2D;&#xFF0C;&#x7136;&#x540E;&#x5220;&#x9664;&#x6B64;&#x534A;&#x8FDE;&#x63A5;&#x3002;&#x5927;&#x91CF;SYNC_RECV&#x7684;TCP&#x8FDE;&#x63A5;&#x4F1A;&#x5BFC;&#x81F4;&#x534A;&#x8FDE;&#x63A5;&#x961F;&#x5217;&#x6EA2;&#x51FA;&#xFF0C;&#x8FD9;&#x6837;&#x540E;&#x7EED;&#x7684;&#x8FDE;&#x63A5;&#x5EFA;&#x7ACB;&#x8BF7;&#x6C42;&#x4F1A;&#x88AB;&#x5185;&#x6838;&#x76F4;&#x63A5;&#x4E22;&#x5F03;&#xFF0C;&#x8FD9;&#x5C31;&#x662F;SYN Flood&#x653B;&#x51FB;&#x3002;&#x80FD;&#x591F;&#x6709;&#x6548;&#x9632;&#x8303;SYN Flood&#x653B;&#x51FB;&#x7684;&#x624B;&#x6BB5;&#x4E4B;&#x4E00;&#xFF0C;&#x5C31;&#x662F;SYN Cookie&#x3002;SYN Cookie&#x539F;&#x7406;&#x7531;D. J. Bernstain&#x548C; Eric Schenk&#x53D1;&#x660E;&#x3002;SYN Cookie&#x662F;&#x5BF9;TCP&#x670D;&#x52A1;&#x5668;&#x7AEF;&#x7684;&#x4E09;&#x6B21;&#x63E1;&#x624B;&#x534F;&#x8BAE;&#x4F5C;&#x4E00;&#x4E9B;&#x4FEE;&#x6539;&#xFF0C;&#x4E13;&#x95E8;&#x7528;&#x6765;&#x9632;&#x8303;SYN Flood&#x653B;&#x51FB;&#x7684;&#x4E00;&#x79CD;&#x624B;&#x6BB5;&#x3002;&#x5B83;&#x7684;&#x539F;&#x7406;&#x662F;&#xFF0C;&#x5728;TCP&#x670D;&#x52A1;&#x5668;&#x6536;&#x5230;SYN&#x5305;&#x5E76;&#x8FD4;&#x56DE;SYN+ACK&#x5305;&#x65F6;&#xFF0C;&#x4E0D;&#x5206;&#x914D;&#x4E00;&#x4E2A;&#x4E13;&#x95E8;&#x7684;&#x6570;&#x636E;&#x533A;&#xFF0C;&#x800C;&#x662F;&#x6839;&#x636E;&#x8FD9;&#x4E2A;SYN&#x5305;&#x8BA1;&#x7B97;&#x51FA;&#x4E00;&#x4E2A;cookie&#x503C;&#x3002;&#x5728;&#x6536;&#x5230;ACK&#x5305;&#x65F6;&#xFF0C;TCP&#x670D;&#x52A1;&#x5668;&#x5728;&#x6839;&#x636E;&#x90A3;&#x4E2A;cookie&#x503C;&#x68C0;&#x67E5;&#x8FD9;&#x4E2A;TCP ACK&#x5305;&#x7684;&#x5408;&#x6CD5;&#x6027;&#x3002;&#x5982;&#x679C;&#x5408;&#x6CD5;&#xFF0C;&#x518D;&#x5206;&#x914D;&#x4E13;&#x95E8;&#x7684;&#x6570;&#x636E;&#x533A;&#x8FDB;&#x884C;&#x5904;&#x7406;&#x672A;&#x6765;&#x7684;TCP&#x8FDE;&#x63A5;&#x3002;&#x89C2;&#x6D4B;&#x670D;&#x52A1;&#x4E0A;SYN_RECV&#x8FDE;&#x63A5;&#x4E2A;&#x6570;&#x4E3A;&#xFF1A;7314&#xFF0C;&#x5BF9;&#x4E8E;&#x4E00;&#x4E2A;&#x9AD8;&#x5E76;&#x53D1;&#x8FDE;&#x63A5;&#x7684;&#x901A;&#x8BAF;&#x670D;&#x52A1;&#x5668;&#xFF0C;&#x8FD9;&#x4E2A;&#x6570;&#x5B57;&#x6BD4;&#x8F83;&#x6B63;&#x5E38;&#x3002;</p>
  1130. <ul>
  1131. <li><strong>CLOSE_WAIT</strong></li>
  1132. </ul>
  1133. <p>&#x53D1;&#x8D77;TCP&#x8FDE;&#x63A5;&#x5173;&#x95ED;&#x7684;&#x4E00;&#x65B9;&#x79F0;&#x4E3A;client&#xFF0C;&#x88AB;&#x52A8;&#x5173;&#x95ED;&#x7684;&#x4E00;&#x65B9;&#x79F0;&#x4E3A;server&#x3002;&#x88AB;&#x52A8;&#x5173;&#x95ED;&#x7684;server&#x6536;&#x5230;FIN&#x540E;&#xFF0C;&#x4F46;&#x672A;&#x53D1;&#x51FA;ACK&#x7684;TCP&#x72B6;&#x6001;&#x662F;CLOSE_WAIT&#x3002;&#x51FA;&#x73B0;&#x8FD9;&#x79CD;&#x72B6;&#x51B5;&#x4E00;&#x822C;&#x90FD;&#x662F;&#x7531;&#x4E8E;server&#x7AEF;&#x4EE3;&#x7801;&#x7684;&#x95EE;&#x9898;&#xFF0C;&#x5982;&#x679C;&#x4F60;&#x7684;&#x670D;&#x52A1;&#x5668;&#x4E0A;&#x51FA;&#x73B0;&#x5927;&#x91CF;CLOSE_WAIT&#xFF0C;&#x5E94;&#x8BE5;&#x8981;&#x8003;&#x8651;&#x68C0;&#x67E5;&#x4EE3;&#x7801;&#x3002;</p>
  1134. <ul>
  1135. <li><strong>TIME_WAIT</strong></li>
  1136. </ul>
  1137. <p>&#x6839;&#x636E;&#x4E09;&#x6B21;&#x63E1;&#x624B;&#x65AD;&#x5F00;&#x8FDE;&#x63A5;&#x89C4;&#x5B9A;&#xFF0C;&#x53D1;&#x8D77;socket&#x4E3B;&#x52A8;&#x5173;&#x95ED;&#x7684;&#x4E00;&#x65B9; socket&#x5C06;&#x8FDB;&#x5165;TIME_WAIT&#x72B6;&#x6001;&#x3002;TIME_WAIT&#x72B6;&#x6001;&#x5C06;&#x6301;&#x7EED;2MSL&#x3002;TIME_WAIT&#x72B6;&#x6001;&#x4E0B;&#x7684;socket&#x4E0D;&#x80FD;&#x88AB;&#x56DE;&#x6536;&#x4F7F;&#x7528;&#x3002; &#x5177;&#x4F53;&#x73B0;&#x8C61;&#x662F;&#x5BF9;&#x4E8E;&#x4E00;&#x4E2A;&#x5904;&#x7406;&#x5927;&#x91CF;&#x77ED;&#x8FDE;&#x63A5;&#x7684;&#x670D;&#x52A1;&#x5668;&#xFF0C;&#x5982;&#x679C;&#x662F;&#x7531;&#x670D;&#x52A1;&#x5668;&#x4E3B;&#x52A8;&#x5173;&#x95ED;&#x5BA2;&#x6237;&#x7AEF;&#x7684;&#x8FDE;&#x63A5;&#xFF0C;&#x5C06;&#x5BFC;&#x81F4;&#x670D;&#x52A1;&#x5668;&#x7AEF;&#x5B58;&#x5728;&#x5927;&#x91CF;&#x7684;&#x5904;&#x4E8E;TIME_WAIT&#x72B6;&#x6001;&#x7684;socket&#xFF0C; &#x751A;&#x81F3;&#x6BD4;&#x5904;&#x4E8E;Established&#x72B6;&#x6001;&#x4E0B;&#x7684;socket&#x591A;&#x7684;&#x591A;&#xFF0C;&#x4E25;&#x91CD;&#x5F71;&#x54CD;&#x670D;&#x52A1;&#x5668;&#x7684;&#x5904;&#x7406;&#x80FD;&#x529B;&#xFF0C;&#x751A;&#x81F3;&#x8017;&#x5C3D;&#x53EF;&#x7528;&#x7684;socket&#xFF0C;&#x505C;&#x6B62;&#x670D;&#x52A1;&#x3002;TIME_WAIT&#x662F;TCP&#x534F;&#x8BAE;&#x7528;&#x4EE5;&#x4FDD;&#x8BC1;&#x88AB;&#x91CD;&#x65B0;&#x5206;&#x914D;&#x7684;socket&#x4E0D;&#x4F1A;&#x53D7;&#x5230;&#x4E4B;&#x524D;&#x6B8B;&#x7559;&#x7684;&#x5EF6;&#x8FDF;&#x91CD;&#x53D1;&#x62A5;&#x6587;&#x5F71;&#x54CD;&#x7684;&#x673A;&#x5236;,&#x662F;&#x5FC5;&#x8981;&#x7684;&#x903B;&#x8F91;&#x4FDD;&#x8BC1;&#x3002;&#x548C;TIME_WAIT&#x72B6;&#x6001;&#x6709;&#x5173;&#x7684;&#x7CFB;&#x7EDF;&#x53C2;&#x6570;&#x6709;&#x4E00;&#x822C;&#x7531;3&#x4E2A;&#xFF0C;&#x672C;&#x673A;&#x8BBE;&#x7F6E;&#x5982;&#x4E0B;&#xFF1A;</p>
  1138. <pre class="language-"><code>net.ipv4.tcp_tw_recycle = 1
  1139. net.ipv4.tcp_tw_reuse = 1
  1140. net.ipv4.tcp_fin_timeout = 30
  1141. net.ipv4.tcp_fin_timeout&#xFF0C;&#x9ED8;&#x8BA4;60s&#xFF0C;&#x51CF;&#x5C0F;fin_timeout&#xFF0C;&#x51CF;&#x5C11;TIME_WAIT&#x8FDE;&#x63A5;&#x6570;&#x91CF;&#x3002;
  1142. net.ipv4.tcp_tw_reuse = 1&#x8868;&#x793A;&#x5F00;&#x542F;&#x91CD;&#x7528;&#x3002;&#x5141;&#x8BB8;&#x5C06;TIME-WAIT sockets&#x91CD;&#x65B0;&#x7528;&#x4E8E;&#x65B0;&#x7684;TCP&#x8FDE;&#x63A5;&#xFF0C;&#x9ED8;&#x8BA4;&#x4E3A;0&#xFF0C;&#x8868;&#x793A;&#x5173;&#x95ED;&#xFF1B;
  1143. net.ipv4.tcp_tw_recycle = 1&#x8868;&#x793A;&#x5F00;&#x542F;TCP&#x8FDE;&#x63A5;&#x4E2D;TIME-WAIT sockets&#x7684;&#x5FEB;&#x901F;&#x56DE;&#x6536;&#xFF0C;&#x9ED8;&#x8BA4;&#x4E3A;0&#xFF0C;&#x8868;&#x793A;&#x5173;&#x95ED;&#x3002;
  1144. </code></pre><p>&#x6211;&#x4EEC;&#x8FD9;&#x91CC;&#x603B;&#x7ED3;&#x4E00;&#x4E0B;&#x8FD9;&#x4E9B;&#x4E0E;tcp&#x72B6;&#x6001;&#x7684;&#x9009;&#x9879;&#xFF1A;</p>
  1145. <ul>
  1146. <li><p>net.ipv4.tcp_syncookies=1 &#x8868;&#x793A;&#x5F00;&#x542F;SYN Cookies&#x3002;&#x5F53;&#x51FA;&#x73B0;SYN&#x7B49;&#x5F85;&#x961F;&#x5217;&#x6EA2;&#x51FA;&#x65F6;&#xFF0C;&#x542F;&#x7528;cookie&#x6765;&#x5904;&#x7406;&#xFF0C;&#x53EF;&#x9632;&#x8303;&#x5C11;&#x91CF;&#x7684;SYN&#x653B;&#x51FB;&#x3002;&#x9ED8;&#x8BA4;&#x4E3A;0&#xFF0C;&#x8868;&#x793A;&#x5173;&#x95ED;&#x3002;</p>
  1147. </li>
  1148. <li><p>net.ipv4.tcp_tw_reuse=1 &#x8868;&#x793A;&#x5F00;&#x542F;&#x91CD;&#x7528;&#x3002;&#x5141;&#x8BB8;&#x5C06;TIME-WAIT&#x5957;&#x63A5;&#x5B57;&#x91CD;&#x65B0;&#x7528;&#x4E8E;&#x65B0;&#x7684;TCP&#x8FDE;&#x63A5;&#x3002;&#x9ED8;&#x8BA4;&#x4E3A;0&#xFF0C;&#x8868;&#x793A;&#x5173;&#x95ED;&#x3002;</p>
  1149. </li>
  1150. <li><p>net.ipv4.tcp_tw_recycle=1 &#x8868;&#x793A;&#x5F00;&#x542F;TCP&#x8FDE;&#x63A5;&#x4E2D;TIME-WAIT&#x5957;&#x63A5;&#x5B57;&#x7684;&#x5FEB;&#x901F;&#x56DE;&#x6536;&#x3002;&#x9ED8;&#x8BA4;&#x4E3A;0&#xFF0C;&#x8868;&#x793A;&#x5173;&#x95ED;&#x3002;**</p>
  1151. </li>
  1152. <li><p>net.ipv4.tcp_fin_timeout=30 &#x8868;&#x793A;&#x5982;&#x679C;&#x5957;&#x63A5;&#x5B57;&#x7531;&#x672C;&#x7AEF;&#x8981;&#x6C42;&#x5173;&#x95ED;&#xFF0C;&#x8FD9;&#x4E2A;&#x53C2;&#x6570;&#x51B3;&#x5B9A;&#x4E86;&#x5B83;&#x4FDD;&#x6301;&#x5728;FIN-WAIT-2&#x72B6;&#x6001;&#x7684;&#x65F6;&#x95F4;&#x3002;</p>
  1153. </li>
  1154. <li><p>net.ipv4.tcp_keepalive_time=1200 &#x8868;&#x793A;&#x5F53;keepalive&#x542F;&#x7528;&#x65F6;&#xFF0C;TCP&#x53D1;&#x9001;keepalive&#x6D88;&#x606F;&#x7684;&#x9891;&#x5EA6;&#x3002;&#x9ED8;&#x8BA4;&#x662F;2&#x5C0F;&#x65F6;&#xFF0C;&#x8FD9;&#x91CC;&#x6539;&#x4E3A;20&#x5206;&#x949F;&#x3002;</p>
  1155. </li>
  1156. <li><p>net.ipv4.ip_local_port_range=1024 65000 &#x8868;&#x793A;&#x5411;&#x5916;&#x8FDE;&#x63A5;&#x7684;&#x7AEF;&#x53E3;&#x8303;&#x56F4;&#x3002;&#x9ED8;&#x8BA4;&#x503C;&#x5F88;&#x5C0F;&#xFF1A;32768&#xFF5E;61000&#xFF0C;&#x6539;&#x4E3A;1024&#xFF5E;65000&#x3002;</p>
  1157. </li>
  1158. <li><p>net.ipv4.tcp_max_syn_backlog=8192 &#x8868;&#x793A;SYN&#x961F;&#x5217;&#x7684;&#x957F;&#x5EA6;&#xFF0C;&#x9ED8;&#x8BA4;&#x4E3A;1024&#xFF0C;&#x52A0;&#x5927;&#x961F;&#x5217;&#x957F;&#x5EA6;&#x4E3A;8192&#xFF0C;&#x53EF;&#x4EE5;&#x5BB9;&#x7EB3;&#x66F4;&#x591A;&#x7B49;&#x5F85;&#x8FDE;&#x63A5;&#x7684;&#x7F51;&#x7EDC;&#x8FDE;&#x63A5;&#x6570;&#x3002;</p>
  1159. </li>
  1160. <li><p>net.ipv4.tcp_max_tw_buckets=5000 &#x8868;&#x793A;&#x7CFB;&#x7EDF;&#x540C;&#x65F6;&#x4FDD;&#x6301;TIME_WAIT&#x5957;&#x63A5;&#x5B57;&#x7684;&#x6700;&#x5927;&#x6570;&#x91CF;&#xFF0C;&#x5982;&#x679C;&#x8D85;&#x8FC7;&#x8FD9;&#x4E2A;&#x6570; &#x5B57;&#xFF0C;TIME_WAIT&#x5957;&#x63A5;&#x5B57;&#x5C06;&#x7ACB;&#x523B;&#x88AB;&#x6E05;&#x9664;&#x5E76;&#x6253;&#x5370;&#x8B66;&#x544A;&#x4FE1;&#x606F;&#x3002;&#x9ED8;&#x8BA4;&#x4E3A;180000&#xFF0C;&#x6539;&#x4E3A;5000&#x3002;</p>
  1161. </li>
  1162. </ul>
  1163. <p>&#x6CE8;&#x610F;</p>
  1164. <p>&#x4E0A;&#x6587;&#x4E2D;&#x7528;&#x7EA2;&#x8272;&#x5B57;&#x4F53;&#x6807;&#x8BC6;&#x51FA;&#x6765;&#x7684;&#x4E24;&#x4E2A;&#x53C2;&#x6570;&#xFF1A;</p>
  1165. <pre class="language-"><code>net.ipv4.tcp_tw_recycle
  1166. net.ipv4.tcp_tw_reuse
  1167. </code></pre><p>&#x5728;&#x5B9E;&#x9645;linux&#x5185;&#x6838;&#x53C2;&#x6570;&#x8C03;&#x4F18;&#x65F6;&#x5E76;&#x4E0D;&#x5EFA;&#x8BAE;&#x5F00;&#x542F;&#x3002;&#x81F3;&#x4E8E;&#x539F;&#x56E0;&#xFF0C;&#x6211;&#x4F1A;&#x5355;&#x72EC;&#x7528;&#x4E00;&#x7BC7;&#x6587;&#x7AE0;&#x6765;&#x4ECB;&#x7ECD;&#x3002;</p>
  1168. <p><img src="../imgs/netdown22.jpeg" alt=""></p>
  1169. <h2 id="&#x56DB;&#x3001;-&#x5173;&#x4E8E;&#x8DE8;&#x7CFB;&#x7EDF;&#x4E0E;&#x8DE8;&#x8BED;&#x8A00;&#x4E4B;&#x95F4;&#x7684;&#x7F51;&#x7EDC;&#x901A;&#x4FE1;&#x8FDE;&#x901A;&#x95EE;&#x9898;"><a name="&#x56DB;&#x3001;-&#x5173;&#x4E8E;&#x8DE8;&#x7CFB;&#x7EDF;&#x4E0E;&#x8DE8;&#x8BED;&#x8A00;&#x4E4B;&#x95F4;&#x7684;&#x7F51;&#x7EDC;&#x901A;&#x4FE1;&#x8FDE;&#x901A;&#x95EE;&#x9898;" class="anchor-navigation-ex-anchor" href="#&#x56DB;&#x3001;-&#x5173;&#x4E8E;&#x8DE8;&#x7CFB;&#x7EDF;&#x4E0E;&#x8DE8;&#x8BED;&#x8A00;&#x4E4B;&#x95F4;&#x7684;&#x7F51;&#x7EDC;&#x901A;&#x4FE1;&#x8FDE;&#x901A;&#x95EE;&#x9898;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x56DB;&#x3001; &#x5173;&#x4E8E;&#x8DE8;&#x7CFB;&#x7EDF;&#x4E0E;&#x8DE8;&#x8BED;&#x8A00;&#x4E4B;&#x95F4;&#x7684;&#x7F51;&#x7EDC;&#x901A;&#x4FE1;&#x8FDE;&#x901A;&#x95EE;&#x9898;</h2>
  1170. <p>&#x5982;&#x4F55;&#x5728;Java&#x8BED;&#x8A00;&#x4E2D;&#x53BB;&#x89E3;&#x6790;C++&#x7684;&#x7F51;&#x7EDC;&#x6570;&#x636E;&#x5305;&#xFF0C;&#x5982;&#x4F55;&#x5728;C++&#x4E2D;&#x89E3;&#x6790;Java&#x7684;&#x7F51;&#x7EDC;&#x6570;&#x636E;&#x5305;&#xFF0C;&#x5BF9;&#x4E8E;&#x5F88;&#x591A;&#x4EBA;&#x6765;&#x8BF4;&#x662F;&#x4E00;&#x4EF6;&#x5F88;&#x56F0;&#x96BE;&#x7684;&#x4E8B;&#x60C5;&#xFF0C;&#x6240;&#x4EE5;&#x53EA;&#x80FD;&#x53D8;&#x7740;&#x6CD5;&#x5B50;&#x4F7F;&#x7528;&#x7B2C;&#x4E09;&#x65B9;&#x7684;&#x5E93;&#x3002;&#x5176;&#x5B9E;&#x4F7F;&#x7528;tcpdump&#x5DE5;&#x5177;&#x53EF;&#x4EE5;&#x5F88;&#x5BB9;&#x6613;&#x89E3;&#x51B3;&#x4E0E;&#x5206;&#x6790;&#x3002;</p>
  1171. <p>&#x9996;&#x5148;&#xFF0C;&#x6211;&#x4EEC;&#x9700;&#x8981;&#x660E;&#x786E;&#x5B57;&#x8282;&#x5E8F;&#x5217;&#x8FD9;&#x6837;&#x4E00;&#x4E2A;&#x6982;&#x5FF5;&#xFF0C;&#x5373;&#x6211;&#x4EEC;&#x8BF4;&#x7684;&#x5927;&#x7AEF;&#x7F16;&#x7801;(big endian)&#x548C;&#x5C0F;&#x7AEF;&#x7F16;&#x7801;(little endian)&#xFF0C;x86&#x548C;x64&#x7CFB;&#x5217;&#x7684;cpu&#x4F7F;&#x7528;&#x5C0F;&#x7AEF;&#x7F16;&#x7801;&#xFF0C;&#x800C;&#x6570;&#x636E;&#x5728;&#x7F51;&#x7EDC;&#x4E0A;&#x4F20;&#x8F93;&#xFF0C;&#x4EE5;&#x53CA;Java&#x8BED;&#x8A00;&#x4E2D;&#xFF0C;&#x4F7F;&#x7528;&#x7684;&#x662F;&#x5927;&#x7AEF;&#x7F16;&#x7801;&#x3002;&#x90A3;&#x4E48;&#x8FD9;&#x662F;&#x4EC0;&#x4E48;&#x610F;&#x601D;&#x5462;&#xFF1F;</p>
  1172. <p>&#x6211;&#x4EEC;&#x4E3E;&#x4E2A;&#x4F8B;&#x5B50;&#xFF0C;&#x770B;&#x4E00;&#x4E2A;x64&#x673A;&#x5668;&#x4E0A;&#x7684;32&#x4F4D;&#x6570;&#x503C;&#x5728;&#x5185;&#x5B58;&#x4E2D;&#x7684;&#x5B58;&#x50A8;&#x65B9;&#x5F0F;&#xFF1A;</p>
  1173. <p><img src="../imgs/netdown24.webp" alt=""></p>
  1174. <p>i &#x5728;&#x5185;&#x5B58;&#x4E2D;&#x7684;&#x5730;&#x5740;&#x5E8F;&#x5217;&#x662F;0x003CF7C4~ 0x003CF7C8&#xFF0C;&#x503C;&#x4E3A;40 e2 01 00&#x3002;</p>
  1175. <p><img src="../imgs/netdown25.jpeg" alt=""></p>
  1176. <p> &#x5341;&#x516D;&#x8FDB;&#x5236;0001e240&#x6B63;&#x597D;&#x7B49;&#x4E8E;10&#x8FDB;&#x5236;123456&#xFF0C;&#x4E5F;&#x5C31;&#x662F;&#x8BF4;&#x5C0F;&#x7AEF;&#x7F16;&#x7801;&#x4E2D;&#x6743;&#x91CD;&#x9AD8;&#x7684;&#x7684;&#x5B57;&#x8282;&#x503C;&#x5B58;&#x50A8;&#x5728;&#x5185;&#x5B58;&#x5730;&#x5740;&#x9AD8;&#xFF08;&#x5730;&#x5740;&#x503C;&#x8F83;&#x5927;&#xFF09;&#x7684;&#x4F4D;&#x7F6E;&#xFF0C;&#x6743;&#x91CD;&#x503C;&#x4F4E;&#x7684;&#x5B57;&#x8282;&#x503C;&#x5B58;&#x50A8;&#x5728;&#x5185;&#x5B58;&#x5730;&#x5740;&#x4F4E;&#xFF08;&#x5730;&#x5740;&#x503C;&#x8F83;&#x5C0F;&#xFF09;&#x7684;&#x4F4D;&#x7F6E;&#xFF0C;&#x4E5F;&#x5C31;&#x662F;&#x6240;&#x8C13;&#x7684;&#x9AD8;&#x9AD8;&#x4F4E;&#x4F4E;&#x3002;</p>
  1177. <p>&#x76F8;&#x53CD;&#xFF0C;&#x5927;&#x7AEF;&#x7F16;&#x7801;&#x7684;&#x89C4;&#x5219;&#x5E94;&#x8BE5;&#x662F;&#x9AD8;&#x4F4E;&#x4F4E;&#x9AD8;&#xFF0C;&#x4E5F;&#x5C31;&#x662F;&#x8BF4;&#x6743;&#x503C;&#x9AD8;&#x5B57;&#x8282;&#x5B58;&#x50A8;&#x5728;&#x5185;&#x5B58;&#x5730;&#x5740;&#x4F4E;&#x7684;&#x4F4D;&#x7F6E;&#xFF0C;&#x6743;&#x503C;&#x4F4E;&#x7684;&#x5B57;&#x8282;&#x5B58;&#x50A8;&#x5728;&#x5185;&#x5B58;&#x5730;&#x5740;&#x9AD8;&#x7684;&#x4F4D;&#x7F6E;&#x3002;</p>
  1178. <p>&#x6240;&#x4EE5;&#xFF0C;&#x5982;&#x679C;&#x6211;&#x4EEC;&#x4E00;&#x4E2A;C++&#x7A0B;&#x5E8F;&#x7684;int32&#x503C;123456&#x4E0D;&#x4F5C;&#x8F6C;&#x6362;&#x5730;&#x4F20;&#x7ED9;Java&#x7A0B;&#x5E8F;&#xFF0C;&#x90A3;&#x4E48;Java&#x6309;&#x7167;&#x5927;&#x7AEF;&#x7F16;&#x7801;&#x7684;&#x5F62;&#x5F0F;&#x8BFB;&#x51FA;&#x6765;&#x7684;&#x503C;&#x662F;&#xFF1A;&#x5341;&#x516D;&#x8FDB;&#x5236;40E20100 = &#x5341;&#x8FDB;&#x5236;1088553216&#x3002;</p>
  1179. <p>&#x6240;&#x4EE5;&#xFF0C;&#x6211;&#x4EEC;&#x8981;&#x4E48;&#x5728;&#x53D1;&#x9001;&#x65B9;&#x5C06;&#x6570;&#x636E;&#x8F6C;&#x6362;&#x6210;&#x7F51;&#x7EDC;&#x5B57;&#x8282;&#x5E8F;&#xFF08;&#x5927;&#x7AEF;&#x7F16;&#x7801;&#xFF09;&#xFF0C;&#x8981;&#x4E48;&#x5728;&#x63A5;&#x6536;&#x7AEF;&#x518D;&#x8FDB;&#x884C;&#x8F6C;&#x6362;&#x3002;</p>
  1180. <p>&#x4E0B;&#x9762;&#x770B;&#x4E00;&#x4E0B;&#x5982;&#x679C;C++&#x7AEF;&#x4F20;&#x9001;&#x4E00;&#x4E2A;&#x5982;&#x4E0B;&#x6570;&#x636E;&#x7ED3;&#x6784;&#xFF0C;Java&#x7AEF;&#x8BE5;&#x5982;&#x4F55;&#x89E3;&#x6790;&#xFF08;&#x7531;&#x4E8E;Java&#x4E2D;&#x662F;&#x6CA1;&#x6709;&#x6307;&#x9488;&#x7684;&#xFF0C;&#x4E5F;&#x65E0;&#x6CD5;&#x64CD;&#x4F5C;&#x5185;&#x5B58;&#x5730;&#x5740;&#xFF0C;&#x5BFC;&#x81F4;&#x5F88;&#x591A;&#x4EBA;&#x65E0;&#x4ECE;&#x4E0B;&#x624B;&#xFF09;&#xFF0C;&#x4E0B;&#x9762;&#x5229;&#x7528;tcpdump&#x6765;&#x89E3;&#x51B3;&#x8FD9;&#x4E2A;&#x95EE;&#x9898;&#x7684;&#x601D;&#x8DEF;&#x3002;</p>
  1181. <p>&#x6211;&#x4EEC;&#x5BA2;&#x6237;&#x7AEF;&#x53D1;&#x9001;&#x7684;&#x6570;&#x636E;&#x5305;&#xFF1A;</p>
  1182. <p><img src="../imgs/netdown26.png" alt=""></p>
  1183. <p>&#x5176;&#x7ED3;&#x6784;&#x4F53;&#x5B9A;&#x4E49;&#x5982;&#x4E0B;&#xFF1A;</p>
  1184. <p><img src="../imgs/netdown27.jpeg" alt=""></p>
  1185. <p> &#x5229;&#x7528;tcpdump&#x6293;&#x5230;&#x7684;&#x5305;&#x5982;&#x4E0B;&#xFF1A;</p>
  1186. <p><img src="../imgs/netdown28.webp" alt=""></p>
  1187. <p>&#x653E;&#x5927;&#x4E00;&#x70B9;&#xFF1A;</p>
  1188. <p><img src="../imgs/netdown29.png" alt=""></p>
  1189. <p> &#x6211;&#x4EEC;&#x767D;&#x8272;&#x6807;&#x8BC6;&#x51FA;&#x6765;&#x5C31;&#x662F;&#x6211;&#x4EEC;&#x6536;&#x5230;&#x7684;&#x6570;&#x636E;&#x5305;&#x3002;&#x8FD9;&#x91CC;&#x6211;&#x60F3;&#x8BF4;&#x660E;&#x4E24;&#x70B9;&#xFF1A;</p>
  1190. <ul>
  1191. <li>&#x5982;&#x679C;&#x6211;&#x4EEC;&#x77E5;&#x9053;&#x53D1;&#x9001;&#x7AEF;&#x53D1;&#x9001;&#x7684;&#x5B57;&#x8282;&#x6D41;&#xFF0C;&#x518D;&#x6BD4;&#x7167;&#x63A5;&#x6536;&#x7AEF;&#x6536;&#x5230;&#x7684;&#x5B57;&#x8282;&#x6D41;&#xFF0C;&#x6211;&#x4EEC;&#x5C31;&#x80FD;&#x68C0;&#x6D4B;&#x6570;&#x636E;&#x5305;&#x7684;&#x5B8C;&#x6574;&#x6027;&#xFF0C;&#x6216;&#x8005;&#x5229;&#x7528;&#x8FD9;&#x4E2A;&#x6765;&#x6392;&#x67E5;&#x4E00;&#x4E9B;&#x95EE;&#x9898;&#xFF1B;</li>
  1192. <li>&#x5BF9;&#x4E8E;Java&#x7A0B;&#x5E8F;&#x53EA;&#x8981;&#x6309;&#x7167;&#x8FD9;&#x4E2A;&#x987A;&#x5E8F;&#xFF0C;&#x5148;&#x5229;&#x7528;java.net.Socket&#x7684;&#x8F93;&#x51FA;&#x6D41;java.io.DataOutputStream&#x5BF9;&#x8C61;readByte&#x3001;readInt32&#x3001;readInt32&#x3001;readBytes&#x3001;readBytes&#x65B9;&#x6CD5;&#x4F9D;&#x6B21;&#x8BFB;&#x51FA;&#x4E00;&#x4E2A;char&#x3001;int32&#x3001;int32&#x3001;16&#x4E2A;&#x5B57;&#x8282;&#x7684;&#x5B57;&#x8282;&#x6570;&#x7EC4;&#x3001;63&#x4E2A;&#x5B57;&#x8282;&#x6570;&#x7EC4;&#x5373;&#x53EF;&#xFF0C;&#x4E3A;&#x4E86;&#x8FD8;&#x539F;&#x50CF;int32&#x8FD9;&#x6837;&#x7684;&#x6574;&#x5F62;&#x503C;&#xFF0C;&#x6211;&#x4EEC;&#x9700;&#x8981;&#x505A;&#x4E00;&#x4E9B;&#x5C0F;&#x7AEF;&#x7F16;&#x7801;&#x5411;&#x5927;&#x7AEF;&#x7F16;&#x7801;&#x7684;&#x8F6C;&#x6362;&#x3002;</li>
  1193. </ul>
  1194. <p>&#x53C2;&#x8003;&#x8D44;&#x6599;&#xFF1A;</p>
  1195. <ul>
  1196. <li>&#x300A;TCP/IP&#x8BE6;&#x89E3;&#x5377;&#x4E00;&#xFF1A;&#x534F;&#x8BAE;&#x300B;</li>
  1197. <li>&#x300A;TCP/IP&#x8BE6;&#x89E3;&#x5377;&#x4E8C;&#xFF1A;&#x5B9E;&#x73B0;&#x300B;</li>
  1198. <li>&#x6E38;&#x53CC;&#x300A;Linux&#x9AD8;&#x6027;&#x80FD;&#x670D;&#x52A1;&#x5668;&#x7F16;&#x7A0B;&#x300B;</li>
  1199. <li><a href="https://man.cx/?page=iptables(8" target="_blank">https://man.cx/?page=iptables(8</a>)</li>
  1200. <li><a href="https://vincent.bernat.im/en/blog/2014-tcp-time-wait-state-linux" target="_blank">https://vincent.bernat.im/en/blog/2014-tcp-time-wait-state-linux</a></li>
  1201. <li><a href="https://blog.csdn.net/chinalinuxzend/article/details/1792184" target="_blank">https://blog.csdn.net/chinalinuxzend/article/details/1792184</a></li>
  1202. <li><a href="https://www.zhihu.com/question/29212769" target="_blank">https://www.zhihu.com/question/29212769</a></li>
  1203. <li><a href="https://blog.csdn.net/launch_225/article/details/9211731" target="_blank">https://blog.csdn.net/launch_225/article/details/9211731</a></li>
  1204. <li><a href="https://www.cnblogs.com/splenday/articles/7668589.html" target="_blank">https://www.cnblogs.com/splenday/articles/7668589.html</a></li>
  1205. <li><a href="http://man.linuxde.net/ss" target="_blank">http://man.linuxde.net/ss</a></li>
  1206. <li><a href="http://www.cnxct.com/coping-with-the-tcp-time_wait-state-on-busy-linux-servers-in-chinese-and-dont-enable-tcp_tw_recycle/" target="_blank">http://www.cnxct.com/coping-with-the-tcp-time_wait-state-on-busy-linux-servers-in-chinese-and-dont-enable-tcp_tw_recycle/</a></li>
  1207. <li><a href="https://www.cnblogs.com/xkus/p/7463135.html" target="_blank">https://www.cnblogs.com/xkus/p/7463135.html</a> </li>
  1208. </ul>
  1209. <footer class="page-footer"><span class="copyright">&#x5982;&#x9700;&#x4E0B;&#x8F7D;&#x672C;&#x7AD9;&#x5168;&#x90E8;&#x6280;&#x672F;&#x6587;&#x7AE0;&#xFF0C;&#x53EF;&#x4EE5;&#x5728;&#x3010;&#x9AD8;&#x6027;&#x80FD;&#x670D;&#x52A1;&#x5668;&#x5F00;&#x53D1;&#x3011;&#x516C;&#x4F17;&#x53F7;&#x56DE;&#x590D;&#x5173;&#x952E;&#x5B57;&#x201C;&#x6587;&#x7AE0;&#x4E0B;&#x8F7D;&#x201D;&#x5373;&#x53EF;&#x3002;</span><span class="footer-modification">&#x6700;&#x8FD1;&#x66F4;&#x65B0;&#x65F6;&#x95F4;&#xFF1A;
  1210. 2020-09-16 16:31:23
  1211. </span></footer>
  1212. <script>console.log("plugin-popup....");document.onclick = function(e){ e.target.tagName === "IMG" && window.open(e.target.src,e.target.src)}</script><style>img{cursor:pointer}</style>
  1213. </section>
  1214. </div>
  1215. <div class="search-results">
  1216. <div class="has-results">
  1217. <h1 class="search-results-title"><span class='search-results-count'></span> results matching "<span class='search-query'></span>"</h1>
  1218. <ul class="search-results-list"></ul>
  1219. </div>
  1220. <div class="no-results">
  1221. <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
  1222. </div>
  1223. </div>
  1224. </div>
  1225. </div>
  1226. </div>
  1227. </div>
  1228. <a href="从抓包的角度分析connect函数的连接过程.html" class="navigation navigation-prev " aria-label="Previous page: 从抓包的角度分析connect函数的连接过程">
  1229. <i class="fa fa-angle-left"></i>
  1230. </a>
  1231. <a href="../高性能服务器框架设计/" class="navigation navigation-next " aria-label="Next page: 高性能服务器框架设计">
  1232. <i class="fa fa-angle-right"></i>
  1233. </a>
  1234. </div>
  1235. <script>
  1236. var gitbook = gitbook || [];
  1237. gitbook.push(function() {
  1238. gitbook.page.hasChanged({"page":{"title":"服务器开发中网络数据分析与故障排查经验漫谈","level":"3.1.6","depth":2,"next":{"title":"高性能服务器框架设计","level":"4.1","depth":1,"path":"articles/高性能服务器框架设计/README.md","ref":"articles/高性能服务器框架设计/README.md","articles":[{"title":"主线程与工作线程的分工","level":"4.1.1","depth":2,"path":"articles/高性能服务器框架设计/主线程与工作线程的分工.md","ref":"articles/高性能服务器框架设计/主线程与工作线程的分工.md","articles":[]},{"title":"Reactor模式","level":"4.1.2","depth":2,"path":"articles/高性能服务器框架设计/Reactor模式.md","ref":"articles/高性能服务器框架设计/Reactor模式.md","articles":[]},{"title":"实例:一个服务器程序的架构介绍","level":"4.1.3","depth":2,"path":"articles/高性能服务器框架设计/实例:一个服务器程序的架构介绍.md","ref":"articles/高性能服务器框架设计/实例:一个服务器程序的架构介绍.md","articles":[]},{"title":"错误码系统的设计","level":"4.1.4","depth":2,"path":"articles/高性能服务器框架设计/错误码系统的设计.md","ref":"articles/高性能服务器框架设计/错误码系统的设计.md","articles":[]},{"title":"日志系统的设计","level":"4.1.5","depth":2,"path":"articles/高性能服务器框架设计/日志系统的设计.md","ref":"articles/高性能服务器框架设计/日志系统的设计.md","articles":[]},{"title":"如何设计断线自动重连机制","level":"4.1.6","depth":2,"path":"articles/高性能服务器框架设计/如何设计断线自动重连机制.md","ref":"articles/高性能服务器框架设计/如何设计断线自动重连机制.md","articles":[]},{"title":"心跳包机制设计详解","level":"4.1.7","depth":2,"path":"articles/高性能服务器框架设计/心跳包机制设计详解.md","ref":"articles/高性能服务器框架设计/心跳包机制设计详解.md","articles":[]},{"title":"业务数据处理一定要单独开线程吗","level":"4.1.8","depth":2,"path":"articles/高性能服务器框架设计/业务数据处理一定要单独开线程吗.md","ref":"articles/高性能服务器框架设计/业务数据处理一定要单独开线程吗.md","articles":[]},{"title":"C++ 高性能服务器网络框架设计细节","level":"4.1.9","depth":2,"path":"articles/高性能服务器框架设计/C++高性能服务器网络框架设计细节.md","ref":"articles/高性能服务器框架设计/C++高性能服务器网络框架设计细节.md","articles":[]}]},"previous":{"title":"从抓包的角度分析connect函数的连接过程","level":"3.1.5","depth":2,"path":"articles/程序员必知必会的网络命令/从抓包的角度分析connect函数的连接过程.md","ref":"articles/程序员必知必会的网络命令/从抓包的角度分析connect函数的连接过程.md","articles":[]},"dir":"ltr"},"config":{"plugins":["chapter-fold","-lunr","-search","search-pro","splitter","popup","back-to-top-button","hide-element","prism","-highlight","tbfed-pagefooter","code","anchor-navigation-ex","theme-fexa","livereload"],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"tbfed-pagefooter":{"copyright":"如需下载本站全部技术文章,可以在【高性能服务器开发】公众号回复关键字“文章下载”即可。","modify_label":"最近更新时间:","modify_format":"YYYY-MM-DD HH:mm:ss"},"chapter-fold":{},"prism":{},"livereload":{},"splitter":{},"search-pro":{},"popup":{},"theme-fexa":{"search-placeholder":"输入关键字搜索","logo":"./logo.png","favicon":"./favicon.ico"},"code":{"copyButtons":true},"hide-element":{"elements":[".gitbook-link"]},"fontsettings":{"theme":"white","family":"sans","size":2},"anchor-navigation-ex":{"showLevel":false,"associatedWithSummary":true,"mode":"float","showGoTop":false,"printLog":false,"multipleH1":true,"float":{"floatIcon":"fa fa-navicon","showLevelIcon":false,"level1Icon":"","level2Icon":"","level3Icon":""},"pageTop":{"showLevelIcon":false,"level1Icon":"","level2Icon":"","level3Icon":""}},"back-to-top-button":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","author":"easy_coder","pdf":{"pageBreaksBefore":"/","headerTemplate":null,"paperSize":"a4","margin":{"right":62,"left":62,"top":36,"bottom":36},"fontSize":12,"fontFamily":"Arial","footerTemplate":null,"chapterMark":"pagebreak","pageNumbers":false},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"isbn":"","variables":{},"title":"高性能服务器开发 技术专栏","links":{},"gitbook":"*","description":"","theme-default":{"showLevel":true},"extension":null},"file":{"path":"articles/程序员必知必会的网络命令/服务器开发中网络数据分析与故障排查经验漫谈.md","mtime":"2020-09-16T08:31:23.694Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2020-10-09T15:31:57.905Z"},"basePath":"../..","book":{"language":""}});
  1239. });
  1240. </script>
  1241. </div>
  1242. <script src="../../gitbook/gitbook.js"></script>
  1243. <script src="../../gitbook/theme.js"></script>
  1244. <script src="../../gitbook/gitbook-plugin-chapter-fold/chapter-fold.js"></script>
  1245. <script src="../../gitbook/gitbook-plugin-search-pro/jquery.mark.min.js"></script>
  1246. <script src="../../gitbook/gitbook-plugin-search-pro/search.js"></script>
  1247. <script src="../../gitbook/gitbook-plugin-splitter/splitter.js"></script>
  1248. <script src="../../gitbook/gitbook-plugin-back-to-top-button/plugin.js"></script>
  1249. <script src="../../gitbook/gitbook-plugin-hide-element/plugin.js"></script>
  1250. <script src="../../gitbook/gitbook-plugin-code/plugin.js"></script>
  1251. <script src="../../gitbook/gitbook-plugin-livereload/plugin.js"></script>
  1252. <script src="../../gitbook/gitbook-plugin-sharing/buttons.js"></script>
  1253. <script src="../../gitbook/gitbook-plugin-fontsettings/fontsettings.js"></script>
  1254. <script src="../../gitbook/gitbook-plugin-theme-fexa/fexa.js"></script>
  1255. </body>
  1256. </html>