网络面试题集锦

发表于 3年以前  | 总阅读数:317 次

笔者从事后端技术十余年,期间也面试别人,也有被别人面试,今天特意将这些面试的知识点总结下,希望能够在工作或者面试中帮助到大家。

说说OSI模型和TCP/IP模型

OSI(Open System Interconnection,开放式通信互联) 是由 ISO(International Organization for Standardization,国际标准化组织) 制定的标准模型。旨在将世界各地的各种计算机互联。然而,OSI 模型过于庞大、复杂。参照此模型,技术人员开发了 TCP/IP 协议栈,简化 OSI 七层模型为 TCP/IP 四层模型。获得了更广泛的使用。

OSI 模型和 TCP/IP 模型对比:

什么是TCP

TCP(Transmission Control Protocol 传输控制协议)是一种面向连接(连接导向)的、可靠的、 基于IP的传输层协议。

TCP是如何保证数据可靠的

  • 通过数据流的方式传输,将数据截成合理的长度;
  • 对每段报文进行编号,保证数据流的顺序;
  • 收到数据进行重排序,并且丢弃重复数据;
  • 收到报文后,给出确认响应;
  • 超时重发;
  • 校验和;
  • 流量控制(针对本程序的接受能力)和拥塞控制(针对整个网络)。

说说TCP和UDP的区别

协议差别

功能 TCP UDP
是否连接 面向连接 无连接
传输可靠性 可靠 不可靠
应用场合 传输少量数据 传输大量数据
速度

区别总结:

  • TCP 的面向连接的,在发送数据之前要建立连接;UDP 是无连接的,即发送数据之前不需要建立连接;
  • TCP 提供可靠的服务,通过 TCP 连接传送的数据,不丢失,不重复,且按序到达。UDP 尽最大努力交付,不保证可靠交付;
  • TCP 面向字节流,把数据看成一连串无结构的字节流;UDP 是面向报文的,对应用程序的报文既不拆分也不合并;
  • TCP 有流量控制和拥塞控制,UDP 没有拥塞控制;
  • TCP 连接只能是点到点的,UDP 支持一对一,一对多,多对一和多对多的交互通信;
  • TCP首部至少开销 20 字节,UDP 的首部结构简单,开销小,只有8个字节;
  • 由于 TCP 要维护连接和保证可靠性,所以对系统资源的要求较多, UDP 相对要小得多。

TCP建立连接的过程

TCP建立连接发生在client端调用connect系统调用的时候。其目的是为了对每次发送的数据量进行跟踪与协商(即交换双方窗口大小),确保数据段的发送和接收同步,根据所接收到的数据量而确认数据发送、接收完毕后何时撤消联系,并建立虚连接。

TCP建立连接的过程,是一个三次握手的过程。

  • 第一次握手:client端向server发送连接请求,SYN=1(SYN表示发送端与接收端要建立连接),seq = x。此时client端进入SYN_SENT阶段
  • 第二次握手:server在收到client端的请求后,向client回复SYN = 1(SYN表示发送端与接收端要建立连接) 和 ACK = 1(表示对发送端请求进行应答),seq = y, ack = x + 1。此时server端进入SYN_RCVD阶段
  • 第三次握手:client端收到server端的请求和响应之后,同样需要向server端回复消息。向server端发送ACK = 1(表示对server端的响应),seq = x + 1,ack = y + 1.此时客户端进入ESTABLISH阶段。server端在收到该ACK后,也进入ESTABLISH阶段。

通俗理解:

  • A 想要和 B 通信,首先跟 B 说:“我想和你通信”;
  • B 收到这条信息之后,回复 A 说:“收到。我也想和你通信”;
  • A 收到之后就知道,原来 B 也想通信,回复 B 说:“收到”。

上述三次握手过程,我们用图表示为。

为什么建立连接是3次,而不是2次或者4次

按理说,在客户端收到服务器发过来的确认报文后(第二次握手后),通信双方就可以确定对方的请求建立连接的意图了,那为什么客户端还要再发送一次 ACK 报文呢?

主要是防止已经失效的连接请求报文又到达服务器端这种情况。

“已经失效的连接请求报文”是这样产生的:当网络环境差的时候,客户端发送的连接请求报文可能丢失,也有可能滞留在某个节点。当客户端等待一定时间后,没有收到服务器发送的确认报文,就认为之前发送的连接请求报文失效了。客户端会再次发送连接请求报文。

但是如果滞留在某个节点的报文经过长时间延迟后到达了服务器端,服务器并不知道这是一个失效的报文,它以为是客户端的正常连接请求,就会返回确认报文,同意连接建立。

如果采用2次握手的方法,这时新的连接已经建立了。但是实际上,客户端并没有发起请求,它不会对服务端的确认报文做出反应,更不会发送数据给服务端。而服务端却以为新的连接已经建立,一直在等待客户端发送数据,这样就造成了资源的浪费。

而如果采用4次握手的情况,就是将第二次SYN和ACK分成两步来操作,这样会浪费资源以及性能浪费。

采用3次握手就可以避免这样情况。上述的情形下,服务器没有收到客户端对自己发送过去的确认报文的 ACK 报文,就知道客户端没有请求建立连接。

TCP断开连接的过程

当client端和server端的数据传输完成之后,就需要断开连接,以节省资源。断开连接的过程,我们一般称之为四次挥手(与建立连接的三次握手相对应)。

  • 第一次挥手:client端向server端发送断开连接的请求,告诉server端,我这边不再需要跟你传输数据。发送FIN=1(表示发送断开连接请求),seq=x,此时client端处于FIN_WAIT_1阶段
  • 第二次挥手:server端在收到client端的断开请求后,需要告诉客户端已经收到请求。因此向client端回复ACK=1,seq=y,ack=x+1(表示对client发送的seq=x进行确认)。此时client端处于FIN_WAIT_2阶段,server端处于CLOSE_WAIT阶段。
  • 第三次挥手:当server端不再需要与client端传输数据,就向client端发送断开连接的请求。FIN=1(表示发送断开连接请求),ACK=1(表示对client端的上一次断开连接应答)。seq=z,ack=x+1(上一次断开连接请求时候seq=x)。此时server端处于LAST_ACK阶段。
  • 第四次挥手:client端收到server端断开连接的请求后,需作出应答,因此ACK=1.seq=x+1,ack=w+1(表示对上一次请求的应答)

通俗理解:

  • A 没有数据发送,就和 B 说:“我没有数据给你了,但是如果你还有数据没发送完,则不必急着断开,还可以继续发送数据”;
  • B 收到后,会告诉 A说:“收到。”,然后继续发送数据给 A;
  • 当 B 端确定数据已发送完成,则告诉 A:“好了,我这边数据发完了,准备好关闭连接了”;
  • A 听到后,和 B 说:“好的,你断开吧。”,然后在等待 2MSL 时间后断开。

至此,断开连接的过程讲解完毕,用图的方式如下:

为什么client要等待 2MSL 后才断开连接?

网络的状态是不确定的,最后 Client 发送的确认报文可能丢失。如果确认报文丢失并且 Client 不等待,直接断开连接。此时 Server 端在发送 FIN 报文后,不会收到任何响应。等待一段时间后,会重发 FIN 报文,但此时 Client 端已经关闭。Server 就会一直重发 FIN 报文。而如果 Client 端处于等待状态时,就会回复确认报文给 Server,让 Server 关闭。同时,在 2MSL 内没有收到 FIN 报文,说明 Server 端收到了确认报文,已经关闭,这样自己也可以关闭了。2MSL 是从 Client 到 Server 时间的2倍,也就是发送确认报文和接受 FIN 报文的时间。

为什么TCP断开连接是4次

因为TCP是全双工,在一端断开连接之后,另外一端在需要的时候,也需要断开连接。每一端的断开需要两次,即FIN和ACK,所以整个过程就是四次。

TCP是怎样进行流量控制

TCP必需要解决的可靠传输以及包乱序的问题,所以,TCP必需要知道网络实际的数据处理带宽或是数据处理速度,这样才不会引起网络拥塞,导致丢包。这就引入了滑动窗口和拥塞窗口。

在发送端通过拥塞窗口,在接收端通过滑动窗口。

滑动窗口协议是传输层进行流控的一种措施,接收方通过通告发送方自己的可以接受缓冲区大小(这个字段越大说明网络吞吐量越高),从而控制发送方的发送速度,不过如果接收端的缓冲区一旦面临数据溢出,窗口大小值也会随之被设置一个更小的值通知给发送端,从而控制数据发送量(发送端会根据接收端指示,进行流量控制)。

防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载。拥塞控制所要做的都有一个前提:网络能够承受现有的网络负荷。拥塞控制是一个全局性的过程,涉及到所有的主机、路由器,以及与降低网络传输性能有关的所有因素。

在浏览器中输入一个url后,浏览器的行为

