![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
网络编程
文章平均质量分 94
Aries_Ro
go go go! That's my utopia!
展开
-
怎么回答TCP的三次握手问题
怎么回答TCP的三次握手问题目录怎么回答TCP的三次握手问题三次握手的目的三次握手的内容目的1三次握手的过程目的2三次握手的过程状态变化总结面试官:说一下三次握手。我:好,。。。。。。TCP的三次握手在面试中经常被问道,本文从原理解析归纳了一种关于TCP三次握手的回答。最终的回答在总结中三次握手的目的三次握手的目的可以概括为两个:1: 为了确认双方的接收能力和发送能力是否正常。2: 为后面的可靠性传送做准备。通过指定自己的初始化序列号码以及同步对方的序列号码和确认号码来实现可靠性的数据传输。原创 2022-04-18 17:08:41 · 929 阅读 · 7 评论 -
面试回答TCP四次挥手问题及相关问题
面试回答TCP四次挥手问题及相关问题目录面试回答TCP四次挥手问题及相关问题四次挥手的原因四次挥手的流程TCP四次挥手的相关问题挥手为什么需要四次?2MSL等待状态?四次挥手释放连接时,等待2MSL的意义?TCP三次握手的原理参考怎么回答TCP的三次握手问题四次挥手的原因TCP断开连接需要四次挥手,相对于建立TCP连接的三次握手多了一次。这由TCP的半关闭(half-close)造成的。所谓的半关闭,其实就是TCP提供了连接的一端在结束它的发送后还能接收来自另一端数据的能力。所以断开连接的四次原创 2022-04-18 20:13:56 · 672 阅读 · 7 评论 -
TCP三次握手的相关问题及解答
TCP三次握手的相关问题及解答目录TCP三次握手的相关问题及解答为什么需要三次握手,两次不行吗?什么是半连接队列?初始化同步序列号ISN(Initial Sequence Number)是固定的吗三次握手过程中可以携带数据吗?SYN攻击是什么?为什么需要三次握手,两次不行吗?回答:不行。TCP需要通过三次握手来确认双方的接收能力和发送能力是否正常。如果是用两次握手,则客户端发送SYN报文,客户端应答SYN报文即连接成功。则会出现下面这种情况:如客户端发出连接请求,但因连接请求报文丢失而未收到确认,于原创 2022-04-18 17:03:37 · 1807 阅读 · 0 评论 -
HTTP之HTTP1.0/HTTP1.1(pipline)/HTTP2.0(多路复用)/HTTP3.0(QUIC)
2015 年,HTTP/2 发布。HTTP/2 是现行 HTTP 协议(HTTP/1.x)的替代,但它不是重写,HTTP 方法/状态码/语义都与 HTTP/1.x 一样。HTTP/2 基于 SPDY3,专注于性能,最大的一个目标是在用户和网站间只用一个连接(connection)。HTTP/2 由两个规范(Specification)组成:虽然 HTTP/2 解决了很多之前旧版本的问题,但是它还是存在一个巨大的问题,主要是底层支撑的 TCP 协议造成的。转载 2023-07-31 20:13:53 · 223 阅读 · 0 评论 -
HTTP之Session、Cookie 与 Application
cookie、seesion、application三个都会缓存我们用户状态的数据,使得我们在浏览器访问网站时可以更快速的获取到信息。主要原因在于HTTP协议是无状态的,我们每次访问服务器,对于服务器来说都是一个单独的请求,没有上下文的联系。以淘宝登录的例子来说明:假如我们输入我们的淘宝账号和密码登录后,我们浏览商品、加入购物车、付款等步骤,都会向服务器发出一条条的请求,但是服务器怎么知道这些请求是你这同一个用户发的呢?主要就是靠的cookie、seesion、application来实现的。原创 2023-07-30 21:48:14 · 1252 阅读 · 0 评论 -
gRPC和Ice远程调用协议对比
gRPC是一个高性能、开源的RPC框架,它支持多种编程语言和平台,并且使用protobuf作为其默认的序列化协议。使用gRPC,需要定义一个包含服务方法的.proto文件,并使用protobuf编译器生成客户端和服务器端代码。然后使用生成的客户端代码来调用服务器端提供的方法。在这个示例中,我们定义了一个包含一个方法的服务MyService,该方法接受一个HelloRequest消息并返回一个HelloResponse消息。原创 2023-07-06 22:44:20 · 628 阅读 · 0 评论 -
Nginx问题汇总
正向代理代理的是客户端,客户端发送请求会指定服务端地址和端口,nginx收到请求,会将数据直接发送到目标的服务器,收到响应后,nginx在返回给客户端。正向代理可以隐藏实际的客户端,对于服务器来说,nginx就是客户端。反方代理代理的是服务端,客户端发送的请求(不用指定服务端地址和端口)统一被Nginx接收,nginx反向代理服务器接收到之后,**按照一定的规则(负载均衡)**分发给了后端的业务处理服务器进行处理了,nginx收到后端服务器的响应之后,再发回给客户端。原创 2023-07-05 22:42:01 · 1380 阅读 · 1 评论 -
Http解析实现/服务器Get请求的实现
Http解析实现/服务器Get请求的实现目录Http解析实现/服务器Get请求的实现HTTP简介客户端请求消息服务器响应消息请求报文的解析响应报文的发送文件发送sendfile函数代码结果分析之前有实现过怎么通过epoll实现socket的数据传输,以及通过reactor模型实现epoll服务器并发,但是程序只实现了数据的接收于重发,并没有涉及Http的协议解析等操作。本文将通过简单的程序解释当客户端发来Http的Get请求时,服务器时如何操作的。HTTP简介HTTP 协议是 Hyper Text原创 2022-04-14 00:48:29 · 4630 阅读 · 12 评论 -
epoll的水平触发LT以及边沿触发ET的原理及使用及优缺点
epoll的水平触发LT以及边沿触发ET的原理及使用及优缺点epoll的水平触发LT以及边沿触发ET的原理及使用及优缺点epoll的水平触发LT以及边沿触发ET的原理及使用及优缺点LT和ET的代码案例:使用水平触发LT或边沿触发ET的结果及处理水平触发和边沿触发的优缺点在IO多路复用的几种方法中,select和poll只支持水平触发,而epoll支持水平触发和边缘触发两种形式,因此在并发网络编程中该如何选择哪种触发方式。epoll的原理不清楚的可以看一下这篇文章link水平触发和边缘触发的不同会影响e原创 2022-04-12 13:48:32 · 2568 阅读 · 2 评论 -
epoll-reactor模型原理及代码解析
epoll-reactor模型原理即代码解析epoll-reactor模型原理即代码解析epoll-reactor模型原理即代码解析epollReactor服务器模型epoll网络IO操作一般会涉及两个系统对象,一个是用户空间调用 IO 的进程或者线程,另一个是内核空间的内核系统,比如发生 IO 操作 read 时,它会经历两个阶段:等待数据准备就绪将数据从内核拷贝到进程或者线程中。不同情况地处理这两个阶段上,可以分为不同的服务器模型,最常用的如Reactor 与 Proactor原创 2022-04-10 19:47:35 · 1607 阅读 · 0 评论 -
select、poll、epoll、多线程实现并发请求处理
select、poll、epoll、多线程实现并发请求处理这里写目录标题select、poll、epoll、多线程实现并发请求处理**解决方法1:**多线程**采用IO多路复用实现并发处理客户端请求****解决方法2:select**解决方法3:**poll**解决方法4:**epoll****select、poll、epoll的选择**服务器与客户端建立连接需要使用到一些接口,包括但不限于socket、bind、listen、accept一个简单的服务器网络程序如下: int listenfd,原创 2022-04-08 20:01:13 · 3917 阅读 · 0 评论