T C P状态.pdf
《T C P状态.pdf》由会员分享,可在线阅读,更多相关《T C P状态.pdf(2页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、作为一名 Wi n s o c k 程序员,通常没必要了解实际的T C P 状态。但了解 T C P 状态,就能更好地理解 Winsock API 调用如何对基层协议中的改变产生影响。此外,许多程序员在关闭套接字时,会碰到一个常见问题;围绕套接字关闭的T C P 状态是我们目前最感兴趣的问题。对每个套接字来说,它的初始状态都是C L O S E D 。若客户机初始化了一个连接,就会向服务器发送一个 S Y N包,同时将客户机套接字状态置为S Y N _ S E N T 。服务器收到 S YN 包后,会发出一个“ S Y N - A C K”包。作为客户机,需要用一个A C K包对它做出反应。此
2、时,客户机的套接字会变成E S TA B L I S H E D 状态。如果服务器一直不发送“ SY N - A C K”包,客户机就会超时,并返回C L O S E D 状态。若一个服务器的套接字同一个本地接口和端口绑定起来, 并在它上面进行监听, 那么套接字的状态便是 L I S T E N。客户机试图与之连接时,服务器就会收到一个S Y N包,并用一个 S Y N - A C K包做出响应。服务器套接字的状态就变成S Y N _ R C V D。最后,客户机发出一个 A C K 包,令服务器套接字的状态变成E S TA B L I S H E D。一旦应用处于 E S TA B L I
3、S H E D状态,可通过两种方法来关闭它。如果由应用程序来关闭,便叫作“主动套接字关闭” ;否则,套接字的关闭便是被动的。图7 - 2 对两种关闭方法进行了解释。如主动关闭,应用程序便会发出一个F I N包。应用程序调用 c l o s es o c k e t 或 s h u t d o w n 时(把 S D _ S E N D 当作第二个参数) ,会向对方发出一个 F I N 包,而且套接字的状态则变成F I N _ WA I T _ 1。正常情况下,通信对方会回应一个 A C K 包,我们的套接字的状态随之变成F I N _ WA I T _ 2。如对方也关闭了连接,便会发出一个 F
4、 I N 包,我们的机器则会响应一个A C K 包,并将己方套接字的状态置为 T I M E _ WA I T。T I M E _ WA I T状态也叫作 2 M S L等待状态。其中, M S L代表“分段最长生存时间”(Maximum Segment Lifetime) ,表示一个数据包在丢弃之前,可在网络上存在多长时间。每个 I P包都含有一个“生存时间” (T T L)字段,若它递减为 0,包便会被丢弃。一个包经过网络上的每个路由器时, T T L 值都会减 1 ,然后继续传递。一旦应用程序进入T I ME _ WA I T 状态,那么就会一直持续M S L 时间的两倍之久。这样一来,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- P状态 状态
限制150内