![](https://img-blog.csdnimg.cn/20200709213012949.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
计算机网络笔/面试题
计算机网络面试题
我是小杨我就这样
当一个代码的工匠回首往事,不因虚度年华而悔恨,也不因碌碌无为而羞愧,这样当他老去的时候,可以很自豪地告诉世人,我曾经将代码注入生命去打造互联网的浪潮之巅
公众号《小杨的技术人生》
展开
-
计算机网络面试题(二十四):TCP拥塞控制
文章目录TCP拥塞控制TCP拥塞控制的四个算法【1】慢开始【2】拥塞避免【3】快重传【4】快恢复小结TCP拥塞控制当网络数据传输过程中出现拥塞时,分组将会丢失,但此时发送方会继续重传从而导致网络拥塞程度升高。因此当发送拥塞时,应当控制发送方的速率控制拥塞是为了降低网络拥塞程度流量控制是为了让接收方来得及接收数据TCP拥塞控制的四个算法慢开始拥塞避免快重传快恢复发送方需要维护一个叫做拥塞窗口(cwnd)的状态变量拥塞窗口只是一个状态变量,控制发送报文段个数。真正决...原创 2020-09-13 14:40:52 · 3504 阅读 · 2 评论 -
计算机网络面试题(二十三):TCP滑动窗口和流量控制
文章目录TCP滑动窗口TCP流量控制TCP滑动窗口前言:TCP窗口控制数据传输速率窗口是缓存的一部分,用来暂时存放字节流发送方和接收方各有一个窗口发送窗口和接收窗口接收方通过响应报文首部的窗口字段告诉发送方自己的窗口大小,发送方参照该值设置发送窗口大小,进行流量控制发送窗口内的数据都允许被发送,接收窗口内的数据都允许被接收发送窗口:每发送一个数据,窗口右移动一位接收窗口:每交付给主机一位,窗口向右移动一位TCP流量控制流量控制的目的:控制发送方数据发送速率..原创 2020-09-05 09:18:10 · 1676 阅读 · 1 评论 -
计算机网络面试题(二十二):TCP沾包、拆包以及解决办法
文章目录UDPTCP什么是沾包拆包(1)正常接收(2)只收到一个数据包(全部沾包了)(3)服务端收到了两个数据包(部分沾包)为什么发送沾包、拆包UDPUDP是基于数据包协议,UDP首部采用16bit指示UDP数据报文长度。因此接收端可以利用长度信息明确将不同的数据包区分开,从而避免沾包和拆包问题TCPTCP是面向字节流的应用层和传输层的数据交互是大小不等的数据块TCP没有将这些数据块区分边界,仅仅是一连串没有结构的数据流TCP帧结构中,首部没有表示数据长度的字段基于以上原..原创 2020-09-02 09:08:44 · 723 阅读 · 0 评论 -
计算机网络面试题(二十一):TCP长连接和短连接
TCP长短连接的区别【1】短连接客户端向服务端发送消息,服务端回应客户端一次读写就完成了双方都可以发送关闭操作一般都是客户端先发起短连接一般只会在client/server之间传递一次读写操作【2】长连接客户端和服务端完成一次读写之后,它们之间的连接并不会主动关闭,后续的读写操作会继续使用这个连接在长连接的应用场景下,客户端一般不会主动关闭连接服务端会采取一些策略:关闭一些长时间没有读写操作的连接限制客户端最长连接数量长连接和短连接的产生主要源于客户端...原创 2020-08-30 08:26:59 · 782 阅读 · 0 评论 -
计算机网络面试题(二十):TCP四次挥手,为什么要四次?
文章目录TCP四次挥手总结TCP四次挥手参考文章:计算机网络面试题(九):TCP四次挥手TCP连接是双向传输的对等模式(即双方都可以同时向对方发送/接受数据),当有一方要关闭连接时,会发生FIN告知对方,对方回一个ACK则一个方向上的连接关闭了需要四次挥手才能断开连接是因为:TCP是双向对等传输,故有两个方向的连接,需要两个FIN才能断开当服务端收到客户端发送过来的FIN断开请求时,回复ACK后只是断开了client -> server方向的连接,服务端还可以继续向客户端发送数据(若数..原创 2020-08-18 09:28:19 · 2948 阅读 · 1 评论 -
计算机网络面试题(十九):TCP三次握手,为什么是三次?
文章目录TCPTCP为什么采用三次握手?总结TCPTCP是一种面向对象的单播协议(一对一),在发送数据前,通信双方必须要在彼此之间建立一条连接连接:其实已一条虚拟的概念,具体是指客户端和服务端的内存里保存的一份关于对方的信息,例如:IP地址、端口号……TCP可以看成是一种字节流,TCP会处理IP层及以下层的丢包、重复和错误问题。在连接的建立过程中,通信双方需要交换一些连接的参数,这些参数放在TCP报文的首部TCP协议提供了一种可靠、面向连接的、字节流、传输层的服务采用三次握手建立连接..原创 2020-08-15 19:32:57 · 732 阅读 · 2 评论 -
计算机网络面试题(十八):HTTPS工作原理
文章目录HTTPS工作原理【1】HTTP的安全缺陷【2】HTTPS的三个功能【3】HTTPS工作流程HTTPS工作原理HTTPS(Hypertext Transfer Protocol over Secure Socket Layer)以安全为目标的HTTP通道,即HTTP的安全版本HTTPS = HTTP + SSL/TSLHTTPS的握手过程其实就是SSL/TSL的握手过程【1】HTTP的安全缺陷HTTP作为传输协议本身是明文传输,即没有任何的安全措施例:用户在百度浏览..原创 2020-08-14 18:35:27 · 1097 阅读 · 0 评论 -
计算机网络面试题(十七):地址栏输入URL后发生了什么?
文章目录DNS域名服务器地址栏输入URL后发生了什么这也是一道面试常见题目,也是我们在学习计算机网络时需要去理解的一个知识点DNS域名服务器DNS(Domain Name System 域名系统)互联网中识别主机的方式有两种:主机名和IP地址人喜欢用名称记忆,通信链路中的路由却喜欢用定长、有层次结构地IP地址DNS服务器作用:将主机名映射到IP地址DNS是一种由分层的DNS服务器实现的分布式数据库DNS运行在UDP协议上DNS使用53号端口浏览器的查询一开始都会..原创 2020-08-09 08:58:28 · 1134 阅读 · 0 评论 -
计算机网络面试题(十六):HTTP1.0/1.1/2.0版本了解不?
文章目录HTTP1.0HTTP1.1HTTP2.0HTTP1.0HTTP1.0是1996年引入的HTTP1.0仅提供了最基本的认证,用户名和密码都未加密HTTP1.0仅支持短连接,每次发送数据都会经过TCP三次握手和四次挥手,效率低HTTP1.0只使用了header的if=modified-Since和Expires作为缓存失效的标准HTTP1.0不支持端点续传,每次发送数据都会发送全部数据HTTP1.0认为每台计算机都只能绑定一个IP地址,不支持虚拟网络HTTP1.1HT..原创 2020-08-02 09:47:51 · 679 阅读 · 2 评论 -
计算机网络面试题(十五):HTTP无状态协议是什么?怎么解决的?
文章目录HTTP无状态协议Cookie&Session机制JWT机制HTTP无状态协议无状态协议(Stateless Protocol)是指浏览器对于事物的处理没有记忆功能例如:通过账户密码登录进了一个网站,当再次进入时则需要重新输入账户密码……HTTP就是一种无状态协议,它对用户的操作没有记忆功能。为了解决这种情况,引出了Cookie&Session机制,让浏览器具备了记忆功能Cookie&Session机制当服务器第一次收到请求时,会主动开辟一块sess.原创 2020-07-31 20:59:54 · 1315 阅读 · 0 评论 -
计算机网络面试题(十四):TCP和UDP的区别
TCP与UDP都位于网络模型中的传输层,负责传输应用层产生的数据【1】UDPUDP(User Datagram Protocol 用户数据报协议):UDP不需要所谓的握手操作,从而加快了通信速度,允许网络上的其他主机在接收方同意通信之前进行数据传输数据报是与分组交换网络关联的传输单元UDP特点:UDP低延迟UDP能够发送大量数据包UDP能够允许DNS查找(DNS是应用层协议)【2】TCPTCP(Transfer Control Protocol 传输控制协议):通过三次握手...原创 2020-07-30 20:21:24 · 554 阅读 · 0 评论 -
计算机网络面试题(十三):HTTP请求中:GET和POST区别
HTTP操作中包含了许多方法,其中GET和POST方法是最常用的(不夸张,99%的情况都在用)区别一:用途不同GET:一般用于请求例如:你在浏览器地址栏输入一个URL,其实是发送了一个请求,请求服务器的某个资源POST:一般用于表单提交表单就是浏览器和服务器之间的数据传输装备。POST相当于将信息提交给服务器,然后等待服务器响应GET方法类似于pull(拉):从服务器拉资源下来POST方法类似于push(推):将数据推给服务器区别二:安全性不同GET:不安...原创 2020-07-28 09:58:03 · 1693 阅读 · 0 评论 -
计算机网络面试题(十二):HTTP和HTTPS的区别
文章目录【1】HTTP【1.1】五层模型【1.2】OSI七层模型【1.3】OSI模型总结【2】HTTPS【1】HTTPHTTP(Hypertext Transfer Protocol 超文本传输协议)HTTP是专门在两点之间传输文字、图片、音频、视频等超文本数据的规范HTTP主要内容分为三个部分:超文本(Hypertext)超文本不仅仅只文本,还可以传输图片、音频、视频以及超链接……(数据)传输(Transfer)数据传输要经过的一系列物理介质协议(Proto.原创 2020-07-27 09:05:26 · 360 阅读 · 0 评论 -
计算机网络面试题(十一):TCP4次挥手客户端和服务端状态
由于TCP通信是全双工的,断开连接比建立连接要复杂客户端向服务端发送FIN报文,请求断开TCP连接客户端状态:FIN_WAIT1服务端收到FIN,向客户端发送ACK服务端状态:CLOSE_WAIT客户端收到ACK后,此刻连接其实已经断开一半了,若服务器还有数据要传输,则继续传输客户端状态:FIN_WAIT2当服务端数据传输完毕,发送FIN报文给客户端服务端状态:LAST_ACK客户端收到服务端的第二个FIN后,回复ACK客户端状态:TI...原创 2020-07-26 09:28:27 · 736 阅读 · 0 评论 -
计算机网络面试题(十):TCP连接过程客户端和服务端状态
开始前,客户端和服务端都是关闭的客户端:closed状态服务端:closed状态服务器创建socket后开始监听服务端:listen状态客户端请求建立TCP连接,向服务端发送SYN报文客户端:SYN_SEND状态服务器收到客户端的报文后向客户端发送ACK和SYN报文服务端:SYN_RCVD状态客户端收到ACK和SYN后向服务器再回一个ACK客户端:ESTABLISHED状态服务端收到客户端的ACK后变为ESTABLIS...原创 2020-07-23 20:22:38 · 1652 阅读 · 0 评论 -
HTTP面试题(一):HTTP、HTTPS、URI、URL、HTTP方法
文章目录HTTP面试题HTTP面试题原创 2020-07-09 21:32:39 · 563 阅读 · 0 评论 -
HTTP面试题(二):HTTP请求报文和响应报文格式
文章目录HTTP请求报文和响应报文格式【1】请求报文HTTP请求报文和响应报文格式【1】请求报文请求报文包含四个部分:请求行:包含HTTP版本号、请求方法、URI……请求首部字段请求内容实体空行响应报文包含四部分:状态行:响应状态码、HTTP版本信息响应首部字段响应内容实体空行...原创 2020-07-10 08:37:29 · 900 阅读 · 0 评论 -
HTTP面试题(三):HTTPS工作原理
文章目录HTTPS工作原理在这里插入图片描述握手过程HTTPS的特点HTTPS工作原理浏览器向服务器发送HTTPS服务请求,在传输数据之前,进行一次握手握手的目的:确立双方加密传输的密码信息做一次传输测试(利用随机生成的随机数)TSL/SSL使用了非对称加密、对称加密、Hash算法握手过程浏览器请求https服务,并将自己的一套加密规则发送给网站服务器从中选择一组加密算法,并将自己的身份信息以证书的形式回给浏览器证书中包含:身份信息、公钥、证书颁发机构……浏览原创 2020-07-11 09:17:27 · 990 阅读 · 0 评论 -
HTTP面试题(四):一次完整的HTTP请求所经历的7个步骤
HTTP通信7个步骤在一次完整的HTTP通信过程中,Web浏览器与Web服务器之间要经历7个步骤建立TCP连接Web浏览器首先要通过网络与Web服务器之间通过TCP建立连接,TCP与IP协议共同构建Internet(1)HTTP协议是比TCP处于更高层的应用层协议,只有当低层协议建立练接之后才能进行更高层次的连接(2)TCP连接的端口号一般是80Web浏览器向Web服务器发送请求行建立TCP连接之后,Web浏览器会向Web服务器发送请求命令Web浏览器向服务器发送请..原创 2020-07-13 09:16:57 · 1303 阅读 · 0 评论 -
HTTP面试题(五):常见的HTTP相应状态码
常见的HTTP状态码【1】2XX2开头的状态码都表示请求被正确处理200:请求被正确处理204:请求被受理但无资源返回206:客户端只请求资源的一部分服务器只对请求的部分资源执行GET方法,相应的报文部分通过Content-Range指定范围的资源【2】3XX3开头的状态码表示需要进一步操作(重定向)301:永久性重定向302:临时重定向303:与302类似,只希望客户端在请求一个URI时,能通过GET方法重定向到另一个URI上304:发送附带条件的请求时,条件不满足..原创 2020-07-18 08:45:07 · 959 阅读 · 0 评论 -
HTTP面试题(六):HTTP1.1新版本的特性
HTTP新版本特性默认持久连接只要客户端或服务器端没有明确说明要断开TCP连接,则一直保持连接状态同一个客户端可以发送多个HTTP请求减少通信量管线化客户端可以同时发送多个HTTP请求,不用一个个等待响应断点续传报文实体部分实现分块传输...原创 2020-07-18 13:38:28 · 278 阅读 · 0 评论 -
HTTP面试题(七):HTTP协议的优化方法
HTTP优化方法TCP复用 (负载均衡)将多个客户端的HTTP请求放到同一个TCP连接上传输HTTP复用一个客户端的多个HTTP请求放到一个TCP连接上传输(==不断开TCP连接)目前的HTTP1.1版本已经默认不断开TCP连接了压缩:将文本内容压缩,节省带宽内容缓存:常用的内容直接缓存到客户端,需要时直接从内存读取SSL加速:使用SSL安全套接层对HTTP加密,在通道内加密并加速TCP缓冲通过采用TCP缓冲技术,提高服务器响应和处理效率,..原创 2020-07-19 18:20:16 · 279 阅读 · 0 评论 -
计算机网络面试题(八):TCP三次握手(超重点!!!)
TCP三次握手(面试重点)几个重要标号:SYN、ACKSYN:SYN=1代表建立TCP连接ACK:(acknowledge character 确认字符)确认字段SYN=1,ACK=0:表示客户端请求TCP连接,但还没有确认SYN=1,ACK=1:表示服务器确认TCP连接TCP三次握手过程:1.客户端发送建立TCP连接的请求报文请求报文中包含:SYN=1表示要建立TCP连接seq=x序列号,x为随机生成数值2. 服务端回复客户端的连接请求回复报文中包含..原创 2020-07-20 09:41:14 · 1054 阅读 · 0 评论 -
计算机网络面试题(九):TCP四次挥手
TCP四次挥手挥手重要标号:FINFIN=1 代表申请断开TCP连接确认字符ACK含义:说明当前这个报文是针对之前的哪个报文的验证。因为在TCP连接上会有很多请求(例如管线化)序列号seq含义:代表当前这个报文的序号TCP四次挥手过程:客户端发送断开TCP连接的请求报文报文:FIN=1, seq=xFIN=1:代表请求断开TCP连接seq=x:给这个请求打一个标号,x是生成的随机数服务端回复客户端的断开请求报文:FIN=1, ACK=x+1, s..原创 2020-07-22 19:09:06 · 718 阅读 · 0 评论