面试汇总——计算机网络


各种博客整理和自己总结

计算机网络

网络概述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Qkb6KcR8-1620097819918)(Interview.assets/image-20210430113037550.png)]

网络七层模型
你知道TCP协议、IP协议、HTTP协议分别在哪一层吗?

传输层、网络层、应用层

运输层

补充

UDP的优点:

  1. 在发生之前不需要建立连接,也不需要释放连接
  2. 不会有拥塞控制,即使发生拥塞,还是会按照之前的频率发送
  3. 面向报文,不会对报文进行分段,如果报文过长,在IP层就会进行分段,降低效率‘如果报文过短,IP的首部会过长,传输效率也会降低
  4. 是无连接的,会尽自己最大努力交付
  5. 存在一对一,一对多,多对多

TCP的优点

  1. 会建立安全的连接
  2. 全双工通道,即双方的应用进程在任何时候都是可以发送数据的
  3. 面向字节流,只保证接收方和发送方的字节流完全一样
  4. 只存在一对一
TCP协议
请你说明一下,TCP协议的3次握手。

序列号seq:tcp为自己的连接上的所有数据都会有一个编号,第一个字节的编号时本地随机产生的,给字节编好后就给每一个报文指定一个序号,序列号seq就是每个报文段中的第一个数据字节的序号

确认号ack:期望收到下一个报文段的第一个编号,即当前报文段的最后一个编号+1

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8Ulhd3zG-1620097819919)(Interview.assets/image-20210430101956082.png)]

  1. 此时主机1想请求建立连接即SYN=1,产生随机序列号seq=x
  2. 主机2收到请求,接受连接SYN=1,ACK=1,确认主机1ack=x+1,产生自己的序列号seq=y
  3. 主机1,确认ACK=1,以及检查ack是否匹配,正确,发送ACK=1,ack=y+1,以及自己的序列号seq=x+1

补充

为什么建立连接是3次,而关闭连接是4次?

因为在建立连接时,当主机a发出请求,主机b可以同步应答(SYN+ACK)建立连接;但是在关闭连接时,当主机a主动关闭连接,虽然主机b同意但此时不会立即关闭,因为b或许还么有把报文发送完,因此要等一会才能给主机a回复,所以会比建立连接多一次

四次挥手

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-stu8ZkPo-1620097819920)(Interview.assets/image-20210430110428899.png)]

  1. 客户端主动关闭连接发送FIN=1和自己的序列号seq=u
  2. 服务端收到请求,发送ACK=1,ack=u+1,以及自己的seq=v,但此时服务器不会立即关闭会先完成自己还未发送完的报文,因此此时客户端没有数据发送,但是服务端若还未完,还可以向客户端发送数据,客户端还要接受,此时就是关闭等待时间,还要持续一会
  3. 当服务端数据发送完,会发生FIN=1,ACK=1,ack=u+1,seq=w,即此时服务端也结束了,客户端不要等待了
  4. 客户端发送ACK=1,ack=w+1,seq=u+1
谈一下,为什么tcp为什么要建立连接?

因为tcp是安全连接

请你解释一下TCP为什么可靠一些
  1. 累积确认,在TCP中,确认的是下一个报文的第一个数据字节的序号,如果没有收到确认,会将自己重传队列中的副本报文进行发送;延迟确认,一般在收到报文后,会等待一段时间,如果此时还有新的报文会继续接受,如果想发送报文,可以通过发送确认信息,将想要发送的报文捎带过去,可以提高传输效率;如果收到重复报文或者错误报文会选择丢弃,如果是收到未按序号的报文会暂存,将待所缺序号收集完毕,再一起向应用层传输;每次发送一个报文,会设置一个计数器,如果计数器时间到了,但还没有收到确认信息,会将此报文进行重传
  2. 以字节为单位的滑动窗口,滑动窗口可以用来保证传输的数据都是已被确认的,如果未被确认,到达窗口顶值,就不能发送了
  3. 超时重传
  4. 快速重传,当接受方一连收到三个重复确认后,就可以知道此时也许发送网络拥塞
  5. 选择确认,对未按序到达的字节块,以免出现超时重传,可以使用选择确认,告知发送方已经收到了
  • 三次握手
  • 超时重发
  • 滑动窗口
  • 拥塞控制
请说明一下哪种应用场景会使用TCP协议,使用它的意义

因为tcp是一中安全的连接,所以当对网络质量有较高要求时

网络基础
简单描述一下,TCP的连接和释放过程。

三次握手和四次挥手

网络层

ARP协议
请简单解释一下,arp协议和arp攻击。

arp协议又称地址解析协议,是ip地址对物理地址的映射

流程

  1. 会先在主机的高速缓存中查找对应ip地址主机的物理地址,如果没有【可能是新加的主机;或者本机刚刚加电,还未有任何其他主机的信息】
  2. 会在本局域网内发送一个广播的分组请求“我的ip地址是aaa,物理地址是bbb,我想知道ip地址为ccc的的主机的物理地址”
  3. 本局域网上的所有主机允许的arp进程都会收到这个arp分组请求
  4. 主机b看到自己的ip地址,会发出响应“我是IP地址为ccc的主机,我的物理地址是ddd”
  5. 主机a收到响应后,就会将主机bip地址到物理地址的映射写入到arp告诉缓存中,在上述主机a发出请求分组时,会将自己的ip地址到物理地址的映射写入其中,当主机b收到请求,也会将a的映射写入到自己的高速缓存中

