99%网工都会遇到的经典面试问题

这篇具有很好参考价值的文章主要介绍了99%网工都会遇到的经典面试问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

①问题:介绍TCP连接的三次握手?追问:为什么TCP需要握手三次?

三次握手:

第一步:A向B发送一个SYN报文表示希望建立连接

第二步:B收到A发过来的数据包后,通过SYN得知这是一个建立连接的请求,于是发送ACK确认,由于TCP的全双工模式,故B向A还应该发送一个SYN报文,表示希望和A建立连接第三步:A收到B发送来的SYN报文后,A向B发送ACK表示A收到了B的SYN。

追问:

1、保证双方都具有接受和发送报文的能力

2、防止请求超时导致脏连接

因为报文生存时间可能会超过TCP请求超时时间,假如两次握手就可以建立连接,A的报文由于一些问题滞留在网络中,当报文超时但被释放连接后,此超时连接传输到B,B以为是A创建连接的新请求,然后确认连接。但是A知道这是超时连接的,所以直接丢弃了B的确认数据,导致只是B单方面建立了连接。并一直等待A发送数据,B的资源也就浪费了。

②问题:介绍TCP断开的四次挥手?追问:为什么TCP的挥手需要四次?

四次挥手:

第一步:A向B发送FIN和ACK报文表示希望断开连接

第二步:B收到A发送的请求后会发送ACK表示确认断开。

第三步:此时B处于半连接状态,B会发送FIN和ACK请求断开与A之间的连接

第四步:A收到B发送的断开请求会发送ACK表示确认断开

追问:

确保数据能够全部传输完成

四次才能保证所有的连接全部断

③问题:TCP的syn攻击的过程?追问:怎么防御?

攻击原理:

B收到SYN报文后,会将相应的半连接记录添加到队列中,之后等待接收握手包,如果握手成功就会将此半连接记录从队列中删除;或者当B未收到A的确认包,会重新发送请求包,直到超时才会将此条记录从半连接队列删除。

服务器的TCP协议栈中存储的半连接记录是有限的,当服务器接收到S YN型的DOS攻击后,队列会很快充满,客户端在短时间内伪造大量的不存在的IP地址,向服务器不断发送SYN报文,服务器回复确认包,并等待客户的确认,由于源地址是不存在的,服务器需要不断的重发直至超时,这些伪造的SYN包将长时间占用未连接队列,正常的SYN请求被丢弃,目标系统运行缓慢严重者引起网络堵塞甚至系统瘫痪,服务器随后就不再接受新的网络连接,从而造成正常的客户端无法访问服务器的情况发生。

防御:

1、增大队列SYN最大半连接数,linux中最大连接数为256

2、减少半连接时的超时时间

3、过滤可疑地址

4、利用SYN cookie防御DOS攻击

④问题:什么是滑动窗口? 追问:为什么会出现滑动窗口?

滑动窗口:

用来告诉发送端可以发送数据的大小或者说是窗口标记了接收端缓冲区的大小。窗口指一次批量发送多少数据。

为何会出现滑动窗口:

在确认应答的策略中,每发送一次数据段都需要一个ACK确认应答,收到ACK后再发送下一个数据段,这样每次都需要确认,性能较差。采用滑动窗口的机制就会一次发送多条数据,提高传输性能

⑤问题:TCP是如何通过滑动窗口协议实现流量控制和拥塞控制的?

通过设置滑动窗口的大小,用ACK告知发送端自己缓存区的大小,从而使发送端以合适的速度发送,实现流量控制;

发送端根据网络拥塞情况确定的窗口值。发送端在真正确定发送窗口时,应该取“通知窗口”和“拥塞窗口”的最小值。

⑥问题:什么是CDN,CDN是如何工作的?

一问:

CDN是内容分发网络

CDN是在用户和服务器之间增加高速缓存层,通过接管DNS实现,将用户的请求引导到高速缓存服务器上获取源服务器的数据

⑦问题:什么是DNS ? 说说DNS解析过程?

一问:

DNS为域名系统,是因特网上作为域名和IP地址相互映射的分布式数据库

二问:

1.浏览器检查缓存中有没有这个域名对应的解析过的ip地址,如果有该解析过程将会结束。

2.检查本地的hosts文件是否有这个网址映射关系

3.如果hosts种没有这个域名映射,查找本地DNS解析器缓存,如果有直接返回

4.通过首选DNS服务器(本地域名服务器),以递归或循环的方式查询域名对应的IP地址并返回。(顶级域,二级域,三级域)

⑧问题:为什么连接的时候是三次,挥手的时候是四次?

一问:

1、假设连接的时候是两次,那么A滞留在网络中的报文经过一段时间传输到B,B会确认此连接。B单方面建立了连接,A会丢弃B的确认数据报文。B会一直等待A发送数据,造成B资源的浪费。

二问:

1、确保数据能够全部传输完成

A发送FIN后,B有可能正在向A传输数据,所以不会马上关闭,当数据全部传输完成后再发送ACK表示确认断开。

⑨问题:描述TCP和UDP的区别?

UDP:

无连接的,即发送数据之前不需要建立连接不保证可靠的交付,同时不使用拥塞控制

