
网络编程
陈正跃
技术大虾
展开
-
套接字(socket)
套接字(socket)是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。建立socket连接至少需要一对套接字,一个运行在服务端,一个运行在客户端(客户端可以有多个)。建立socket连接需要三个步骤:服务器监听,客户端请求,连接确认。...原创 2020-02-28 10:49:31 · 806 阅读 · 0 评论 -
tcp连接三次握手四次挥手
tcp连接过程中,所有状态见下图:time_wait:调用close()发起主动关闭的一方,在发送最后一个ACK之后会进入time_wait的状态,也就说该发送方会保持2MSL时间之后才会回到初始状态。MSL值得是数据包在网络中的最大生存时间。...原创 2020-02-28 10:51:05 · 118 阅读 · 0 评论 -
tcp协议和http协议的区别和联系?
1、HTTP协议是建立在TCP协议之上的一种应用。2、TCP协议负责连接,HTTP协议负责数据传输;或者说,使用tcp协议创建socket连接,按照http协议添加报文头之后进行数据的请求和响应。3、TCP连接服务端和客户端都可以主动发送数据;HTTP连接使用的是“请求-响应”的方式,只有在客户端发出请求后,服务端才能响应。4、在HTTP 1.0中,客户端的每次请求都要求建立一次单独的连接,...原创 2020-02-28 10:53:07 · 550 阅读 · 0 评论 -
网络编程 性能 影响因素
1、文件句柄2、监听队列长度:SOMAXCONN3、服务器模型,即应用性能4、硬件性能:cpu/mem5、后续继续更新原创 2020-03-15 15:55:39 · 186 阅读 · 0 评论 -
Linux backlog/somaxconn
TCP SYN_REVD, ESTABELLISHED 状态对应的队列TCP 建立连接时要经过 3 次握手,在客户端向服务器发起连接时,对于服务器而言,一个完整的连接建立过程,服务器会经历 2 种 TCP 状态:SYN_REVD, ESTABELLISHED。对应也会维护两个队列:一个存放 SYN 的队列(半连接队列)一个存放已经完成连接的队列(全连接队列)如果一个服务器要处理大量网络...原创 2020-03-15 13:17:26 · 301 阅读 · 0 评论 -
Too many open files
Linux中句柄的介绍Linux中所有的事物或资源都是以文件的形式存在,比如消息、共享内存、连接等,句柄可以理解为指向这些文件的指针。单个进程默认句柄数上限,查看:ulimit –a单个进程默认句柄数上限,修改:在/etc/security/limits.conf文件中,加入以下配置:* soft nofile 655350* hard nofile 655350...原创 2020-03-15 11:01:36 · 97 阅读 · 0 评论 -
http连接,谁会先断开TCP连接?什么情况下客户端先断,什么情况下服务端先断?
对于http1.0协议来说,如果响应头中有content-length头,则以content-length的长度就可以知道body的长度了,客户端在接收body时,就可以依照这个长度来接收数据,接收完后,就表示这个请求完成了。而如果没有content-length头,则客户端会一直接收数据,直到服务端主动断开连接,才表示body接收完了。而对于http1.1协议来说,如果响应头中的Transfe...原创 2020-02-28 10:55:49 · 2725 阅读 · 2 评论 -
URI和URL
URI:统一资源标志符URL:统一资源定位符URL是URI的子集,是URI的一种实现;他们都定义了资源是什么,但URL还定义了该如何访问资源。原创 2020-02-28 11:10:48 · 112 阅读 · 0 评论 -
http协议、rest规范、restful
rest规范是在http的基础上,定义的一套接口风格。rest规范要求所有资源都要有一个URI满足rest规范的应用程序或设计就是restful,根据rest规范设计的API,就叫做RESTful API...原创 2020-02-28 11:13:45 · 499 阅读 · 0 评论