不用多说,经典的TCP/IP三次握手及状态变迁图
======================================================== ======================================================== 函数: 客户端过程:socket() -> bind(optional) -> connect() >>>> 客户端一定需要调用bind函数吗? bind的目的是将socket绑定在特定的IP/PORT口上,客户端通常在connect时会采用临时分配的PORT,IP会根据路由表选择合适的一个本地IP,通常意义下,客户端可以不指定。 >>>> listen的真正目的??? listen的函数为侦听端口创建两个队列:未完成队列(SYN_RCV状态)和已完成队列。如果不调用listen,则客户端过来的SYN请求无法入队接受进一步的处理。因此,listen是服务器的必须过程。 >>>> listen时如果客户端到达最大允许数了,对于新过来的SYN请求怎么处理? 对于AF_INET通信域来说,底层用重传SYN消息,如达到最大重传次数仍无法入队,则返回TIMEOUT错误。 >>>> TCP建立三次握手,而释放需要四次握手,为什么释放时不能三次完成呢? |
TCP 三次握手
最新推荐文章于 2024-04-29 16:59:13 发布
TCP/IP 三次握手及状态变迁图
2009-09-23 10:49