U支持一对一、一对多、多对一、多对多的交互通信首部只有8字节

TCP:

面向连接的传输层协议提供可靠的交付能力仅支持一对一通信

支持全双工通信(允许数据在两个方向上同时传输)首部最低有20字节

问题:如何用UDP实现可好传输?

引入序列号保证数据的顺序、确认机制保证数据能到达对端、重传机制保证超时引起的数据丢弃。

关注公众号↑↑↑:IT运维大本营,获取《网工大礼包》文章来源地址https://www.toymoban.com/news/detail-713496.html

到了这里,关于99%网工都会遇到的经典面试问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 对经典Java面试问题1

    Java中的基本数据类型有哪些?它们的大小是多少? Java中的基本数据类型包括以下类型及其大小: byte :8位 short :16位 int :32位 long :64位 float :32位 double :64位 char :16位 boolean :1位 基本数据类型在Java中用于存储基本的数值类型,以及布尔值。它们的大小确定了它们在内

    2024年02月16日
    浏览(40)
  • 经典30个嵌入式面试问题

    经典30个嵌入式面试问题 嵌入式系统的面试经典问题有很多,以下是其中的30个常见问题: 1.nbsp;什么是嵌入式系统? 2.nbsp;嵌入式系统和普通计算机系统有什么区别? 3.nbsp;嵌入式系统的主要应用领域有哪些? 4.nbsp;嵌入式系统的设计流程是什么?我这里有单片机、嵌入式、

    2024年02月09日
    浏览(47)
  • C++面试经典问题-Union联合

    联合(union)是一种节省空间的特殊的类,一个 union 可以有多个数据成员,但是在任意时刻只有一个数据成员可以有值。当某个成员被赋值后其他成员变为未定义状态。联合有如下特点: 默认访问控制符为 public 可以含有构造函数、析构函数 不能含有引用类型的成员 不能

    2024年01月16日
    浏览(42)
  • 2023年网络安全HW面试经典收藏

    1.应急响应查找内容 分析服务器上的安全问题,你关注哪些数据? 进程,日志,告警信息,威胁情报,文档编辑时间,启动项,路由管理,防火墙,最后登录时间,CPU带宽,内存,代码安全,用户账户,隐藏文件等。 2.你有没有毕业? 已经毕业,正在工作(实习) 3.护网预

    2024年02月02日
    浏览(44)
  • fabric-gataway-java每次连接到区块链网络时client的身份都会改变的问题

    之前写的登录逻辑 现在的登录逻辑 每次enroll时,无论账号密码是否改变,得到的Enrollment都会变化,证书文件也会发生改变,导致每次登录的时候都会对账号对应的证书重写。

    2024年02月16日
    浏览(36)
  • 【Elacticsearch】 原理/数据结构/面试经典问题整理

    对Elacticsearch 原理/数据结构/面试经典问题整理的文章; 映射 | Elasticsearch: 权威指南 | Elastic 目录 Elacticsearch介绍 原理 建立索引原理 查询索引原理 更新索引原理 删除索引原理 分片副本机制,集群发现选举机制 ,负载机制,容错机制,扩容机制 数据类型 数据结构 先介绍倒排

    2024年02月10日
    浏览(46)
  • 网络工程师经典47道面试题及答案

    1. 请写出 568A 与 568B 的线序: T568A 白绿、绿、 白橙、蓝 白蓝、橙 白棕、棕 T568B :白橙、橙 白绿、蓝 白蓝、绿 白棕、棕 2. 什么是三层交换,说说和路由的区别在哪里? 三层交换机和路由器都可工作在网络的第三层,根据 ip 地址进行数据包的转发(或交换), 原理上没有太

    2024年02月13日
    浏览(41)
  • 面试题Spring - 关于Spring的25个经典问题和答案

    Spring框架是一个为Java应用程序的开发提供了综合、广泛的基础性支持的Java平台。Spring帮助开发者解决了开发中基础性的问题,使得开发人员可以专注于应用程序的开发。Spring框架本身亦是按照设计模式精心打造,这使得我们可以在开发环境中安心的集成Spring框架,不必担心

    2024年02月03日
    浏览(51)
  • 【java面试】Java开发当中遇到的问题以及解决方法(147)

    问题一: 每个公司都有部门树结构,但是大公司的部门树每年可能会发生调整; 一般开发中我们都是直接根据部门ID去查询或者过滤数据或者做权限管控; 部门调整以后,可能就会查询不到数据或者过滤数据出问题; 如何解决 :每年调整的部门ID和原来的部门ID做映射关系(

    2024年01月24日
    浏览(50)
  • 20个经典面试问题Python面向对象实战--飞机大战(1),Python中高级面试必知必会

    each.reset() for each in mid_enemies: if each.active: each.move() if each.hit: screen.blit(each.image_hit, each.rect) each.hit = False else: screen.blit(each.image1, each.rect) pygame.draw.line(screen, BLACK, (each.rect.left, each.rect.top - 5), (each.rect.right, each.rect.top - 5), energy_remain = each.energy / enemy.MidEnemy.energy if energy_remain 0.2: en

    2024年04月15日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包