计算机网络面试问题

计算机网络面试问题


备注:好友收集了很多IT资源免费分享,有需要自取~

目录

  1. OSI七层模型与TCP/IP五层模型
  2. 三次握手
  3. 四次挥手
  4. Http和Https的区别
  5. 对称加密与非对称加密
  6. TCP与UDP的区别
  7. 从输入网址到获得页面的过程
  8. 常见状态码及原因短语
  9. Get与POST的区别
  10. DNS的寻址过程
  11. 其他常见问题

注:在牛客上复习java摘录的,还有其他博客,便于自己复习,侵删。
链接:

  1. https://www.nowcoder.com/tutorial/94/a9220944ad014f55be4015c19247af91
  2. https://blog.csdn.net/qq_39322743/article/details/79700863

业余兼职互联网大厂技术岗简历辅导,面试辅导,职业规划,HR谈薪,技术提升,大厂内推等,欢迎私信~
✨个人介绍
普通二本逆袭大厂,多份互联网大厂经验,目前在某大厂研究院就职(同事几乎全是c9研究生以上),面试收割阿里、腾讯、字节、华为、小红书、联想、小米等多家大厂Offer。
作为学历不够高的开发人员,一路走来踩过很多坑,在读大学甚至刚出来工作的时候,经常会迷茫,选择方向对吗,学习内容对吗,选择Offer对吗,纠结很多很多问题,每个人都会的呀,因为我们当时经验不足,但对于有经验的人,可能你纠结很久的问题对他来说就是很简单的,如果能给你适当的建议和帮助,就能豁然开朗,不再迷茫。
我当时都是一个人摸索过来,因此浪费了很多时间,比如花了一年去学习跟自己从事方向无关的技术,又或者学习内容不对,面试不会这样提问等等,向师兄师姐请教也不好意思,回答简短,不得要点(毕竟他们经验也不足)

✨辅导内容:
自己淋过雨,总想给别人撑把伞,你遇到的问题我可能都遇到过,目前辅导100+小伙伴上岸阿里、腾讯、字节、华为、小红书等企业。
辅导内容包括但不限于:
互联网大厂技术岗简历辅导,面试辅导,职业规划,HR谈薪,技术提升,大厂内推等内容,全程辅导直到拿到Offer(不同公司、岗位、城市会有区别,不过大部分都超过30w)。
如果你是小白也没关系呀,所有技术方向全套教程都可赠送,加上全程辅导包就业拿高薪Offer。
非小白想提升技术也可找我,有所有技术方向全套教程。
✨辅导方向:
包括但不限于:C++,Java,Golang,Python,大数据,前端,产品经理,数据分析等方向。
✨辅导人群:
在校大学生,应届生,实习生,非计算机专业想转码人员,0-5年经验想要跳槽的小伙伴。
✨为什么选择我?
二本差生逆袭大厂,成为大厂Offer收割机,如果你学历跟我一样不太好,我能告诉你怎么不走歪路,弥补与学历优秀的同学之间差距。
如果你学历比我好,跟着我一起学习,能让你更大机会进大厂,拿到高薪Offer。
最关键在于,别人指导只能告诉你有什么问题,而我告诉你有什么问题的同时并告诉你怎么做,提供相关优质教程学习,免去找教程的烦恼,终生更新,学就完了。
❤️具体辅导,私信联系呀~


1. OSI七层模型与TCP/IP五层模型

在这里插入图片描述


2. 三次握手

所谓三次握手(Three-Way Handshake)即建立TCP连接,就是指建立一个TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立。在socket编程中,这一过程由客户端执行connect来触发,整个流程如下图所示:在这里插入图片描述

  1. 第一次握手:Client将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认。

  2. 第二次握手:Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK都置为1,ack=J+1,随机产生一个值seq=K,并将该数据包发送给Client以确认连接请求,Server进入SYN_RCVD状态。

  3. 第三次握手:Client收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给Server,Server检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,Client和Server进入ESTABLISHED状态,完成三次握手,随后Client与Server之间可以开始传输数据了。


3. 四次挥手

