概述
本章节主要是对开发面试中经典的面试问题进行总结分析。
问题
1)请简单说一下TCP/UDP的区别?
- TCP面向连接,UDP面向非连接即发送数据前不需要建立连接。
- TCP提供可靠的服务,UDP无法保证。
- TCP面向字节流,UDP面向报文。
- TCP数据传输慢,UDP数据传输快。
- TCP传输不限制大小,UDP单次传输报文有限制(64K)。
2)请你说说你了解的端口以及对应的服务
端口 | 服务 | 21 | FTP(文件传输协议) | 22 | SSH | 25 | SMTP(简单邮件传输协议) | 53 | DNS域名服务器 | 80 | HTTP超文本传输协议 | 443 | HTTPS | 3306 | MySQL服务默认端口 | 110 | POP3邮件协议 |
---|
3)说一说TCP的三次握手?(重点)
第一次握手:建立连接,客户端发送请求报文,等待服务器确认。
第二次握手:服务端收到来自客户端的请求报文之后,进行确认,对收到的ACK字段+1也就是X+1,再加上SYN字段一起返回给客户端。
第三次握手:客户端收到SYN_ACK报文段,然后将ACK设置为y+1,然后再次发给服务器端,由此客户端和服务端都进入了ESTABLISHED状态,完成了三次握手。
4)假如在进行三次握手的时候,第三次失败了,此时会发生什么?为什么是四次挥手而不是三次,或者五次
手如果第三次失败了会怎么样:失败了服务端收到不确认包,会超时重发,若还是没有收到确认包,或者收到了数据包,则服务端直接发送reset重置包结束本次连接。
四次挥手之所以结束时需要多一次请求是因为:客户端单方面无数据发送认为可以结束了,但是服务端不一定没有数据发送,所以服务端要将确信信息和自身发起断开分作两步。
5)说一下在浏览器中输入网址之后执行会发生什么?
具体详见:juejin.cn/post/694178…
6)ip到MAC地址是如何转换的,MAC地址到ip呢?
ARP协议和RARP协议。
简单解释一下:
- 每个主机都会存在一个ARP缓冲区,里面存在一个ARP关系列表,主要是IP和MAC地址的对应关系。
- 当源主机需要发送数据的时候,首先会检查自己的ARP列表中是否存在对应的主机的MAC地址,如果有就直接发送数据,如果没有,就向本网段所有的主机发送ARP数据包,该数据包格式为:源主机 IP 地址 源主机MAC地址 目标主机的IP地址。
- 当本网络所有机器收到该ARP包的时候,首先检查对方请求的是不是自己,如果不是则忽略,如果是,则取出数据写入自己的ARP列表,如果列表中已经存在了,则覆盖,然后将自己的MAC地址写到对应的响应包中,返回给源主机。
- 源主机收到响应之后,将目标主机的IP和MAC地址写入ARP列表,并利用此数据发送数据。如果源主机一直没有收到ARP的回复则表示ARP查询失败。
这里需要科普ARP欺骗:
7)说一下OSI七层模型和TCP/IP四层模型
详情见:juejin.cn/post/694178…
8)说一下HTTP协议里面包含了哪些请求?
------------重要------------
- GET:对服务器资源的简单请求
- POST:用于发送包含用户提交数据的请求
------------以及------------
- HEAD:类似于GET请求,不过返回的响应中没有具体内容,用于获取报头
- PUT:传说中请求文档的一个版本
- DELETE:发出一个删除指定文档的请求
- TRACE:发送一个请求副本,以跟踪其处理进程
- OPTIONS:返回所有可用的方法,检查服务器支持哪些方法
- CONNECT:用于ssl隧道的基于代理的请求
9)说一说Get和Post的区别?
从原理性看:
- 根据HTTP规范,GET用于信息获取,而且应该是安全和幂等的
- 根据HTTP规范,POST请求表示可能修改服务器上资源的请求
从表面上看:
- GET请求的数据会附在URL后面,POST的数据放在HTTP包体
- POST安全性比GET安全性高
参考资料
TCP为什么是三次握手,为什么不是两次或者四次 && TCP四次挥手
TCP三次握手(第三次失败咋整),四次挥手(为啥他多一次)
常见面试题整理--计算机网络篇(每位开发者必备)
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!