arp的请求分组是在数据链路层的广播,但arp的响应分组是普通的数据链路层的单播

ARP协议基本没有对网络的安全性做任何思考,当时人们考虑的重点是如何保证网络通信能够正确和快速的完成——ARP协议工作的前提是默认了其所在的网络是一个善良的网络,

arp攻击也就是所谓的arp欺骗,因为arp中应答的ip地址和物理地址是可以伪造的,

此时主机a发送请求,主机c伪装成主机b应答,但当下次如果主机a收到了来自主机b的应答,此时欺骗会失败,但是主机b如果发送大量伪造报文,同时欺骗主机a和b,那么就可以监控二者之间的信息,还可以阻断通信…

ARP攻击之所以能够产生,就是因为伪造了对ARP广播的应答,而路由器会起到隔离广播域的作用,因此arp的攻击只能在局域网中产生

ICMP协议
什么是icmp协议,它的作用是什么?

网际控制报文协议,主要分为ICMP差错报告报文和ICMP查询报文

路由器
请你讲一下路由器和交换机的区别?
  • 路由器

    1. 作用在网络层
    2. 智能的路由选择,隔离广播域
    3. 不是即插即用,会分配ip地址
    4. 适合于上千台的大网络
  • 交换机

    1. 作用在数据链路层
    2. 即插即用,并且具有相对较高的分组过滤和转发速度(只用处理通过第二层传输过滤的数据)
    3. 对广播风暴不提供任何保护措施
    4. 适合于几百台的小网络

应用层

http
请解释一下,http请求中的304状态码的含义

为修改,即自从上次请求后,请求的网页未被修改。服务器可以告诉浏览器自从上次抓取后网页没有变更,进而节省带宽和开销。

请你讲讲http1.1和1.0的区别
  • http1.1
    1. 可以建立长连接即persistent connection,在同一个http连接中,可以传送多个http请求和响应,多个请求和响应也可以重叠,也可以同时进行
    2. 是持续的流水线的连接,即可以一个接着一个的发送请求,服务器会一个接着一个的响应
  • http1.0
    1. 只会建立短暂的连接,即非持续连接,在每次请求完成之后,连接会中断
HTTP加密协议
请你说明一下,SSL四次握手的过程

SSL(安全套接字层)和TLS(传输层安全)是属于应用层和传输层之间的,为TCP建立安全连接的,主要为应用层的HTTP协议提供,比如当我们要进行密码支付的时候,HTTP会变成HTTPS

http协议
请谈一下,你知道的http请求,并说明应答码502和504的区别
  1. HTTP的操作过程

  2. http1.0是非持续连接;http1.1是持续流水线的连接

  3. http的报文格式(面向文本);请求行/状态行,首部,实体

  4. 状态码;1xx通知信息的;2xx成功收到消息;3xx重定向;4xx客户错误;5xx服务器错误

    502:作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应

    504:作为网关或者代理工作的服务器尝试执行请求时,未能及时从上游服务器(URI标识出的服务器,例如HTTP、FTP、LDAP)或者辅助服务器(例如DNS)收到响应

请说明一下http和https的区别
  • https是一种安全的连接可以用来完成在线支付等一系列保密性的工作,
    • 是密文传输;
    • 端口443
  • http
    • 是明文传输;
    • 端口80
请讲一下浏览器从接收到一个URL,到最后展示出页面,经历了哪些过程。

http请求的流程:(以URL为例)

  1. 点击超链接,实际是一个URL地址
  2. 浏览器请求DNS解析这个URL的ip地址
  3. DNS解析出ip地址166.111.4.100
  4. 浏览器与服务器建立tcp连接(在服务器端IP为166.111.4.100,端口为80)
  5. 浏览器发出取文件,get
  6. 服务器www.tsinghua.edu.cn给出响应,把文件index.html返回给浏览器
  7. 释放tcp连接
  8. 浏览器显示index.html
DNS
请你谈谈DNS的寻址过程。

主机采用递归查询本地域名解析服务器采用迭代查询

  1. 本机先在高速缓存中查找网址关系映射,如果有,则解析,如果没有
  2. 则会向本地域名解析服务器(迭代查询)查找,如果有,则解析,如果没有则会告知本地域名解析服务器,根域名服务器的ip地址
  3. 会向根域名服务器查找…
  4. 会向顶级域名服务器查找…
  5. 会先权威域名服务器查找,会告知查询主机的ip地址
  6. 本地域名服务器会把最后的查询结果告知给主机
反向代理
请你简单讲解一下,负载均衡反向代理模式的优点、缺点

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YMJ4NcHP-1620097819920)(Interview.assets/image-20210504093349545.png)]

反向代理:是指用一个服务器来接受internet的连接,再将这些请求转发给内部网络上服务器,最后通过这个服务器将结果返回给客户端,

负载均衡:通过反向代理,将请求转发给内部网络上的服务器已达到负载均衡

优点:我们只能感知是一个服务器帮我们处理请求

缺点:当在并发的情况下是,代理服务器需分别对外对内打开,并且自己本身的的请求数量也会非常大,此时代理服务器有可能会成

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值