| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 计算机网络面试题 -> 正文阅读 |
|
[网络协议]计算机网络面试题 |
不一定准确,just方便自己思考和总结,努力搬砖填坑中~~ 文章预览:
1、如果让你做一个视频聊天软件,你用TCP还是UDP?我会选择UDP,因为UDP是无连接的,不保证可靠性,传输速度快,没有拥塞控制,网络出现拥塞也不会使源主机的发送速率降低。视频聊天软件不允许数据有太大的时延,UDP正好适合。但是丢包也影响用户体验,可以考虑将TCP和UDP的特性结合起来,如HTTP/3的QUIC协议。 2、TCP是怎么去保证可靠传输的理想的传输条件:传输信道不发生差错;不管发送方以多快速度发送数据,接收方总是来得及处理
3、TCP三次握手SYN同步,置1表示这是1个连接请求或连接接受的报文;seq序号,表示本报文段所发送数据的第一个字节的序号;ack确认号,期望收到对方下一个报文段的的第一个数据字节的序号。若确认号=N,则表明序号N-1为止的所有数据都已正确收到;ACK确认,ACK=1时确认号字段才有效。 为什么是三次握手?两次不安全,四次没必要。TCP通信要确保双方都具有数据收发的能力。第一次客户端发送SYN,服务器接收,服务器得出客户端的发送能力和自己的接收能力正常;第二次服务器发送SYN+ACK,客户端接收,客户端得出双方的发送和接收能力都正常,但此时服务器并不能得出客户端接收能力是否正常,于是有了第三次握手:客户端发送ACK,服务器接收,得出客户端接收能力正常,自己的发送接收能力也*正常。 三次握手可以携带数据吗?第一二次不可以,第三次可以。如果有人想攻击服务器。那他只需要在第一次握手中的SYN报文中放大量数据,然后重复发送大量SYN报文,这样服务器会花费大量内存空间来缓冲这些报文,服务器就很容易被攻击了。 4、TCP拥塞控制
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dbxMekny-1629411225093)(assets/IMG_3.jpg)] 5、CDN的原理是什么CDN 全称是Content Delivery Network,内容分发网络。CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获得所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。 CDN的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问网站时,利用全局负载技术将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求 6、DNS过程(1)DNS服务:将域名解析成IP地址;
7、为什么TCP连接是可靠的因为它通过确认和重传,数据分片和排序,流量控制和拥塞控制等机制,来确保传送的数据,无差错、不丢失、不重复,且按序到达 8、TCP如何终止之前发送的报文紧急指针? 9、HTTP请求方法
10、请求/响应头部11、https的加密过程以及如何防止中间人攻击通过什么机制处理服务端接收数据乱序丢包滑动窗口和拥塞控制 在TCP建立连接后,路由器发生了什么变化http1时代,经常把很多资源部署在不同域名下,为什么OSI七层模型,每层大致作用及相关协议TLS握手怎么知道数字证书的真假cookie、session区别session怎么保存,有多台服务器,sessionid怎么找为什么cookie可以用来保存登录状态http头部chunkget发一个TCP包,post发两个,这种情况是一定的吗post如何把数据放到url中一个http报文的的头和body之间有什么分隔出现304的场景,通过什么协议头来确认websocket原理,如何实现,和http报文结构有哪些不同cookie,localStorage,sessionStorage使用和区别http请求过程中怎么知道数据已经发送完毕,怎么断开get,post,head这些请求方法有什么不同了解轮询和websocket吗说一下websocket四个阶段(ws不能使用时怎么处理,使用什么方式来代替ws)跨域问题什么是跨域?当浏览器向目标URL发Ajax请求时,只要当前URL与目标URL不同源,则产生跨域。 注意:跨域请求的想要其实是成功到达客户端了,但是被浏览器拦截了。基于多进程的浏览器架构,沙箱中的渲染进程是没办法发送网络请求的,需要通过IPC机制与网络进程通信,让网络进程发送网络请求。服务端处理数据并返回响应,网络进程解析响应头数据并将数据转发给浏览器主进程,浏览器检查到跨域,且没有CORS响应头,就让网络进程将响应体全部丢掉。这样就达到了拦截数据的目的。 JSONP(1)什么是JSONP:JSONP是JSON with padding的简写,是应用JSON的一种新方法,JSONP看起来和JSON差不多,只不过是被包含在函数调用中的JSON,就像下面这样:
我们可以看到,JSONP由两部分组成:回调函数和传入回调函数中的JSON数据。 (2)jsonp的原理:带src属性的标签都拥有跨域的能力,如img、iframe、script等。所以我们可以动态创建script标签发起请求,然后从后端拿到请求回来的数据进行处理,最后再把创建的script标签删掉,这就是JSONP的整套流程。在用户的角度是感觉不到动态创建script标签以及发送请求的。 (3)封装一个JSONP:
调用:
服务端的响应代码:
CORS |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 20:51:59- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |