1.网络分层结构是什么样的

一般考察的是TCP/IP五层模型

应用层:为应用程序提供交互服务,如HTTP/FTP/SMTP等

传输层:负责向两台主机进程之间的通信提供传输服务,协议主要有TCP/UDP

网络层:根据IP定义网络地址,选择合适的路由节点,主要包括IP/ARP协议

链路层:两个相邻节点传输时,将网络层交下来的IP报文组装成帧,相邻节点之间传送帧

物理层:通过物理介质构建传输通路,实现相邻节点比特流透明传输

2.TCP和UDP的区别

TCP是面向连接的,UDP是无连接的

TCP提供可靠的服务,UDP不保证可靠交付

TCP有阻塞控制,UDP无阻塞控制,适合实时应用

TCP是点到点的,UDP支持一对一,一对多,多对多的交互通信

TCP首部开销大(20字节),UDP首部开销小(8字节)

3.TCP的三次握手

客户端先向服务端发送数据包并将SYN置1,假设序列号seq为X

服务端接收后通过SYN知道这是连接请求,发送相应包并将SYN和ACK都置1,序列号seq为Y,确认号ack为X+1

客户端收到相应包后将ACK置1,确认号ack为Y+1

这里说一个简单的理解:

A先告诉B:我们来聊天吧,此时B知道了对方能说话,自己能听到对方说话

B回答一句:好啊,能听到吗,此时A知道了自己能说话,自己能听到对方说话,对方能说话,对方能听到自己说话,但是目前唯一的问题就是B不知道自己能不能正常说话,对方能不能正常听到自己说话

于是A再回一句:我能听到,开始吧,此刻B知道自己能说话,对方也能听到说话,这时一切通信能力都是正常的

4.TCP的四次挥手

客户端先发送FIN表示自己要断开连接,进入FIN_WAIT_1(终止等待1)状态

服务端发送ACK表示同意,但是需要服务端处理完数据再给客户端发FIN信号,此时客户端进入FIN_WAIT_2(终止等待2)状态

服务端处理完数据,持续发送FIN表示关闭连接,此时客户端和服务端都进入了CLOSE_WAIT(半关闭状态)

客户端收到FIN后会发送一个相应的ACK,当不再受到服务端的FIN时确认服务端收到指令,此时TCP完全释放

5.为什么是四次挥手

主要在服务端收到客户端的FIN后,不是选择发送ACK+FIN,而是先发送ACK,表示自己还需要处理完所有数据,再发送FIN来断开连接,这样才能保证真正断开连接

6.HTTP协议有什么特点

HTTP协议允许传输任何类型的数据,HTTP协议是无状态的,每次发送请求服务器都会认为是一个新的请求,HTTP支持客户端/服务器模式

7.HTTP的短连接和长连接是什么

HTTP短连接是客户端每次和服务器进行HTTP操作,就建立一次连接,任务结束了就中断连接,在HTTP1.1之后默认使用长连接,即建立的TCP连接可以复用,需要客户端和服务端首部的Connection都设置为keep-alive才能建立长连接

8.HTTP1.1和HTTP2.0的区别

HTTP1.1使用文本传输,HTTP2.0使用二进制传输,传输效率更高

HTTP1.1的header中有大量信息,每次都要重新发送,在HTTP2.0进行了头部压缩,将header中的数据封装为头帧和数据帧,并且压缩,同时通过键值对的方式记录,对于相同的数据不会重复发送,可以降低开销

HTTP2.0允许服务端向客户端推送资源,无需客户端申请

9.HTTP通信安全吗

HTTP是明文传输,很容易遭到黑客的拦截和篡改,所以是不安全的,我们可以用HTTPS协议代替,HTTPS协议是HTTP协议加上SSL/TLS协议,密文传输,可以确保数据安全

10.HTTPS的原理

客户端和服务端都有两个密匙,分别叫做公钥和私钥,两个密匙并不相同,称为非对称加密,其中公钥是用来信息加密的,私钥是用来信息解密的,私钥需要严格保密。这种方式可以用密文传输保证安全,但为了防止黑恶拦截信息并且伪造交流的情况,HTTPS还引入了SSL证书,客户端通过验证证书的正确性来判断是不是正确的服务端。

具体过程如下:

客户端向服务端发送请求,告诉服务端自身支持的协议和机密算法,并提供一个随机数

服务端收到后选择一个RSA算法,将证书,公钥,自身信息发给客户端

客户端验证证书,通过后利用发来的公钥发送加密的握手信息

客户端解密后利用之前的随机数计算出一个对称加密的公钥,用公钥加密发送信息

后续都是用此方法对称加密

11.GET请求和POST请求的区别

GET请求参数在URL中传递,POST请求参数是在请求体中

GET请求会产生一个TCP数据包,POST请求会产生两个,因为GET请求会将请求头和请求体一同发出,而POST请求会先发送请求头,相应100才会发送请求体

GET请求会被浏览器主动储存,POST请求不会被主动储存

GET请求参数会被完整记录,POST请求参数不会被记录

12.常见攻击手段和解决方案

