软件开发相关面经4——计算机网络篇

1、单条记录高并发访问的优化

服务器端:
使用缓存,如redis等
使用分布式架构进行处理
将静态页面和静态资源存储在静态资源服务器,需要处理的数据使用服务器进行计算后返回
将静态资源尽可能在客户端进行缓存
采用ngnix进行负载均衡 (nginx读作恩静埃克斯 = Engine X)
数据库端:
数据库采用主从赋值,读写分离措施
建立适当的索引
分库分表


2、介绍一下ping的过程,分别用到了哪些协议

ping 程序是用来探测主机到主机之间是否可通信,如果不能ping到某台主机,表明不能和这台主机建立连接。 ping 使用的是ICMP协议,它发送icmp回送请求消息给目的主机。ICMP协议规定:目的主机必须返回ICMP回送应答消息给源主机。如果源主机在一定时间内收到应答,则认为主机可达。
ICMP协议通过IP协议发送的,IP协议是一种无连接的,不可靠的数据包协议。在Unix/Linux,序列号从0开始计数,依次递增。而Windows中ping程序的ICMP序列号是没有规律。

ping是使用ICMP(ICMP(Internet Control Message Protocol)Internet 控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息(保证数据送达的工作应该由它来完成))协议来进行工作的。
ICMP:网络控制报文协议
首先,ping命令会构建一个ICMP请求数据包,然后由ICMP协议将这个数据包连同目的IP地址源IP地址一起交给IP协议。然后IP协议就会构建一个IP数据报,并且在映射表中查找目的IP对应的mac地址,将其交给数据链路层。然后数据链路层就会构建一个数据帧,附上源mac地址和目的mac地址发送出去。目的主机接收到数据帧后,就会检查包上的mac地址与本机mac是否相符,如果相符,就接收并把其中的信息提取出来交给IP协议,IP协议就会将其中的信息提取出来交给ICMP协议。然后构建一个ICMP应答包,用相同的过程发送回去。


3、说一下TCP的封包和拆包

因为TCP是无边界的流传输,所以需要对TCP进行封包和拆包,确保发送和接收的数据不粘连。
封包:封包就是在发送数据报的时候为每个TCP数据包加上一个包头,将数据报分为包头和包体两个部分。包头是一个固定长度的结构体,里面包含该数据包的总长度。
拆包:接收方在接收到报文后提取包头中的长度信息进行截取。

提示:这里填写问题的分析:
例如:Handler 发送消息有两种方式,分别是 Handler.obtainMessage()和 Handler.sendMessage(),其中 obtainMessage 方式当数据量过大时,由于 MessageQuene 大小也有限,所以当 message 处理不及时时,会造成先传的数据被覆盖,进而导致数据丢失。


4、一个ip配置多个域名,靠什么识别?

靠host主机名区分
靠端口号区分
例如:A站的域名是http://aaa.com,B站的域名是http://bbb.com,两个域名同时解析到192.168.1.101的地址上。那么在配置web服务器的时候,新建第一个网站主机头为webA,ip为192.168.1.101,绑定域名为http://aaa.com新建第二个网站主机头为webB,ip为192.168.1.101,绑定域名为http://bbb.com,当用户访问http://aaa.com时,首先由dns解析出ip为192.168.1.101,然后访问这台服务器http请求,服务器根据你要访问的域名判断出是webA这个网站,就会响应对应的信息

参考:https://www.zhihu.com/question/29390934

4、DNS的工作过程和原理

DNS( Domain Name System)是“域名系统”的英文缩写,是一种组织成域层次结构的计算机和网络服务命名系统,它用于TCP/IP网络,它所提供的服务是用来将主机名和域名转换为IP地址的工作。你可以把它想象成一本巨大的电话本。是“域名系统”的英文缩写,是一种组织成域层次结构的计算机和网络服务命名系统,它用于TCP/IP网络,它所提供的服务是用来将主机名和域名转换为IP地址的工作。你可以把它想象成一本巨大的电话本。

在这里插入图片描述

DNS解析有两种方式:递归查询和迭代查询

递归查询 用户先向本地域名服务器查询,如果本地域名服务器的缓存没有IP地址映射记录,就向根域名服务器查询,根域名服务器就会向顶级域名服务器查询,顶级域名服务器向权限域名服务器查询,查到结果后依次返回。

迭代查询 用户向本地域名服务器查询,如果没有缓存,本地域名服务器会向根域名服务器查询,根域名服务器返回顶级域名服务器的地址,本地域名服务器再向顶级域名服务器查询,得到权限域名服务器的地址,本地域名服务器再向权限域名服务器查询得到结果
在这里插入图片描述
注意:
一、主机向本地域名服务器的查询一般都是采用递归查询。所谓递归查询就是:**如果主机所询问的本地域名服务器不知道被查询的域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其它根域名服务器继续发出查询请求报文(即替主机继续查询),**而不是让主机自己进行下一步查询。因此,递归查询返回的查询结果或者是所要查询的IP地址,或者是报错,表示无法查询到所需的IP地址。

二、本地域名服务器向根域名服务器的查询的迭代查询。迭代查询的特点:当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP地址,要么告诉本地服务器:“你下一步应当向哪一个域名服务器进行查询”。然后让本地服务器进行后续的查询。根域名服务器通常是把自己知道的顶级域名服务器的IP地址告诉本地域名服务器,让本地域名服务器再向顶级域名服务器查询。顶级域名服务器在收到本地域名服务器的查询请求后,要么给出所要查询的IP地址,要么告诉本地服务器下一步应当向哪一个权限域名服务器进行查询。最后,知道了所要解析的IP地址或报错,然后把这个结果返回给发起查询的主机。

参考 :https://blog.csdn.net/yipiankongbai/article/details/25031461

5、OSI七层协议模型

主要是:应用层(Application)、表示层(Presentation)、会话层(Session)、传输层(Transport)、网络层(Network)、数据链路层(Data Link)、物理层(Physical)。

6、五层体系结构

包括:应用层、传输层、网络层、数据链路层和物理层。

7、IP寻址和MAC寻址有什么不同,怎么实现的

通过MAC地址寻找主机是MAC地址寻址,通过IP地址寻找主机叫IP地址寻址。它们适用于不同的协议层IP寻址是网络层,Mac寻址是数据链路层。

ARP 是“Address Resolution Protocol”的缩写,译为“地址解析协议”,它是根据 IP 地址获取物理地址的一个 TCP/IP 协议。

ARP 协议通过 IP 地址向 MAC 地址的转换,解决网际层和网络访问层的衔接问题。

由于 IP 地址和 MAC 地址定位方式不同,ARP 协议成为数据传输的必备协议。主机发送信息前,必须通过 ARP 协议获取目标 IP 地址对应的 MAC 地址,才能正确地发送数据包。

IP寻址的过程(ARP协议):主机A想通过IP地址寻找到目标主机,首先分析IP地址确定目标主机与自己是否为同一网段。如果是则查看ARP缓存,或者使用ARP协议发送广播。如果不是,则寻找网关发送ARP数据包。

参考:http://c.biancheng.net/view/6388.htmlhttps://blog.csdn.net/wxy_nick/article/details/9190693

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值