计算机网络高频考点(补充内容)
之前已经分享了两篇关于计算机网络的高频面试题了,大家可以看往期文章,这篇是对之前的补充,下面几个问题也是在面试中出现频率比较高的问题,建议看看。
往期推荐
浏览器键入一个网址都经历了哪些过程?
1、解析URL得到发送给web的信息,并生产 HTTP 请求信息
2、查询服务器域名对应的** IP 地址,这个过程中涉及到DNS解析。
3、通过 DNS 获取到 IP 后,就可以把 HTTP 的传输⼯作交给操作系统中的协议栈。
4、经过TCP三次握手建立连接进行数据传输。
5、TCP 模块在执行连接、收发、断开等各阶段操作时,都需要委托 IP 模块将数据封装成网络包发送给通信对象。
6、生成了 IP 头部之后,接下来网络包还需要在 IP 头部的前面加上 MAC 头部。
7、后续还会经过网卡、交换机和路由器到对端,然后就是一个反向的过程。
追问:DNS解析过程
1、首先会在本地的hosts文件中查找是否有这个网址的映射关系,如果有则直接调用这个IP的映射进行访问;
2、如果没有则会去本地DNS解析缓存查找是否有这个网址的映射关系,如果有则返回;
3、如果本地DNS解析缓存没有映射关系,首先找本地的TCP/IP设置的DNS服务器,这里我们叫做本地DNS服务器,如果所找的网址在本地DNS的资源范围内则返回解析给主机,此解析具有权威性;
4、如果不在本地DNS的资源范围内,但该服务器已经存储了网址的映射关系,那么调用这个IP的映射关系,完成地址解析,此解析不具有权威性。
5、如果本地服务器的解析失败并且缓存中没有对应的映射关系。那么就有两种情况
1)本地DNS服务器开启装发模式,则向上一级请求,若上一级也不能解析就找上上一级依次类推,最终把解析返回给本地DNS,本地DNS返回给主机。
2)如果本地DNS未采用转发模式。就回去找13组根DNS,根DNS收到后就会去判断这个域名由谁来管理将负责此域名的IP返给本地DNS,本地DNS再去找负责的根DNS,如果根DNS不能解析就去找下一级的DNS给本地DNS,然后一直重复这个过程直到找到xx的主机。
Ping的工作原理
回答:Ping是基于ICMP协议栈【ICMP可以网上去看看关于他的介绍】,常常使用 ping 某一个 IP 地址或者某个域名看下基本连接是否正常;是否有丢包;是否有网络延迟。
Ping是一种计算机网络工具,用来测试数据包能否透过IP协议到达特定主机。ping的运作原理是向目标主机传出一个ICMP echo@要求数据包,并等待接收echo回应数据包。程序会按时间和成功响应的次数估算丢失数据包率(丢包率)和数据包往返时间(网络时延,Round-trip delay time)。———— 维基百科
ping 命令执行的时候,源主机先会构建一个 ICMP 回送请求消息数据包。
ICMP 数据包内包含多个字段,最重要的是两个:
第一个是类型,对于回送请求消息而言该字段为 8 ;另外一个是序号,主要用于区分连续 ping 的时候发出的多个数据包。
每发出一个请求数据包,序号会自动加 1 。为了能够计算往返时间 RTT ,它会在报文的数据部分插⼊发送时间。
在规定的时候间内,源主机如果没有接到 ICMP 的应答包,则说明目标主机不可达;如果接收到了 ICMP 回送响应消息,则说明目标主机可达。此时,源主机会检查,用当前时刻减去该数据包最初从源主机上发出的时刻,就是 ICMP 数据包的时间延迟
Cookie的作用是什么?和Session有什么区别?
回答:
- session 在服务器端,cookie 在客户端(浏览器)
- session 默认被存储在服务器的一个文件里(不是内存)
- session 的运行依赖 session id,而 session id 是存在 cookie 中的,也就是说,如果浏览器禁用了 cookie ,同时 session 也会失效(但是可以通过其它方式实现,比如在 url 中传递 session_id)
- session 可以放在 文件、数据库、或内存中都可以。
- 用户验证这种场合一般会用 session
Cookie 和 Session都是用来跟踪浏览器用户身份的会话方式,但是两者的应用场景不太一样。
Cookie 一般用来保存用户信息 比如①我们在 Cookie 中保存已经登录过得用户信息,下次访问网站的时候页面可以自动帮你登录的一些基本信息给填了;②一般的网站都会有保持登录也就是说下次你再访问网站的时候就不需要重新登录了,这是因为用户登录的时候我们可以存放了一个 Token 在 Cookie 中,下次登录的时候只需要根据 Token 值来查找用户即可(为了安全考虑,重新登录一般要将 Token 重写);③登录一次网站后访问网站其他页面不需要重新登录。Session 的主要作用就是通过服务端记录用户的状态。 典型的场景是购物车,当你要添加商品到购物车的时候,系统不知道是哪个用户操作的,因为 HTTP 协议是无状态的。服务端给特定的用户创建特定的 Session 之后就可以标识这个用户并且跟踪这个用户了。
Cookie 数据保存在客户端(浏览器端),Session 数据保存在服务器端。
Cookie 存储在客户端中,而Session存储在服务器上,相对来说 Session 安全性更高。如果要在 Cookie 中存储一些敏感信息,不要直接写入 Cookie 中,最好能将 Cookie 信息加密然后使用到的时候再去服务器端解密。【摘自Guide哥】
《Java面试必知必会》往期推荐阅读!
#高频知识点汇总##学习路径#