listen、connect、accept流程及原理
来源:互联网 发布:java经典代码大全 编辑:程序博客网 时间:2024/06/05 12:00
http://blog.csdn.net/russell_tao/article/details/9111769)
- 服务器端在调用listen之后,内核会建立两个队列,SYN队列和ACCEPT队列,其中ACCPET队列的长度由backlog指定。
- 服务器端在调用accpet之后,将阻塞,等待ACCPT队列有元素。
- 客户端在调用connect之后,将开始发起SYN请求,请求与服务器建立连接,此时称为第一次握手。
- 服务器端在接受到SYN请求之后,把请求方放入SYN队列中,并给客户端回复一个确认帧ACK,此帧还会携带一个请求与客户端建立连接的请求标志,也就是SYN,这称为第二次握手
- 客户端收到SYN+ACK帧后,connect返回,并发送确认建立连接帧ACK给服务器端。这称为第三次握手
- 服务器端收到ACK帧后,会把请求方从SYN队列中移出,放至ACCEPT队列中,而accept函数也等到了自己的资源,从阻塞中唤醒,从ACCEPT队列中取出请求方,重新建立一个新的sockfd,并返回。
这就是listen,accept,connect这三个函数的工作流程及原理。从这个过程可以看到,在connect函数中发生了两次握手。
更加详细的accept建立连接流程及原理请移步下面这个博文,该博文博主是个大牛,讲解的通熟易懂并且有深度:
http://blog.csdn.net/russell_tao/article/details/9111769
阅读全文
0 0
- listen、connect、accept流程及原理
- listen、connect、accept流程及原理
- 《Windows API巡礼》---listen、accept和connect
- connect, accept .listen, send ,recv, setblock等系列的封装
- linux网络编程二:基础socket, bind, listen, accept, connect
- linux网络编程二:基础socket, bind, listen, accept, connect
- SOCKET API和TCP STATE的对应关系_三次握手(listen,accept,connect)_四次挥手close及TCP延迟确认(调用一次setsockopt函数,设置TCP_QUICK
- SOCKET API和TCP STATE的对应关系_三次握手(listen,accept,connect)_四次挥手close及TCP延迟确认(调用一次setsockopt函数,设置TCP_QUICK
- SOCKET API和TCP STATE的对应关系_三次握手(listen,accept,connect)_四次挥手close及TCP延迟确认(调用一次setsockopt函数,设置TCP_QUICK
- SOCKET API和TCP STATE的对应关系__三次握手(listen,accept,connect)__四次挥手close及TCP延迟确认(调用一次setsockopt函数,设置TCP_QUI
- SOCKET API和TCP STATE的对应关系__三次握手(listen,accept,connect)__四次挥手close及TCP延迟确认(调用一次setsockopt函数,设置TCP_QUI
- SOCKET API和TCP STATE的对应关系__三次握手(listen,accept,connect)__四次挥手close及TCP延迟确认
- SOCKET API和TCP STATE的对应关系__三次握手(listen,accept,connect)__四次挥手close及TCP延迟确认(调用一次setsockopt函数,设置TCP_QUI
- SOCKET API和TCP STATE的对应关系__三次握手(listen,accept,connect)__四次挥手close及TCP延迟确认(调用一次setsockopt函数,设置TCP_QUI
- SOCKET API和TCP STATE的对应关系__三次握手(listen,accept,connect)__四次挥手close及TCP延迟确认(调用一次setsockopt函数,设置TCP_QUI
- SOCKET API和TCP STATE的对应关系__三次握手(listen,accept,connect)__四次挥手close及TCP延迟确认(调用一次setsockopt函数,设置TCP_QUI
- SOCKET API和TCP STATE的对应关系__三次握手(listen,accept,connect)__四次挥手close及TCP延迟确认(调用一次setsockopt函数,设
- SOCKET API和TCP STATE的对应关系__三次握手(listen,accept,connect)__四次挥手close及TCP延迟确认(调用一次setsockopt函数,设置TCP_QUI
- 数据库:drop、truncate、delete三者删除的区别
- JavaWeb基础知识:JavaScript快速入门
- SpringMVC的AOP拦截controller
- 在eclipse工具中将项目部署到指定服务器
- ubuntu 16.04系统下GTX970显卡不支持导致无法开机或开机黑屏解决方法
- listen、connect、accept流程及原理
- 高可用数据同步方案-SqlServer迁移Mysql实战
- volatile
- linux下创建函数库
- Python实现简易记事本
- JSP详细DAO设计模式及应用(!)
- Gulp入门指南
- Java获取当前日期加上指定天数后的日期
- [JavaEE] Spring单元测试中缺少 ServletContext 错误