四次挥手(Four-Way Wavehand)即终止TCP连接,就是指断开一个TCP连接时,需要客户端和服务端总共发送4个包以确认连接的断开。在socket编程中,这一过程由客户端或服务端任一方执行close来触发,整个流程如下图所示:在这里插入图片描述
由于TCP连接时全双工的,因此,每个方向都必须要单独进行关闭,这一原则是当一方完成数据发送任务后,发送一个FIN来终止这一方向的连接,收到一个FIN只是意味着这一方向上没有数据流动了,即不会再收到数据了,但是在这个TCP连接上仍然能够发送数据,直到这一方向也发送了FIN。首先进行关闭的一方将执行主动关闭,而另一方则执行被动关闭,上图描述的即是如此。

  1. 第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。

  2. 第二次挥手:Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),Server进入CLOSE_WAIT状态。

  3. 第三次挥手:Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态。

  4. 第四次挥手:Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,Server进入CLOSED状态,完成四次挥手。


4. Http和Https的区别

  1. https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。

  2. http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。

  3. http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

  4. http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。


5. 对称加密与非对称加密

  1. 对称密钥加密是指加密和解密使用同一个密钥的方式,这种方式存在的最大问题就是密钥发送问题,即如何安全地将密钥发给对方;而非对称加密是指使用一对非对称密钥,即公钥和私钥,公钥可以随意发布,但私钥只有自己知道。发送密文的一方使用对方的公钥进行加密处理,对方接收到加密信息后,使用自己的私钥进行解密。

  2. 由于非对称加密的方式不需要发送用来解密的私钥,所以可以保证安全性;但是和对称加密比起来,它非常的慢,所以我们还是要用对称加密来传送消息,但对称加密所使用的密钥我们可以通过非对称加密的方式发送出去。


6. TCP与UDP的区别

  1. TCP (Transmission Control Protocol)和UDP(User Datagram Protocol)协议属于传输层协议,它们之间的区别包括:

  2. TCP是面向连接的,UDP是无连接的;

  3. TCP是可靠的,UDP是不可靠的;

  4. TCP只支持点对点通信,UDP支持一对一、一对多、多对一、多对多的通信模式;

  5. TCP是面向字节流的,UDP是面向报文的;

  6. TCP有拥塞控制机制;UDP没有拥塞控制,适合媒体通信;

  7. TCP首部开销(20个字节)比UDP的首部开销(8个字节)要大;


7. 从输入网址到获得页面的过程

  1. 浏览器查询 DNS,获取域名对应的IP地址:具体过程包括浏览器搜索自身的DNS缓存、搜索操作系统的DNS缓存、读取本地的Host文件和向本地DNS服务器进行查询等。对于向本地DNS服务器进行查询,如果要查询的域名包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析(此解析具有权威性);如果要查询的域名不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析(此解析不具有权威性)。如果本地域名服务器并未缓存该网址映射关系,那么将根据其设置发起递归查询或者迭代查询;

  2. 浏览器获得域名对应的IP地址以后,浏览器向服务器请求建立链接,发起三次握手;

  3. TCP/IP链接建立起来后,浏览器向服务器发送HTTP请求;

  4. 服务器接收到这个请求,并根据路径参数映射到特定的请求处理器进行处理,并将处理结果及相应的视图返回给浏览器;

  5. 浏览器解析并渲染视图,若遇到对js文件、css文件及图片等静态资源的引用,则重复上述步骤并向服务器请求这些资源;

  6. 浏览器根据其请求到的资源、数据渲染页面,最终向用户呈现一个完整的页面。


8. 常见状态码及原因短语

1×× : 请求处理中,请求已被接受,正在处理

2×× : 请求成功,请求被成功处理
200 OK

3×× : 重定向,要完成请求必须进行进一步处理
301 : 永久性转移
302 :暂时性转移
304 : 已缓存

4×× : 客户端错误,请求不合法
400:Bad Request,请求有语法问题
403:拒绝请求
404:客户端所访问的页面不存在

