计算机网络面试知识点汇总——持续更新

计算机网络知识

  1. 互联网的组成:

    边缘部分(所有连接的主机,用户可以直接的使用)

     核心部分(由大量网络和连接网络的路由器组成,为边缘部分的主机提供服务)。
    
  2. 通信方式:

    CS客户和服务器

     p2p。
    
  3. 电路交换与分组交换:

    电话交换:建立专用的物理链路,始终占用;

     报文交换:先把报文存储下来,然后把相同目的地的报文统一发送。
    
     分组交换:分组交换也使用存储转发,但是转发的是分组并不是报文,需要事先切分,在切分的数据前面加上首部(其中包换了目的地址和原地址等控制信息)。
    
  4. 时延=发送时延+传播时延+处理时延+排队时延。

  5. 七层协议:表现层,会话层,应用层传输层网络层数据链路层,物理层。(网络层以上都是网关)

    表现层:信息的语法语义以及他们的链接,如加密解密,转换翻译,解压缩。

     会话层:不同机器上的用户之间建立及管理会话。
    
     应用层:为特定应用程序体统数据传输服务,例如HTTP,DNS。数据单位为报文。
    
     传输层:提供的是进程间的通用数据传输服务端到端的连接。主要包括两种协议,传输控制协议TCP,提供面向连接可靠的数据传输服务,数据单位为报文段;用户数据报协议UDP,提供无连接的数据传输服务,数据单位为用户数据报。重要功能为复用和分用。
    
     网络层:为主机间提供服务,网络层把运输层产生的报文段或者用户数据报封装成分组来进行传输。路由器
    
     数据链路层:为相邻结点之间提供服务,数据链路层把网络层传来的分组封装成帧。网桥
    
     物理层:考虑的是怎么在传输媒体上传输数据比特流,尽可能的屏蔽传输媒体和通信手段的差异。中继器。
    
  6. 数据在各层之间的传递过程:在向下的过程中,需要添加下层协议所需的各种首部或者尾部,而在向上的过程中不断地拆分首部和尾部,路由器只有三层协议,因为路由器位于网络的核心中,不需要为进程或者应用程序提供服务,因此也就不需要运输层和应用层。

  7. 带通调制,模拟信号是连续的信号,数字信号是离散的信号,带通调制把数字信号转换为模拟信号。

  8. 信通复用技术:

    频分复用:在相同的时间占用不同的频率带宽资源。

     时分复用:在不同的时间占用相同的频率带宽资源。
    
  9. 交换机与路由器的区别:

    交换机工作于数据链路层,能识别MAC地址,根据MAC地址转发链路层数据帧。具有自学机制来维护IP地址与MAC地址的映射。

     路由器位于网络层,能识别IP地址并且根据IP地址转发分组。维护着路由表,根据路由表选择最佳的路线。
    
  10. 路由器分组转发的流程:首先从数据报的首部提取目的主机的IP地址D,得到目的网络地址N。如果N与此路由器之间相连的某个网络地址,则直接交付。若路由表有目的地址为D的特定主机路由,则把数据报直接传送给表中所指明的下一跳路由器。若路由表中有到达网络N的路由,则把数据报传送给路由表中所指明的下一跳路由器。如路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由。报告转发分组出错

  11. UDP和TCP的特点:

    UDP是无连接的,尽最大的可能交付,没有拥塞控制,面向报文。
    TCP是面向连接的,提供可靠交付,有流量的控制拥塞控制,提供全双工通信,面向字节流。需要维护连接状态,报文头里面的确认序号,累计确认以及超时重传机制保证不丢包,不重复,按序到达。一对一
    
  12. udp和tdp首部格式

    UDP首部格式:只有八个字节,包括源端口,目的端口,长度,检验和,12字节的伪首部是为了计算检验而临时添加的。
    
    TCP首部格式:
    
    	序号:对于字节流镜像编号。
    
    	确认号:期望收到的下一个报文段的序号。
    
    	数据偏移:指数据部分距离报文段起始处的偏移量,实际上指的是首部的长度。
    
    	确认ACK:当ACK=1时确认号字段有效,否则无效,TCP规定,在连接建立后所有传送的报文段都必须把ACK置1.
    
    	同步SYN:在连接建立时,用来同步序号,当SYN=1,ACK=0表示这是一个连接请求报文段。若对方同意建立连接,则相应报文中SYN=1,ACK=1。
    
    	终止FIN:用来释放一个连接,当FIN=1时表示此报文段的发送方的数据已发送完毕,并要求释放运输连接。
    
    	窗口:窗口值作为接收方让发送方设置其发送窗口的依据,之所以要有这个限制是因为接收方的数据缓存空间是有限的。
    
  13. TCP的三次握手:

    首先服务器端处于监听状态,等待客户的连接请求。
    
    然后客户端发送连接请求的报文段SYN=1,ACK=0.选择一个初始的序号x。
    
    服务器端收到连接请求报文段,如果同意建立建立,则向A发送连接确认报文段其中SYN=1,ACK=1,确认号为x+1,同时也选择一个初始的序号y。
    
    客户端收到服务器端的连接确认报文后,还要向服务器发送确认,确认号为y+1,序号为x+1、
    
    服务器端收到客户端的确认后连接建立。
    
  14. TCP的四次挥手:

    客户端发送连接释放报文段,FIN=1;
    
    服务器端收到以后发送确认,此时TCP处于半关闭的状态,服务器端能向客户端发送数据,但是客户端不能像服务器端发送数据。
    
    当服务器端不在需要连接的时候,发送连接释放请求报文段FIN=1.
    
    客户端收到发送确认,此时连接释放。
    
    TIME_WAIT:客户端收到服务器端的FIN报文后进入此状态,此时并不是直接进入CLOSED状态,还需要等待一个时间计时器设置的时间,为了确保最后一个确认报文段能够到达。可能存在已失效的连接请求报文段,为了防止这种报文段出现在本次连接意外,需要等待一段时间。
    
  15. TCP滑动窗口:窗口是缓存的一部分,用来暂存字节流,发送方和接受方各有一个窗口,接收方通过TCP报文段中的窗口字段告诉发送方自己的窗口大小,发送方根据这个值和其他信息设置自己的窗口大小。

  16. TCP拥塞控制:慢开始,拥塞避免,快重传,快恢复。

  17. TCP粘包:发送方发送的多个数据包,到接收方缓冲区收尾相连,粘成一个包,被接收

    • 原因:TCP 协议默认使用 Nagle 算法可能会把多个数据包一次发送到接收方。应用程读取缓存中的数据包的速度小于接收数据包的速度,缓存中的多个数据包会被应用程序当成一个包一次读取。
    • 处理方式发送方使用 TCP_NODELAY 选项来关闭 Nagle 算法;数据包增加开始符和结束,应用程序读取、区分数据包;在数据包的头部定义整个数据包的长度,应用程序先读取数据包的长度,然后读取整个长度的包字节数据,保证读取的是单个包且完整。
  18. 域名系统DNS:把主机名解析为IP地址,被设计成分布式系统。

  19. 解析过程:主机将本地域名服务器解析过程采用递归,而本地域名服务器向其他域名服务器解析可以使用递归和迭代两种发放。

  20. 迭代的方式下,本地域名服务器向一个域名服务器解析请求解析以后,结果返回本地域名服务器,然后本地域名服务器继续向其他域名服务器请求解析。

  21. 在递归下,结果不是直接返回而是继续向前请求解析,最后的结果才会返回。

  22. 文件传输协议FTP:FTP在运输层使用TCP,并且需要建立两个并行的TCP连接:控制连接和数据连接。控制连接在整个会话期间一直保持打开,而数据连接在数据传送完毕以后就关闭。控制连接使用端口号21,数据连接使用端口号20。

  23. WEB页面请求过程:

    • 向DNS服务器发送DNS查询报文来解析域名。
    • 开始进行HTTP会话,需要先建立TCP连接。
    • 在运输层的传输过程中,HTTP报文被封装进TCP中。HTTP请求报文使用端口号80,因为服务器监听的是80端口。连接建立以后,服务器会随机分配一个端口号给特定的客户端,以后的TCO传输都是使用这个端口号。
    • 在网络层的传输过程中,TCP报文段会被封装进IP分组中,IP分组经过路由选择,最后到底目的地。
    • 在链路层,IP分组会被封装进MAC帧中,IP地址解析成MAC地址需要使用ARP。
    • 客户端发送HTTP请求报文,请求获取页面。
    • 服务器发送HTTP相应的报文,客户端从而获取该页面。
    • 浏览器得到页面内容以后,解析并渲染,向用户展示页面。
  24. 网络系统:

    • LAN:局域网
    • MAN:城域网
    • WAN:广域网
    • 无线局域网:有固定基础设施的和无固定基础设施(自组网络)的。其中自动自组网络和移动IP并不相同。
  25. MAC地址是12位16进制的。

    • 127.0.0.1是送回地址,指本机一般用于测试。
    • 192.168.0.1属于IP地址的C类地址,属于保留IP专门用于路由器设置。
    • 10.0.0.1是内部地址,与172.15..-172.31.. 192.168.*.*一样,内部网用的地址,不会出现在公网Internet上;
  26. 当一个主机请求查询域名时,先查本地缓存;没有缓存时请求本地域名服务器;本地域名服务器没有请求根域名服务器。

  27. 以太网的MAC协议提供的是无连接不可靠的服务。

  28. 对于纠正一位差错的海明码,必须满足如下条件:记冗余位长度为r,那么总的码长为:2r-1,信息位长度为:2r-r-1.所以依题设 2^r-r-1=4,r=3,即冗余位至少应为3位。

  29. 传输时延:一个站点冲开始发送数据帧到数据帧发送完毕所需的全部时间。

     传播时延:发送端开始发送数据到接收端收到数据所需要的全部时间。
     
     传输时延和发送数据帧大小有关,而传播时延和传输距离相关。 分组交换的数据帧最小,所以传输时延最小。
    
  30. 数据通信中:单工通信,半双工通信,全双工通信。

  31. ICMP协议是IP协议:a.差错报告报文;b.ICMP询问报文。

  32. HTTP的基础是TCP/IP。

    • X.25:分组交换网。
    • IPX/SPX:全称顺序包交换协议的组合,它是Novell公司为了适应网络的发展而开发的通信协议,具有很强的适应性,安装方便,同时还具有路由功能,可以实现多网段间的通信。其中,IPX协议负责数据包的传送;SPX负责数据包传输的完整性。
  33. SNMP 简单网络管理协议。该协议能支持网络管理系统,用于监测连接到网络上的设备是否有任何引起管理者关注的情况。

    FTP 文件传输协议,用于Internet上的控制文件的双向传输。

    ICMP Internet控制报文协议。用于IP主机、路由器之间传递控制消息。

    SMTP 是简单邮件传输协议,是一组用于由源地址到目的地址传送邮件的规则,帮助每台计算机在发送或中转信件时找到下一个目的地。是TCP协议支持的应用协议。

    一般地,邮件客户端只能用SMTP发送邮件,接收邮件一般采用IMAP或者POP3。

  34. 交换机有五种攻击类型:vlan跳跃攻击;生成树攻击;MAC表洪水攻击;arp攻击;vtp攻击。

  35. 局域网拓扑结构一般有三种:星形,总线形,环形。

 A类网络的IP地址范围为:1.0.0.1-126.255.255.254; 

 B类网络的IP地址范围为:128.1.0.1-191.255.255.254; 

 C类网络的IP地址范围为:192.0.1.1-223.255.255.254
  1. IP地址中的网络号:指定了主机所属的网络。

  2. 路由协议的选择:首先路由选择协议都是自适应的,一般分为两类

      内部网关协议IGP在自治系统内部使用,如RIP和OSPF。
      
      外部网关协议EGP在自治系统之间使用,如BGP。
      
      内部网关协议RIP:是一种分布式的基于距离向量的路由选择协议。距离是指跳书。RIP按固定的时间间隔仅和相邻的路由器交换自己的路由表,经过若干次交换以后,所有路由器最终会知道到达本自治系统中任何一个网络的最短距离和下一跳路由器地址。实现简单,开销小,但是最大距离15限制了网络的规模。并且当网络出现估值的时候需要较长的时间才能将消息传递到所有的路由器。	
      
      内部网关协议OSPF:最短路径优先OSPF,是为了克服RIP缺点而开发出来的。是只用了最短路径算法SPF,具有以下的特点,向本自治系统中的所有路由器发送信息,发送的信息及时与相邻路由器的链路状态,链路状态包括与那些路由器相连以及链路度量,度量用的费用,距离,时延,带宽来表示。只有当链路状态发生变化的时候,路由器才会发送信息。
      
      外部网关协议BGP:BGP只能寻找一条比较好的路由但是不一定是最佳路由,它采用路径向量路由选择协议,每一个AS都必须配置BGS发言人,通过在两个相邻BGP发言人之间建立TCO连接来交换路由信息
    
  3. 浏览器输入URL按下回车发送了什么:

    • 浏览器查找域名的IP地址:
      • 查找浏览器缓存:DNS记录
      • 查找系统缓存:hosts文件
      • 查找路由器缓存:DNS缓存
      • 递归查询
      • 迭代查询
    • 浏览器与目标服务器建立TCP连接
      • 通过DNS解析找到IP地址建立TCP连接
      • 三次握手
    • 浏览器通过http协议发送请求
      • 浏览器向主机发送一个HTTP—GET方法报文请求。
    • 某些服务器会做永久重定向响应
      • 重定向的作用:为了负载均衡或者导入流量,提高SEO排名,利用一个前端服务器接受请求,然后负载到不同的主机上,可以大大提高站点的业务并发处理能力;重定向也可将多个域名的访问,集中到一个站点;
    • 浏览器跟踪重定向地址
    • 服务器处理请求
    • 服务器发送一个HTML响应
    • 释放TCP连接
    • 浏览器显示页面
    • 浏览器发送获取嵌入在HTML中的其他内容
  4. jsp和servlet区别:Servlet适合动态输出Web数据和业务逻辑处理,对于html页面内容的修改非常不方便;JSP是在Html代码中嵌入Java代码,适合页面的显示。内置对象不同,获取内置对象的方式不同。

    • Servlet
      • 一种服务器端的Java应用程序,是接收网络服务的请求和产生响应的一种方式。
      • 由Web容器加载和管理
      • 用于生成动态Web内容
      • 接受 http 请求,产生动态 http 响应。Web容器负责将 HTTP 请求转换为 HttpServletRequest 对象
    • Jsp
      • 是Servlet的扩展,本质上还是Servlet
      • 每一个Jsp页面就是一个Servlet实例
      • Jsp页面会被Web容器编译成Servlet,Servlet再负责响应用户请求
  5. JSP内置对象

    内置对象 作用
    1 request 客户端的请求信息:Http协议头信息、Cookie、请求参数
    2 response 用于服务器响应客户端请求、返回信息
    3 pageContext 页面的上下文
    4 session 客户端与服务端之间的会话
    5 application 用于获取服务端应用生命周期的信息
    6 out 用于服务器传输内容到客户端的输出流
    7 config 初始化时,Jsp引擎向Jap页面传递的信息
    8 page 指向Jsp页面本身
    9 exception 页面发送异常,产生的异常对象
  6. JSP的作用域

    作用域 名称 描述
    page 当前页面作用域 相当于Java关键字中this。在这个作用域中存放的属性值,只能在当前页面中取出,一个页面相关的对象和属性
    request 请求作用域 范围是从请求创建到请求消亡这段时间,一个请求可以涉及的多个页面。jsp:forwardjsp:include跳转到其他页面,也在作用域范围。
    session 会话作用域 范围是一段客户端和服务端持续连接的时间,用户在会话有效期内多次请求所涉及的页面。seesion会话器,服务端为第一次建立连接的客户端分配一段有效期内的属性内存空间。
    application 全局作用域 范围是服务端Web应用启动到停止,整个Web应用中所有请求所涉及的页面。当服务器开启时,会创建一个公共内存区域,任何客户端都可以在这个公共内存区域存取值。
  7. session和cookie区别(确定会话中的身份):

    • session:在服务器端记录信息,保存的数据大小取决于服务器的程序设计。可以被服务器的程序处理为key-value类型的如何对象;存在服务器端,安全性高。量用户会话服务器端保存大量 session 对服务器资源消耗较大。
    • cookie:在浏览器端记录信息,保存数据大小不超过4kb,大多数浏览器显示一个站点最多20个cookie;存在浏览器里的一端文本;可能被其他程序分析获取,安全性低。信息保存在 cookie 中缓解了服务器存储用信息的压力

    一般实际使用中,都是把关键信息保存在 session 里,其他信息加密保存到cookie中。

  8. forward和redirect的区别:

    • 浏览器url地址显示不同:服务端通过 forward 返回,浏览器 url 地址不会发生变化;服务器通过 redirect 返回,浏览器会重新请求, url 地址会发生变化
    • 前后台两者页面跳转的处理方式不同:forward 跳转页面,是服务端进行页面跳转加载(include)新页面,直接返回到浏览器;redirect 跳转页面,是服务端返回新的 url 地址,浏览器二次发出 url 请求
    • 参数携带情况不一样,forward 跳转页面,会携带请求的参数到新的页面;redirect 跳转页面,属于一次全新的 http 请求,无法携带上一次请求的参数
    • http请求次数不同:forward 1次;redirect 2次
  9. Http:

    • 介绍:超文本传输协议,是一个基于TCP/IP通信协议来传递数据,默认端口号80

    • 注意:HTTP是无连接的(可以节约时间)、是媒体独立的、是无状态的

    • HTTP协议版本:

      • HTTP/1.0:支持GET、POST、HEAD三种HTTP请求方法。
      • HTTP/1.1:该版本默认采用持久连接,并能很好地配合代理服务器工作。还支持以管道方式同时发送多个请求,以便降低线路负载,提高传输速度。新增了:OPTIONS、PUT、PATCH、DELETE、TRACE、CONNECT六种HTTP请求方法。

      GET:请求指定的页面信息,并返回实体主体。长度受限制,显示在地址拉中,不适合私密传出以及大量数据传出。

      HEAD:类似于 GET 请求,只不过返回的响应中没有具体的内容,值返回响应头,用于获取报头,查看状态,更加高效

      POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改。把传输的数据封装在HTTP请求数据中,以名称/值的形式出现,可以传输大量数据,适用于表单的提交

      PUT:从客户端向服务器传送的数据取代指定的文档的内容。

      DELETE:请求服务器删除指定的页面。

      CONNECT:HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。

      OPTIONS:允许客户端查看服务器的性能。

      TRACE:回显服务器收到的请求,主要用于测试或诊断。

      PATCH:是对 PUT 方法的补充,用来对已知资源进行局部更新 。

    • 请求报文:请求行,请求头部,空行和请求体

      • 请求行:请求方法,请求URL(不包含域名),HTTP协议版本
      • 请求头部:由关键字/值对组成,每行一对
        • User-Agent : 产生请求的浏览器类型
        • Accept : 服务器支持哪些请求方法。
        • Content-Type:告诉客户端实际返回的内容的内容类型
        • Host : 请求的主机名,允许多个域名同处一个IP地址,即虚拟主机
      • 空行:请求头之后是一个空行,通知服务器以下不再有请求头
      • 请求体:GET没有请求数据,POST有。
    • 响应报文:状态行,消息报头,空行,响应体

      • 状态行:服务器HTTP协议版本,响应状态码,状态码的文本描述:HTTP/1.1 200 OK
        • 状态码:第一个数字定义响应类别:
          • 1xx:指示信息,表示请求已接收,继续处理
          • 2xx:成功,操作被成功接收并处理
            • 200 OK:客户端请求成功
            • 204 No Content:无内容。
            • 206 Partial Content:服务器已经完成了部分GET请求(客户端进行了范围请求)。
          • 3xx:重定向
            • 301 Moved Permanently:永久重定向,表示请求的资源已经永久的搬到了其他位置
            • 302 Found:临时重定向,表示请求的资源临时搬到了其他位置
            • 303 See Other:临时重定向,应使用GET定向获取请求资源。303功能与302一样,区别只是303明确客户端应该使用GET访问
            • 307 Temporary Redirect:临时重定向,和302有着相同含义。POST不会变成GET
            • 304 Not Modified:表示客户端发送附带条件的请求(GET方法请求报文中的IF…)时,条件不满足。
          • 4xx:客户端错误
            • 400 Bad Request:客户端请求有语法错误,服务器无法理解。
            • 401 Unauthorized:请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用。
            • 403 Forbidden:服务器收到请求,但是拒绝提供服务
            • 404 Not Found:请求资源不存在。比如,输入了错误的url
            • 415 Unsupported media type:不支持的媒体类型
          • 5xx:服务器端错误,服务器未能实现合法的请求。
            • 500 Internal Server Error:服务器发生不可预期的错误。
            • 503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常,
发布了47 篇原创文章 · 获赞 35 · 访问量 3231

猜你喜欢

转载自blog.csdn.net/issunmingzhi/article/details/103850411