浏览器本身是一个客户端,当你输入URL的时候,首先浏览器会去请求DNS服务器,通过DNS获取相应的域名对应的IP,然后通过IP地址找到IP对应的服务器后,要求建立TCP连接,等浏览器发送完HTTP Request(请求)包后,服务器接收到请求包之后才开始处理请求包,如果请求的资源包含有动态语言的内容,那么服务器会调用动态语言的解释引擎负责处理“动态内容”,并将处理得到的数据装在HTTP Response(响应)包返回给客户端;客户端收到来自服务器的响应后开始渲染这个Response包里的主体(body),等收到全部的内容随后断开与该服务器之间的TCP连接。

END

本文由哈喽比特于3年以前收录,如有侵权请联系我们。
文章来源:https://mp.weixin.qq.com/s/Kbzisd1LgEtznCQKbq2pLw

 相关推荐

刘强东夫妇:“移民美国”传言被驳斥

京东创始人刘强东和其妻子章泽天最近成为了互联网舆论关注的焦点。有关他们“移民美国”和在美国购买豪宅的传言在互联网上广泛传播。然而,京东官方通过微博发言人发布的消息澄清了这些传言,称这些言论纯属虚假信息和蓄意捏造。

发布于:1年以前  |  808次阅读  |  详细内容 »

博主曝三大运营商,将集体采购百万台华为Mate60系列

日前,据博主“@超能数码君老周”爆料,国内三大运营商中国移动、中国电信和中国联通预计将集体采购百万台规模的华为Mate60系列手机。

发布于:1年以前  |  770次阅读  |  详细内容 »

ASML CEO警告:出口管制不是可行做法,不要“逼迫中国大陆创新”

据报道,荷兰半导体设备公司ASML正看到美国对华遏制政策的负面影响。阿斯麦(ASML)CEO彼得·温宁克在一档电视节目中分享了他对中国大陆问题以及该公司面临的出口管制和保护主义的看法。彼得曾在多个场合表达了他对出口管制以及中荷经济关系的担忧。

发布于:1年以前  |  756次阅读  |  详细内容 »

抖音中长视频App青桃更名抖音精选,字节再发力对抗B站

今年早些时候,抖音悄然上线了一款名为“青桃”的 App,Slogan 为“看见你的热爱”,根据应用介绍可知,“青桃”是一个属于年轻人的兴趣知识视频平台,由抖音官方出品的中长视频关联版本,整体风格有些类似B站。

发布于:1年以前  |  648次阅读  |  详细内容 »

威马CDO:中国每百户家庭仅17户有车

日前,威马汽车首席数据官梅松林转发了一份“世界各国地区拥车率排行榜”,同时,他发文表示:中国汽车普及率低于非洲国家尼日利亚,每百户家庭仅17户有车。意大利世界排名第一,每十户中九户有车。

发布于:1年以前  |  589次阅读  |  详细内容 »

研究发现维生素 C 等抗氧化剂会刺激癌症生长和转移

近日,一项新的研究发现,维生素 C 和 E 等抗氧化剂会激活一种机制,刺激癌症肿瘤中新血管的生长,帮助它们生长和扩散。

发布于:1年以前  |  449次阅读  |  详细内容 »

苹果据称正引入3D打印技术,用以生产智能手表的钢质底盘

据媒体援引消息人士报道,苹果公司正在测试使用3D打印技术来生产其智能手表的钢质底盘。消息传出后,3D系统一度大涨超10%,不过截至周三收盘,该股涨幅回落至2%以内。

发布于:1年以前  |  446次阅读  |  详细内容 »

千万级抖音网红秀才账号被封禁

9月2日,坐拥千万粉丝的网红主播“秀才”账号被封禁,在社交媒体平台上引发热议。平台相关负责人表示,“秀才”账号违反平台相关规定,已封禁。据知情人士透露,秀才近期被举报存在违法行为,这可能是他被封禁的部分原因。据悉,“秀才”年龄39岁,是安徽省亳州市蒙城县人,抖音网红,粉丝数量超1200万。他曾被称为“中老年...

发布于:1年以前  |  445次阅读  |  详细内容 »

亚马逊股东起诉公司和贝索斯,称其在购买卫星发射服务时忽视了 SpaceX

9月3日消息,亚马逊的一些股东,包括持有该公司股票的一家养老基金,日前对亚马逊、其创始人贝索斯和其董事会提起诉讼,指控他们在为 Project Kuiper 卫星星座项目购买发射服务时“违反了信义义务”。