SQL注入:SQL注入具有巨大危险,可能会导致整个数据库被修改,方法措施有:过滤用户输入的特殊字符,禁止通过字符串拼接的SQL语句

XSS:跨站脚本攻击,在HTML页面中插入恶意脚本来信息窃取,方法措施有:对用户输入数据过滤或者转义

CSRF:攻击者伪造用户请求,访问一个用户曾认证过的网站,让网站误认为是用户操作从而执行任务,方法措施有:验证HTTP Referer,使用验证码,在请求地址添加token(最推荐这个方法,在服务器中生成一个token,HTTP请求中加入token,与服务器中token验证)

计算机网络常见面试题(自答版)相关推荐

  1. 计算机网络常见面试题,一网打尽!

    计算机网络常见面试题 一 OSI与TCP/IP各层的结构与功能,都有哪些协议? 学习计算机网络时我们一般采用折中的办法,也就是中和 OSI 和 TCP/IP 的优点,采用一种只有五层协议的体系结构,这 ...

  2. 【面试系列】计算机网络常见面试题(一)

    [面试]计算机网络常见面试题

  3. 操作系统和网络(一):计算机网络常见面试题

    计算机网络常见面试题总结 1.       OSI , TCP/IP ,五层协议的体系结构 OSI分层(7层) :物理层.数据链路层.网络层.传输层.会话层.表示层.应用层. TCP/IP分层(4层) ...

  4. 【网络】计算机网络常见面试题 - 前端面试必备 - 吐血整理

    文章目录 1. 参考模型 1. OSI 参考模型 七层 2. TCP/IP参考模型 四层 2. 在浏览器中输入网址之后执行 会发生什么? 3.URL和URI的区别? 4. 关于HTTP协议 4.1 为 ...

  5. 计算机考研复试计算机网络常见面试题

    本文是我2021年考研时准备的复试面试题,现在拿出来给大家分享一下 觉得好的点个赞哦,毕竟当初我也是整理了好久,改了好几次版本呢 祝大家都上岸!!!! 计算机网络 目录 1.TCP三次握手建立连接 1 ...

  6. 计算机网络常见面试题(计算机考研必备)

    1.计算机网络的性能指标有哪些 (1)带宽: 数字信道传输的最高数据率.(即最大速率) (2)吞吐量:单位时间内通过某个网络的数据量.(某时刻的速率) (3)时延:包括发送时延,传播时延,处理时延,排 ...

  7. 计算机网络常见面试题整理

    1. 说说HTTP常用的状态码及其含义? 2. HTTP 常用的请求方式,区别和用途? 3. 请简单说一下你了解的端口及对应的服务? 4. 说下计算机网络体系结构  讲讲osi七层模型每层的含义 应用 ...

  8. 计算机网络常见面试题汇总(建议收藏)

    文章目录 (1)说说HTTP常用的状态码及其含义? (2)HTTP 常用的请求方式,区别和用途? (3)请简单说一下你了解的端口及对应的服务? (4)说下计算机网络体系结构? ISO七层模型:制定的一 ...

  9. 计算机网络——计算机网络常见面试题总结

    转自https://blog.csdn.net/u012856866/article/details/76824726 参考 https://blog.csdn.net/qzcsu/article/d ...

最新文章

  1. windows 10 python哪个版本的好-windows10 conda python多版本切换
  2. ppt批量缩略图_PPT如何在文件夹下显示缩略图的方法
  3. Vivado抓取信号
  4. Synchronized和Lock区别
  5. 扩展Linux分区的一种方法
  6. SSH连接时出现Host key verification failed的原因及解决方法
  7. 将视频抽取成图片,并对图片进行批量命名opencv代码
  8. 图书在线网店的html,网上书城html模板.docx
  9. QQ象棋java通用版下载_QQ中国象棋
  10. 曲线运动与万有引力公式_不要再追问库库了,物理公式大全拿走!
  11. IEEE模板如何在abstract和keywords之间加一个段落Note to Practitioners
  12. [附源码]Python计算机毕业设计常见病辅助食疗系统
  13. 编程术语晦涩_晦涩的编程语言的乐趣
  14. ng-alain之G2图表
  15. 爬虫(三):爬取西刺高匿代理
  16. 关于element的日历组件改造为考勤页面
  17. matplotlib 设置标注方向_原来Matplotlib绘图也可以这么漂亮,这次真的是学习到了...
  18. SOA系列之 什么是SOA?
  19. Win10系统电脑鼠标左键不灵敏、有延迟怎么办
  20. 架构扫盲 | 四种常见的软件架构

热门文章

  1. 如何刷PTA,达到PTA甲级、乙级、顶级应具备的能力
  2. Java接口及接口继承
  3. VMware Workstation pro无法在Windows上运行,检查可在Windows上运行的此应用的更新版本(无需卸载原先版本或原先版本卸载的按钮变成灰色)
  4. Potree使用指南
  5. windows程序窗口
  6. MGAT: Multimodal Graph Attention Network for Recommendation
  7. #### 联合索引存储结构 ####
  8. 大佬给总结的单片机看门狗详解很有用
  9. 免费使用 office, Office Standard 2010 (x64) - (Chinese-Simplified) 版本
  10. MySql项目查询优化经验总结