5×× : 服务器端错误,服务器不能处理合法请求
500 :服务器内部错误
503 : 服务不可用,稍等

具体参考菜鸟教程:https://www.runoob.com/http/http-status-codes.html


9. Get与POST的区别

  1. 从功能上讲,GET一般用来从服务器上获取资源,POST一般用来更新服务器上的资源;

  2. 从REST服务角度上说,GET是幂等的,即读取同一个资源,总是得到相同的数据,而POST不是幂等的,因为每次请求对资源的改变并不是相同的;进一步地,GET不会改变服务器上的资源,而POST会对服务器资源进行改变;

  3. 从请求参数形式上看,GET请求的数据会附在URL之后,即将请求数据放置在HTTP报文的 请求头 中,以?分割URL和传输数据,参数之间以&相连。特别地,如果数据是英文字母/数字,原样发送;否则,会将其编码为 application/x-www-form-urlencoded MIME 字符串(如果是空格,转换为+,如果是中文/其他字符,则直接把字符串用BASE64加密,得出如:%E4%BD%A0%E5%A5%BD,其中%XX中的XX为该符号以16进制表示的ASCII);而POST请求会把提交的数据则放置在是HTTP请求报文的 请求体 中。

  4. 就安全性而言,POST的安全性要比GET的安全性高,因为GET请求提交的数据将明文出现在URL上,而且POST请求参数则被包装到请求体中,相对更安全。

  5. 从请求的大小看,GET请求的长度受限于浏览器或服务器对URL长度的限制,允许发送的数据量比较小,而POST请求则是没有大小限制的。


10. DNS的寻址过程

  1. 在浏览器中输入www.qq.com域名,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析。

  2. 如果hosts里没有这个域名的映射,则查找本地DNS解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析。

  3. 如果hosts与本地DNS解析器缓存都没有相应的网址映射关系,首先会找TCP/ip参数中设置的首选DNS服务器,在此我们叫它本地DNS服务器,此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具有权威性。

  4. 如果要查询的域名,不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性。

  5. 如果本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置(是否设置转发器)进行查询,如果未用转发模式,本地DNS就把请求发至13台根DNS,根DNS服务器收到请求后会判断这个域名(.com)是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP。本地DNS服务器收到IP信息后,将会联系负责.com域的这台服务器。这台负责.com域的服务器收到请求后,如果自己无法解析,它就会找一个管理.com域的下一级DNS服务器地址(qq.com)给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找qq.com域服务器,重复上面的动作,进行查询,直至找到www.qq.com主机。

  6. 如果用的是转发模式,此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把转请求转至上上级,以此循环。不管是本地DNS服务器用是是转发,还是根提示,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。

从客户端到本地DNS服务器是属于递归查询,而DNS服务器之间就是的交互查询就是迭代查询。


11. 其他常见问题

  1. 谈一下,为什么tcp为什么要建立连接?
    保证可靠传输。

  2. 请你解释一下TCP为什么可靠一些
    三次握手,超时重传,滑动窗口,拥塞控制。

  3. 请说明一下哪种应用场景会使用TCP协议,使用它的意义
    当对网络通讯质量有要求的时候,比如:整个数据要准确无误的传递给对方,这往往用于一些要求可靠的应用,比如HTTP、HTTPS、FTP等传输文件的协议,POP、SMTP等邮件传输的协议

  4. 请简单解释一下,arp协议和arp攻击。
    地址解析协议。ARP攻击的第一步就是ARP欺骗。由上述“ARP协议的工作过程”我们知道,ARP协议基本没有对网络的安全性做任何思考,当时人们考虑的重点是如何保证网络通信能够正确和快速的完成——ARP协议工作的前提是默认了其所在的网络是一个善良的网络,每台主机在向网络中发送应答信号时都是使用的真实身份。不过后来,人们发现ARP应答中的IP地址和MAC地址中的信息是可以伪造的,并不一定是自己的真实IP地址和MAC地址,由此,ARP欺骗就产生了。

  5. 什么是icmp协议,它的作用是什么?
    它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。

  • 33
    点赞
  • 323
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值