发布于:1年以前  |  444次阅读  |  详细内容 »

苹果上线AppsbyApple网站,以推广自家应用程序

据消息,为推广自家应用,苹果现推出了一个名为“Apps by Apple”的网站,展示了苹果为旗下产品(如 iPhone、iPad、Apple Watch、Mac 和 Apple TV)开发的各种应用程序。

发布于:1年以前  |  442次阅读  |  详细内容 »

特斯拉美国降价引发投资者不满:“这是短期麻醉剂”

特斯拉本周在美国大幅下调Model S和X售价,引发了该公司一些最坚定支持者的不满。知名特斯拉多头、未来基金(Future Fund)管理合伙人加里·布莱克发帖称,降价是一种“短期麻醉剂”,会让潜在客户等待进一步降价。

发布于:1年以前  |  441次阅读  |  详细内容 »

光刻机巨头阿斯麦:拿到许可,继续对华出口

据外媒9月2日报道,荷兰半导体设备制造商阿斯麦称,尽管荷兰政府颁布的半导体设备出口管制新规9月正式生效,但该公司已获得在2023年底以前向中国运送受限制芯片制造机器的许可。

发布于:1年以前  |  437次阅读  |  详细内容 »

马斯克与库克首次隔空合作:为苹果提供卫星服务

近日,根据美国证券交易委员会的文件显示,苹果卫星服务提供商 Globalstar 近期向马斯克旗下的 SpaceX 支付 6400 万美元(约 4.65 亿元人民币)。用于在 2023-2025 年期间,发射卫星,进一步扩展苹果 iPhone 系列的 SOS 卫星服务。

发布于:1年以前  |  430次阅读  |  详细内容 »

𝕏(推特)调整隐私政策,可拿用户发布的信息训练 AI 模型

据报道,马斯克旗下社交平台𝕏(推特)日前调整了隐私政策,允许 𝕏 使用用户发布的信息来训练其人工智能(AI)模型。新的隐私政策将于 9 月 29 日生效。新政策规定,𝕏可能会使用所收集到的平台信息和公开可用的信息,来帮助训练 𝕏 的机器学习或人工智能模型。

发布于:1年以前  |  428次阅读  |  详细内容 »

荣耀CEO谈华为手机回归:替老同事们高兴,对行业也是好事

9月2日,荣耀CEO赵明在采访中谈及华为手机回归时表示,替老同事们高兴,觉得手机行业,由于华为的回归,让竞争充满了更多的可能性和更多的魅力,对行业来说也是件好事。

发布于:1年以前  |  423次阅读  |  详细内容 »

AI操控无人机能力超越人类冠军

《自然》30日发表的一篇论文报道了一个名为Swift的人工智能(AI)系统,该系统驾驶无人机的能力可在真实世界中一对一冠军赛里战胜人类对手。

发布于:1年以前  |  423次阅读  |  详细内容 »

AI生成的蘑菇科普书存在可致命错误

近日,非营利组织纽约真菌学会(NYMS)发出警告,表示亚马逊为代表的电商平台上,充斥着各种AI生成的蘑菇觅食科普书籍,其中存在诸多错误。

发布于:1年以前  |  420次阅读  |  详细内容 »

社交媒体平台𝕏计划收集用户生物识别数据与工作教育经历

社交媒体平台𝕏(原推特)新隐私政策提到:“在您同意的情况下,我们可能出于安全、安保和身份识别目的收集和使用您的生物识别信息。”

发布于:1年以前  |  411次阅读  |  详细内容 »

国产扫地机器人热销欧洲,国产割草机器人抢占欧洲草坪

2023年德国柏林消费电子展上,各大企业都带来了最新的理念和产品,而高端化、本土化的中国产品正在不断吸引欧洲等国际市场的目光。

发布于:1年以前  |  406次阅读  |  详细内容 »

罗永浩吐槽iPhone15和14不会有区别,除了序列号变了

罗永浩日前在直播中吐槽苹果即将推出的 iPhone 新品,具体内容为:“以我对我‘子公司’的了解,我认为 iPhone 15 跟 iPhone 14 不会有什么区别的,除了序(列)号变了,这个‘不要脸’的东西,这个‘臭厨子’。

发布于:1年以前  |  398次阅读  |  详细内容 »
 相关文章
Android插件化方案 5年以前  |  237229次阅读
vscode超好用的代码书签插件Bookmarks 2年以前  |  8063次阅读
 目录