# 知识点

  1. OSI 七层模型分别对应着五层模型的哪一部分

    1. OSI 七层模型: 物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
    2. TCP/IP 四层模型: 网络接口层(链接层)、网络互联层(网际层)、传输层、应用层
    3. 五层模式: 将 OSI 模型和 TCP/IP 模型对比,因此其实还是 TCP/IP 的四层,只不过将网络接口层拆分为物理层和数据链路层。
    • 物理层: 在局部局域网上传送数据帧,针脚、电压、线缆、集线器、中继器、网卡、接口卡等。
    • 数据链路层: 网络寻址、错误侦测和改错,逻辑链路控制(LLC)子层、介质访问控制(MAC)子层
    • 网络层: 数据的路径选择和转寄。互联网协议(IP)、ICMP
    • 传输层: TCP、UDP
    • 会话层: 保持双方的连接,对话;RPC,Sockets
    • 表示层: 数据的表现形式,例如压缩等,MIME,SSL,TLS
    • 应用层: WebSocket、HTTP
  2. 数据链路层三大法宝

    1. 封装成帧: 在数据的前后添加首部、尾部。
    2. 透明传输: 避免传输的数据中包含帧定界符,通过转义。
    3. 差错检测: 防止接收到传输过程中发生错误的数据。
      • FCS 生成: 传输数据 / 除数 = 商... 余数(FCS)
      • CRC 校验: (传输数据 + 余数) / 除数 = 商...0

    商丢弃,用不到,余数作为 FCS;CRC 校验,余数为 0 则正确。
    除数都是约定的,不同标准有不同的约定。

  3. 流量控制

    TCP 流量控制

    1. 连续 ARQ 机制
    2. 滑动窗口机制
    3. 累计确认
    4. 动态调整 ACK 号的等待时间
    5. ACK 和窗口的合并

    连续 ARQ (Automatic Repeat reQuest)机制: 不采用停止等待协议,即一问一答的线性方式,效率低下。而是采用连续发送多个分组,然后再等待确认。持有对方的窗口大小,根据窗口大小连续发送。

    滑动窗口: 接收方通过握手阶段,以及 ACK 应答包,通知发送方,自己缓冲区空闲的容量。发送方就可以根据这个容量,进行连续 ARQ 发送。

    累计确认: 接收方不用立即应答 ACK,而是等待一段时间,在这段时间可以处理多个分组,然后才应答最新的 ACK 号给对方。

    动态调整 ACK 号的等待时间: 发送方在连续 ARQ 发送后,等待对方的 ACK 包到达时间,如果网络拥堵,则 ACK 包到达的就很慢,超时时间就提高;如果网络减少拥堵了,则 ACK 包就到达的很快,相应的,超时时间就降低。超时时间就是等待时间,如果超过这个超时时间,就认为对方没收到,因此重新发送上次的一批分组。

    ACK 和窗口的合并: 接收方发送应答包 ACK 时,也可以在 ACK 包上面携带新的窗口大小,这样每次都可以减少一个包的发送。

  4. TCP 滑动窗口

    1. 窗口: 指的是接收方的空闲缓存区,处理能力的一个容量大小
    2. 滑动: 窗口动态变化,接收方处理能力实时变化,而且是根据接收分组序号的顺序滑动的。

    流量控制: 参考流量控制,以及还有一点,死锁的发生。

    接收方 B 发送一个窗口为 0 的大小,发送方 A 就开始等待;等待接收方 B 处理完缓冲区数据后,返回 ACK 包。然而,如果发送方 A 没收到 ACK 包,双方就一直等待,进入死锁状态。

    这种情况下,发送方 A 接收到 B 的 0 窗口 ACK 包后,进入等待的同时,持续计时器也同时开始工作,时间一到,就主动发送 1 字节或不包含数据的试探包序号使用旧的序号,这样不会浪费序号;如果对方返回还是零窗口,则重置计时器,重新等待。直到窗口不为 0。会使用退避算法尝试。

    拥堵控制

    滑动窗口: 解决的是接收方处理速度跟不上发送方发送速度的解决方案。

    拥堵控制: 解决的是阻止传输路径上拥堵的手段。

    发送方会根据滑动窗口和拥堵窗口来发送。

    控制发送量,慢慢接近网络的承载量。

    • RTO (Retransmission TimeOut): 重传的超时时间,即等待 ACK 应答的时间。
    • RTT (Round Trip Time): 单次握手的往返时间。
    1. TCP 为每条连接维护一个 “拥堵窗口”,拥堵窗口初始化为 1 个 MSS。
    2. 每次接收对方的 ACK,拥堵窗口就成倍增加;
    3. 直到到达一个 “慢启动阈值”,到达后,每次接收对方的 ACK,拥堵窗口就增加 1,线性增加。
    4. 如果等待 ACK 发生超时,慢启动阈值就降为超时前拥堵窗口的一半大小,拥堵窗口重置为 1,重新回到慢启动阶段。

    这里调优,可以控制拥堵窗口的增加量,以及窗口最大限值。

    对于报文丢失的处理,有不同的算法,区别是在重复确认

    1. TCP Tahoe: 丢失时,进入 “快速重传”,慢启动阈值设为之前的拥堵窗口值的一半,拥堵窗口值降为初始值,重新进入慢启动阶段。
    2. TCP Reno: 快速恢复,慢启动阈值设置为之前拥堵窗口值的一半,但是,新的拥堵窗口值也为前拥堵窗口值的一半,跳过了慢启动阶段;如果继续遇到超时,则才进入慢启动阶段。

    超时或者重复确认,认为是网络拥堵或网络质量差导致的丢包。

    重复确认即收到相同的 ACK 号,例如阈值是 3 次,即第 4 次收到相同确认号,那说明有包丢失了。

    对于 RTO 即超时,两个算法都是将拥堵窗口降为 1 个 MSS,然后进入慢启动阶段。

  5. TCP 为什么可靠?

    1. 确认 / 重传: 发送方发送后,需要接收方发回确认包,如果没收到接收方的确认,则会进行重传。
    2. 分组序号: 每个分组都有序列号,而且是排序的,能检测数据是否完整。
    3. 流量控制
    4. 拥堵控制
    5. CRC 校验和,当然 UDP 也有,因此不是特有的。
  6. TCP 重传

    1. 超时重传
    2. 重复确认重传

    重传有个问题,是全部重传呢?还是部分重传呢?

    因此,引入 SACK 机制。

    还有 D-SACK

  7. TCP 拆包 / 黏包机器解决办法

    TCP 是流协议,即没有界限的一串数据。TCP 不了解上层业务数据的具体含义,因此一个完整的包可能出现划分,或者多个小包封装成一个大的数据包。

    产生原因:

    1. write 写入的字节大于发送缓冲区的大小,因此进行拆分;
    2. 进行 MSS 大小的 TCP 分段;
    3. 以太网帧的 payload 大于 MTU 进行 IP 分片。

    解决策略:

    1. 消息定长,例如每个报文固定为 200 字节,不够就空位补空格。
    2. 在包尾部增加回车换行符,进行分割,例如 FTP 协议;
    3. 将消息分为消息头和消息体,消息头包含消息总长度的消息 / 或消息体的长度;一般设计是,消息头第一个字段使用 int32 来表示消息的总长度。
    4. 更复杂的应用层协议
  8. TCP 详解:重传、流量控制、拥塞控制

    无.

  9. TCP 拥塞算法

    早期的 Tahoe

    现代的:Reno、HSTCP、BIC、Vegas、Westwood

    1. 基于丢包反馈的 TCP 协议(Tahoe、Reno、New Reno、SACK)
    2. 基于延时反馈的 TCP 协议(Vegas、Westwood)
    3. 无线传输中的 Westwood 算法
    4. 基于丢包反馈的高速带宽算法(HSTCP、STCP、BIC-TCP、CUBIC)
  10. TCP 为什么采用三次握手,而不是两次握手或四次握手?

    1. TCP 协议提供可靠的面向连接服务
    2. 因此发送时,需要对方应答,才能知道对方有没收到。(这样就需要 2 次握手)
    3. 再由于 TCP 协议是全双工的,双方都可以发送和接收数据。
    4. 因此,双方都需要知道对方是否接收成功,因此,双方都要应答。(假设双方都发送连接请求、以及应答请求,这样就 4 次了)。
    5. 然而,一方的应答和请求可以同时发起,即合并在一起,因此至少要 3 次握手,以及握手次数越少越好,因此就是 3 次了。

    连接还有一个重点是:连接是为了初始化双方的一些设置,例如:序号、窗口值、以及选项(例如:SACK 是否支持);这就是为什么需要双方都连接。

    SACK - Selective Acknowledgment

  11. TCP 三次握手数据丢失会发生什么?

    有超时重传,重传指定次数都失败后,就断开连接。例如:第三次握手丢失,接收方会重传 SYN + ACK。

  12. RST 产生的情况

    1. 目标端口未监听,不存在
    2. 目的主机或者网络中防火墙拦截
    3. 向已经关闭的 socket 发送数据
    4. 向已关闭的连接发送 FIN

    对已经收到 RST 的连接进行 IO 操作,会产生 SIGPIPE 信号,broken pipe。

  13. TCP/UDP 报最大长度

    UDP 的是 65535 - 头部 8 字节 = 65527

    TCP 由 MSS 决定的,一般是 1460,以太网是 1500 - IP 头部(20) - TCP 头部(20) = 1460,当然还有可选字段,以及 MSS 双方可以协商。

    MSS 协商,可以在 TCP 头部可选字段携带。

  14. TCP/UDP 报文格式

    TCP 头部结构:

    1. 发送方端口号(2 字节)、接收方端口号(2 字节)
    2. 序号(4 字节)
    3. ACK(4 字节)
    4. 数据偏移量(4 位)、保留(6 位)、控制位(6 位)、窗口(2 字节)
    5. 校验和(2 字节)、紧急指针(2 字节)
    6. 可选字段(可变长度,可有可无)

    UDP 头部结构:

    1. 发送方端口(2 字节)、接收方端口(2 字节)
    2. 数据长度(2 字节)、校验和(2 字节)
  15. TCP/UDP 优缺点以及区别

    TCP:

    1. 优点:可靠,稳定。三次握手、确认、窗口、重传、拥堵控制,传完后断开连接。
    2. 缺点:慢,效率低,占用系统资源高,易被攻击。

    UDP:

    1. 优点:快,比 TCP 稍安全。没有握手、确认、窗口、重传、拥堵控制等机制,无状态协议,传递数据快。
    2. 缺点:不可靠,不稳定

    TCP 只能点到点;UDP 支持一对一,一对多,多对一和多对多的交互通信。

  16. HTTP 与 TCP 的区别和联系

    • 区别:HTTP 是应用层的协议,TCP 是传输层的协议。
    • 联系:HTTP 基于 TCP 协议传输内容。
  17. http 和 https 的区别与联系?

    • 区别:http 是明文传输的;https 是加密后传输的。端口不同
    • 联系:http + SSL = https;https 是在 http 的基础上,加上安全机制,通过证书,
  18. 为什么说 Http 是无状态的协议?

    1. 请求完成后,就释放连接,尽快将资源释放给其它客户。无连接
    2. 无状态是指协议对于事务处理没有记忆能力,服务器不知道客户端的状态。请求完成后就断开,不保存状态。
  19. Http 的 Http basic authentication

    1. 客户端发起 http 请求;
    2. 服务器验证此用户是否已经登陆,如果没有,就返回 401 给客户端,以及头部携带 WWW-Authenticate 字段,此字段提示客户端授权方式。例如:Basic
    3. 客户端输入账号、密码后,使用 base64 将账号和密码编码,然后将编码值放在头部的 Authorization 字段。
    4. 服务器从头部获取 Authorization 字段,然后解码,以及验证用户身份,验证通过后,就生成 session id,以及保存 session 相关信息,session id 通过 cookie 返回给客户端。
  20. HTTP 请求的 GET 与 POST 方式的区别

    1. 参数的位置不同
    2. 是否跨域
    3. GET 可以回退,而 POST 会再次提交请求
    4. GET 可以被 bookmark,而 POST 不可以
    5. GET 可以被浏览器缓存,而 POST 不会,除非手动设置
    6. GET 只能进行 url 编码,而 POST 支持多种编码方式
    7. GET 请求参数会被完整保留在历史记录中,而 POST 不行
    8. GET URL 有长度限制、只能 ASCII 字符,而 POST 没限制
    9. post 会先发送 options 试探跨域,然后再发送数据;而 GET 不会
  21. Http1.0、Http1.1、Http2.0 的区别

    1.0 和 1.1 比较:

    1. 1.0 需要通过 keep-alive 告知服务器要建立长连接;而 1.1 默认
    2. 缓存:1.0 有 If-Modified-Since, Expires 作为判断;而 1.1 引入过多控制策略:Entity tag,If-Unmodified-Since,If-Match,If-None-Match 等
    3. 状态码:1.1 新增 24 个错误状态码,如 409(Conflict),410(Gone)
    4. 1.1 支持只发送 header 信息而不带任何 body 信息,例如:OPTINOS 和 POST;服务器认为有权限,就返回 100 状态码,否则就是 401。客户收到 100 后,才发送数据。这样不用因为 401 就发送数据,节约带宽。
    5. HOST:1.0 认为每台服务器只绑定一个唯一的 IP 地址,因此请求消息中 URL 并没有主机名。但虚拟主机技术的发展,一台物理服务器上可存在多个虚拟主机,并且共享一个 IP 地址。因此请求和响应消息都支持 Host 域,且请求消息如果没有 Host 域就报 400 错误。

    1.1 和 2.0 比较:

    1. 多路复用:浏览器客户端在同一时间段针对同一域名的请求有一定数据限制,超过限制数目就会被阻塞。2.0 使用多路复用技术,同一连接并发处理多个请求,且并发数量比 1.1 大了好几个数量级。
    2. 首部压缩:1.1 不支持。2.0 使用 HPACK 算法对 header 的数据进行压缩。
    3. 服务器推送:2.0 支持把客户端需要的资源一起推送到客户端,免得客户端再次创建连接发送请求到服务器端获取。这种方式非常适合加载静态资源。
  22. Http 安全性

    1. 内容加密:看不到内容具体意义
    2. 身份认证:确认网站的真实性
    3. 数据完整性:防止内容被第三方冒充或者篡改。
  23. 从输入 URL 到页面加载发生了什么?

    1. DNS 解析
    2. TCP 连接
    3. 发送 HTTP 请求
    4. 服务器处理请求并返回 HTTP 报文
    5. 浏览器解析渲染页面
    6. 连接结束。
  24. Http 和 Socket 优劣比较?

    Http 优点:基于应用层的接口,使用方便

    Http 缺点:

    1. 传输速度慢、数据包大。
    2. 实现实时交互,服务器性能压力大。
    3. 数据传输安全性差,服务器不会自动给客户端发送数据,除了 2.0 版本。

    Socket 优点:

    1. 传输数据为字节级,传输数据可自定义,数据量少
    2. 传输数据时间短,性能高
    3. 适合客户端和服务器之间信息实时交互

    Socket 缺点:

    1. 需要对传输的数据进行解析,转化为应用层的数据
    2. 对开发人员的开发水平较高
    3. 相对于 Http 协议传输,增加了开发量。
  25. 如何实现可靠的 UDP

    可以按照 TCP 的可靠特性,在应用层处理相应的机制,例如:分片、确认、重发、拥堵控制等。这就变成 TCP 了。

  26. 网络协议是什么?

    1. 计算机双方通信时必须共同遵从的一组约定。如何建立连接,如何识别对方等。
  27. 为什么要对网络协议分层?

    1. 在制定标准之前,各个厂商对以太网的实现都不太统一,因此由国际标准组织统一标准,制定了 OSI 标准模型。
    2. 分层是为了将职责划分,这样比较直观、容易描述和理解复杂的系统,以及方便管理。因此采用分层的方式制定规范。计算机很多系统都是以分层思想来设计的。
  28. 应用层

    1. 应用层位于 OSI 的最上层。
    2. 应用层直接和应用程序接口结合,并提供常见的服务。
    3. 例子:HTTP、DNS、DHCP、FTP、SMTP、Telnet、SSH、POP3 等。
  29. 传输层

    1. 为应用提供端到端的通信服务。
    2. 例如:TCP、UDP 协议
  30. 网络层

    1. 提供路由和寻址功能。
    2. 使用 IP 地址来唯一标识互联网上的设备。依靠 IP 地址进行相互通信。
    3. 在网络内部,是不需要网络层设备的,仅仅靠数据链路层就可以进行通信。对于不同网络的互联,就需要借助路由器等第三层设备。不同网络相互通信因此形成互联网。
  31. 数据链路层

    构成数据单元(数据帧),并对帧定界、同步、收发顺序的控制,以及差错校验等。

    导线的端到端数据传输。

  32. 物理层

    1. 为数据端设备提供传送数据通路。
    2. 传输数据。
  33. TCP/IP 协议族

    1. 是一个网络通信模型,为网际网络的基础通信架构。
    2. TCP 和 IP 是该协议族的最初核心协议,因此称为 TCP/IP 协议族。
    3. TCP/IP 提供了应用的端到端通信的机制,将数据应该如何封装、定址、传输、路由以及在目的地如何接收,都加以标准化。
  34. TCP 报文的头部结构

    TCP 头部结构:

    1. 发送方端口号(2 字节)、接收方端口号(2 字节)
    2. 序号(4 字节)
    3. ACK(4 字节)
    4. 数据偏移量(4 位)、保留(6 位)、控制位(6 位)、窗口(2 字节)
    5. 校验和(2 字节)、紧急指针(2 字节)
    6. 可选字段(可变长度,可有可无)

    数据偏移量的单位,4 字节;因此,(241)4=154=60(2^4 - 1) * 4 = 15 * 4 = 60 字节。头部长度。

  35. 三次握手

    连接阶段:

    1. 发送方发送:SYN、【初始的序号 x】、【窗口大小】
    2. 接收方发送:【ACK:x+1】、【窗口大小】、SYN、【初始的序号 y】
    3. 发送方发送:【ACK:y+1】

    连接:为了同步序号窗口大小。以及其它选项的配置。

  36. 四次挥手

    1. 发送方:FIN
    2. 接收方:【ACK 号】
    3. 接收方:FIN
    4. 发送方:【ACK 号】
    5. 双方删除套接字
  37. 为什么 TCP 连接的时候是 3 次?2 次不可以吗?

    1. TCP 协议提供可靠的面向连接服务,因此需要确认机制,这样就 2 次握手了。
    2. TCP 提供全双工工作模式,双方可同时进行收发工作,以及双方都需要连接进行初始化,因此就 4 次了。
    3. 有一端在确认的同时,可以合并连接操作,因此 3 次就行。
  38. 为什么 TCP 连接的时候是 3 次,关闭的时候却是 4 次?

    1. TCP 协议提供可靠的面向连接服务,因此需要确认机制,这样就 2 次握手了。
    2. 双方都需要断开,然后才能安全的删除套接字,因此,需要 4 次。
    3. 以及断开操作和确认不能合并,是因为,一方断开是表明不再发送数据,但可能还有数据没接收完成;以及另外一端可能数据也还没发送完成。因此,另外一方在确认的同时,为了数据的完整,不能同时断开操作。等待另外一方发送完成后,才发送断开操作,因此双方断开操作不是同时的。
  39. 为什么客户端发出第四次挥手的确认报文后要等 2MSL 的时间才能释放 TCP 连接?

    1. 2 倍的 MSL,即报文的等待超时时间(Maximum Segment Lifetime)。
    2. 客户端发出 ACK 后,考虑到如果 ACK 由于网络拥堵等原因,丢失了,服务器会重新发送 FIN;此时客户端如果经过 1MSL 关闭后,就会导致接收不到 FIN 了。这样是为了确保网络拥堵情况下,服务器重发 FIN 可以收到 FIN,然后再次发送 ACK。
    3. 延长 1 个 MSL 是,确保服务器真正收到 ACK 包,不会因为没收到而重新发送 FIN,客户端关闭了,导致服务器错误。
  40. 如果已经建立了连接,但是客户端突然出现故障了怎么办?

    1. 服务器无法感知客户端是否故障,只不过是这段时间没有客户端的数据而已。
    2. 但有 KeepAlive 机制,这不是 TCP 规范中的,但很多操作系统都实现了此机制。
    3. tcp_keepalive_time:默认 2 小时,空闲时长
    4. tcp_keepalive_intvl:探测包,间隔 75 s,在,空闲时长超时后,进行探测
    5. tcp_keepalive_probes:探测次数,默认 9 次,如果 9 次都没应答,就认为客户端已经遇到故障了。

    Linux 系统默认是不开启的,需要配置。

    cat /proc/sys/net/ipv4/tcp_keepalive_time
    cat /proc/sys/net/ipv4/tcp_keepalive_intvl
    cat /proc/sys/net/ipv4/tcp_keepalive_probes

    /etc/sysctl.conf 的全局配置,修改后,执行:sysctl -p 生效。

    net.ipv4.tcp_keepalive_time=7200
    net.ipv4.tcp_keepalive_intvl=75
    net.ipv4.tcp_keepalive_probes=9

    应用也可以开启,Tomcat,Netty 等。

    如果不开启 KeepAlive,请求完成就断开操作了。

  41. TCP 和 Http 中 Keep-Alive 的关系

    1. HTTP 协议的 Keep-Alive 意图在于连接复用,同一个连接上串行方式传递请求 - 响应数据。

    2. TCP 的 Keep-Alive 机制意图在于存活、心跳,检测连接错误

    3. http 的 Keep-Alive 是在同一个 TCP 连接下,传输多个 http 请求,主要目的是为了连接复用。

    4. TCP 的 Keep-Alive 更纯粹,为了检测对方是否还存活。

    5. 以及 Http 的 Keep-Alive 还有一个超时,超时后,服务器就断开 Keep-Alive DDOS 攻击。

  42. 什么是 HTTP,HTTP 与 HTTPS 的区别

    1. HTTP 是应用层的协议,使用 TCP 协议传输 HTTP 报文。
    2. HTTP 传输的内容是明文,因此数据不安全;因此引入了安全机制,即结合 SSL 形成 HTTPS 协议,这样有了安全机制,传输的数据加密了,这样就保证了数据的安全。以及 SSL 需要向权威机构申请证书,这样就能保证站点的信任。
    3. 以及防止篡改数据,保证数据的完整性。
    • 数据安全性
    • 站点信任
    • 防止篡改数据。
  43. 常用 HTTP 状态码

    1. 1xxx 开头:消息,临时响应,即服务器已经接收,需要客户端进一步处理。
    2. 2xxx 开头:成功,代表服务器已经接收请求。
    3. 3xxx 开头:重定向,重定向在 Location 指定。
    4. 4xxx 开头:客户端错误
    5. 5xxx 开头:服务器错误
    • 101 Switch Protocols,Upgrade 头通知客户端使用新协议,例如切换新版本 2.0、WebSocket
    • 204 No Content,没有内容,例如 OPTIONS
    • 301 Moved Permanently,资源永久移动位置
    • 500 Internal Server Error
    • 502 Bad Gateway
    • 503 Service Unavailable
  44. 什么是对称加密与非对称加密

    • 对称加密:加密速度快,取决于密钥长度;加密 / 解密使用的都是同一个密钥。
    • 非对称加密:加密稍慢,加密使用公开的钥匙。解密使用私有的钥匙。私钥不公开,因此比较安全。
  45. 什么是 HTTP2

    1. http 有几个版本:1.0,1.1, 2.0
    2. 2.0 版本新增:
    • 多路复用:同一连接,可以并发发送多个请求
    • 首部压缩:HPACK 算法对 header 的数据进行压缩。
    • 服务端推送:支持把客户端需要的资源一起推送到客户端。
  46. Session、Cookie 和 Token 的主要区别

    1. Session 保存在服务器
    2. Cookie 保存在客户端
    3. Token 是用户身份的标识,token 可以由:uid(用户身份)+ 时间戳 + sign(由服务器签名,因此解决信任问题)

    session,如果用户访问量很大,session 需要储存,导致服务器压力很大。

  47. Servlet 是线程安全的吗

    Servlet 不是线程安全的。

    tomcat 模型:
    用户发起请求,tomcat 从线程池中取出线程,然后找到请求对应的 Servlet 对象,进行初始化,然后调用 service 方法。

    Servlet 是单例,因此,如果多个线程都调用同一个 Servlet 对象,就可能会导致线程问题。

  48. Servlet 接口中有哪些方法及 Servlet 生命周期探秘

    方法:

    package javax.servlet;
    import java.io.IOException;
    public interface Servlet {
        void init(ServletConfig var1) throws ServletException;
        ServletConfig getServletConfig();
        void service(ServletRequest var1, ServletResponse var2) throws ServletException, IOException;
        String getServletInfo();
        void destroy();
    }

    生命周期:

    1. 容器调用 init 初始化 Servlet 对象。
    2. 请求到达后,执行 service,然后根据请求方法,执行 doGet 或 doPost
    3. 服务器关闭后或项目卸载后,服务器调用 destroy 销毁对象。
  49. 如果客户端禁止 cookie 能实现 session 还能用吗?

    1. session 实现的前提是,客户端有储存 sessionId 的能力;

    2. 客户端如何携带 sessionId。

    3. 客户端禁用 cookie,那 localStorage 和 sessionStorage 可以储存。

    4. 携带方式,可以是 url,头部。因此可以通过 url,或者自定义一个头部字段

# 试题

  1. 网络协议主要要素为语法语义同步

  2. 一座大楼内的一个计算机网络系统,属于 LAN(Local area network)局域网

  3. 随着电信和信息技术的发展,国际上出现了所谓 “三网融合” 的趋势,下列属于三网之一的是:

    • 传统电信网
    • 计算机网
    • 有线电视网
    • 卫星通信网
  4. 通信系统必须具备的三个基本要素是

    • 终端、电缆、计算机
    • 信号发生器、通信线路、信号接收设备
    • 信源、通信媒体、信宿
    • 终端、通信设施、接收设备
  5. 计算机网络通信系统是

    • 电信号传输系统
    • 文字通信系统
    • 信号通信系统
    • 数据通信系统
  6. 常用的传输介质中,带宽最宽、信号传输衰减最小、抗干扰能力最强的一类传输介质是

    • 光纤
    • 双绞线
    • 同轴电缆
    • 无线信道
  7. 在 OSI 七层结构模型中,处于数据链路层与运输层之间的是

    • 物理层
    • 网络层
    • 会话层
    • 表示层
  8. 数据解封装的过程是

    • 段 — 包 — 帧 — 流 — 数据
    • 流 — 帧 — 包 — 段 — 数据
    • 数据 — 包 — 段 — 帧 — 流
    • 数据 — 段 — 包 — 帧 — 流

    信号流 --> 数据流 --> 数据帧 --> IP 包 --> TCP 分组 --> 数据

  9. 完成路径选择功能是在 OSI 模型的

    • 物理层
    • 数据链路层
    • 网络层
    • 运输层
  10. 在 OSI 中,完成整个网络系统内连接工作,为上一层提供整个网络范围内两个终端用户之间数据传输通路工作的是

    • 物理层
    • 数据链路层
    • 网络层
    • 运输层

    注意为上一层提供整个网络范围内两个终端用户之间数据传输通路,题目不是问这个,而是前半段;因此不是运输层。

  11. 在 OSI 中,为实现有效、可靠数据传输,必须对传输操作进行严格的控制和管理,完成这项工作的层次是

    • 物理层
    • 数据链路层
    • 网络层
    • 运输层
  12. T1 载波的数据传输率为

    • 1Mbps
    • 10Mbps
    • 2.048Mbps
    • 1.544Mbps

    人的话音信道在 4Mhz 之内,根据奈奎斯特采样定理按照 2 倍 8MHz 采样,并 128 级量化,即272^7,用 7 个二进制 (7bit) 来表示一个采样(一个语音帧),每秒钟的产生的二进制数据量为 56kb, 计算公式:
    1s7bit8MHz=56Kbps\frac{1s}{7bit * 8MHz} = 56Kbps

    在实际编码中每一个采样中还会加入一个信令位,即 8bit 组成一个通信信道。但通信介质(电话线)的带宽远大于一个信道,所以采用多路复用技术,将 24 个话音信道组成一组,即 T1 信道,最后加入一个帧同步,这样每一帧则变成了 193bit,计算公式:
    8bit24+1bit=193bit8bit * 24 + 1bit = 193bit

    由取样频率 8MHz 可知,取样周期为 125us,则可知 T1 信道的比特率为:
    193bit125us=1.544Mbps\frac{193bit}{125us} = 1.544 Mbps

    T1 载波是专用电话连接、时分多路数字传输设施
    T1 载波的数据速率是 1.544Mbps,
    E1 载波的数据速率是 2.048Mbps,
    E2 载波数据速率为 8.448Mbps,
    E3 载波数据速率为 34.368Mbps,
    E4 载波数据速率为 139.24Mbps,
    E5 载波数据速率为 565.148Mbps。

  13. 若网络形状是由站点和连接站点的链路组成的一个闭合环,则称这种拓扑结构为

    • 星形拓扑
    • 总线拓扑
    • 环形拓扑
    • 树形拓扑
  14. 在计算机网络中,所有的计算机均连接到一条通信传输线路上,在线路两端连有防止信号反射的装置。 这种连接结构被称为

    • 总线结构
    • 环型结构
    • 星型结构
    • 网状结构
  15. 报文交换技术说法不正确的是

    • 报文交换采用的传送方式是 “存储一转发” 方式
    • 报文交换方式中数据传输的数据块其长度不限且可变
    • 报文交换可以把一个报文发送到多个目的地
    • 报文交换方式适用于语音连接或交互式终端到计算机的连接

    C - 可通过广播地址,发送多个目的地

    1. 电路交换:适用于电话语音等交互性强的,但不适合数据通信业务
    2. 报文交换:在节点采用储存转发方式
    3. 分组交换:在节点采用储存转发方式
  16. 市话网在数据传输期间,在源节点与目的节点之间有一条利用中间节点构成的物理连接线路。这种市话网采用____技术

    • 报文交换
    • 电路交换
    • 分组交换
    • 数据交换
  17. 世界上很多国家都相继组建了自己国家的公用数据网,现有的公用数据网大多采用

    • 分组交换方式
    • 报文交换方式
    • 电路交换方式
    • 空分交换方式
  18. 在计算机网络中,一般局域网的数据传输速率要比广域网的数据传输速率

    • 相同
    • 不确定
  19. 电路交换是实现数据交换的一种技术,其特点是

    • 无呼叫损失
    • 不同速率的用户之间可以进行数据交换
    • 信息延时短,且固定不变
    • 可以把一个报文发送到多个目的节点中
  20. 因特网在通信子网内实现数据报操作方式对端系统

    • 只提供数据报服务
    • 只提供虚电路服务
    • 提供数据报和虚电路服务
    • 不提供服务

    虚拟电路:即节点和节点之间的连接,形成的通信通道,就类似电路一样;因此把这个通道形象地称为虚电路。

  21. 以下各项中,不是数据报操作特点的是

    • 每个分组自身携带有足够的信息,它的传送是被单独处理的
    • 在整个传送过程中,不需建立虚电路
    • 使所有分组按顺序到达目的端系统
    • 网络节点要为每个分组做出路由选择
    1. 虚电路是分组技术中的;数据报使用真正的电路信号。
    2. 分组交换,分组不一定按顺序到达目的端系统。
  22. 在 OSI 中,物理层存在四个特性。其中,通信接口所用接线器的形状和尺寸属于

    • 机械特性
    • 电气特性
    • 功能特性
    • 过程特性
  23. 对于 CSMA/CD 而言,为了确保发送站点在传输时能检测到可能存在的冲突,数据帧的传输时延至少要等于信号传播时延的

    • 1 倍
    • 2 倍
    • 4 倍
    • 2.5 倍
  24. 在同一个信道上的同一时刻,能够进行双向数据传送的通信方式是

    • 单工
    • 半双工
    • 全双工
    • 上述三种均不是
  25. 采用全双工通信方式,数据传输的方向性结构为

    • 可以在两个方向上同时传输
    • 出只能在一个方向上传输
    • 可以在两个方向上传输,但不能同时进位
    • 以上均不对
  26. 令牌总线的媒体访问控制方法是由___定义的。

    • IEEE 802.2
    • IEEE 802.3
    • IEEE 802.4
    • IEEE 802.5
  27. 在中继系统中,中继器处于

    • 物理层
    • 数据链路层
    • 网络层
    • 高层

    中继系统,如集线器,更多的是信号中继,不像交换机等,有进行拆包,检测;集线器更多的是电路技术。

  28. 下列只能简单再生信号的设备是

    • 网卡
    • 网桥
    • 中继器
    • 路由器
  29. 互联网主要由一系列的组件和技术构成,其网络协议核心是

    • ISP
    • PPP
    • TCP/IP
    • HTTP
  30. 在数字通信中广泛采用 CRC 循环冗余码的原因是 CRC 可以

    • 检测出一位差错
    • 检测并纠正一位差错
    • 检测出多位突发性差错
    • 检测并纠正多位突发性差错
  31. 在计算机网络通信系统中,一般要求误码率低于

    • 10-4
    • 10-5
    • 10-6
    • 10-7
  32. 在 10 Base T 的以太网中,使用双绞线作为传输介质,最大的网段长度是

    • 2000m
    • 500m
    • 185m
    • 100m
  33. 同轴电缆与双绞线相比,同轴电缆的抗干扰能力

    • 一样
    • 不能确定
  34. IEEE802.3 标准是

    • 逻辑链路控制
    • CSMA/CD 访问方法和物理层规范
    • 令牌总线访问方法和物理层规范
    • 令牌环网访问方法和物理层规范
  35. 局域网具有的几种典型的拓扑结构中,一般不含

    • 星型
    • 环型
    • 总线型
    • 全连接网型
  36. 为采用拨号方式联入 Internet 网络,____是不必要的

    • 电话线
    • 一个 MODEM
    • 一个 Internet 账号
    • 一台打印机
  37. 计算机网络中,分层和协议的集合称为计算机网络的____。目前应用最广泛的是____。

    • 组成结构
    • 参考模型
    • 体系结构
    • 基本功能
    • SNA
    • MAP/TOP
    • TCP/IP
    • X.25
    • ISO/OSI
  38. 在 OSI 的七层参考模型中,工作在第三层以上的网间连接设备是

    • 集线器
    • 网关
    • 网桥
    • 中继器
  39. 从通信协议的角度来看,路由器是在哪个层次上实现网络互联

    • 物理层
    • 链路层
    • 网络层
    • 传输层
  40. Internet 的网络层含有四个重要的协议,分别为

    • IP,ICMP,ARP,UDP
    • TCP,ICMP,UDP,ARP
    • IP,ICMP,ARP,RARP
    • UDP,IP,ICMP,RARP
  41. IP 协议是无连接的,其信息传输方式是

    • 点对点
    • 数据报
    • 广播
    • 虚电路
  42. TCP/IP 体系结构中的 TCP 和 IP 所提供的服务分别为

    • 链路层服务和网络层服务
    • 网络层服务和运输层服务
    • 运输层服务和应用层服务
    • 运输层服务和网络层服务
  43. IP 地址是一个 32 位的二进制,它通常采用点分

    • 二进制数表示
    • 八进制数表示
    • 十进制数表示
    • 十六进制数表示
  44. 在 IP 地址方案中,159.226.181.1 是一个

    • A 类地址
    • B 类地址
    • C 类地址
    • D 类地址
  45. 把网络 202.112.78.0 划分为多个子网(子网掩码是 255.255.255.192),则每个子网中可用的主机地址数是

    • 254
    • 128
    • 124
    • 62
  46. TCP/IP 网络中常用的距离矢量路由协议是

    • ARP
    • ICMP
    • OSPF
    • RIP
  47. 在 TCP/IP 协议簇中,TCP、UDP 协议工作在

    • 应用层
    • 传输层
    • 网络互联层
    • 网络接口层
  48. 在 OSI 网络结构中,HTTP\DHCP 协议工作在

    • 应用层
    • 传输层
    • 网络互联层
    • 网络接口层
  49. 下面协议中,用于 WWW 传输控制的是

    • URL
    • SMTP
    • HTTP
    • HTML
  50. 域名服务器上存放有 Internet 主机的

    • 域名
    • IP 地址
    • 域名和 IP 地址
    • E-mail 地址
  51. 在 Internet 域名体系中,域的下面可以划分子域,各级域名用圆点分开,按照

    • 从左到右越来越小的方式分 4 层排列
    • 从左到右越来越小的方式分多层排列
    • 从右到左越来越小的方式分 4 层排列
    • 从右到左越来越小的方式分多层排列
  52. 在 Internet/Intranet 中,不需要为用户设置帐号和口令的服务是

    • WWW
    • FTP
    • E-mail
    • DNS
  53. 下面协议中,用于电子邮件 Email 传输控制的是

    • SNMP
    • SMTP
    • HTTP
    • HTML
  54. 世界最早投入运行的计算机网络是 ARPANET

  55. 计算机网络的体系结构是一种分层结构

  56. OSI 参考模型采用了 7 层的体系结构

  57. 串行数据通信的方向性结构有三种,即单工半双工全双工

  58. 因特网提供服务所采用的模式是客户端 / 服务器

  59. 按照实际的数据传送技术,交换网络又可分为电路交换网、报文交换网分组交换网

  60. 两种最常使用的多路复用技术是:频分多路复用时分多路复用

  61. 当数据报在物理网络中进行传输时,IP 地址被转换成物理地址。

  62. 用电路交换技术完成的数据传输要经历电路建立数据传输电路拆除过程。

  63. 局域网中所使用的双绞线分成两类,即屏蔽双绞线非屏蔽双绞线

  64. 计算机网络中常用的三种有线媒体是同轴电缆双绞线光纤

  65. 在 IEEE802 局域网体系结构中,数据链路层被细化成 LLC 逻辑链路控制子层 MAC 介质访问控制子层两层。

  66. T1 系统的传输速率为 1.544Mbps,E1 系统的数据传输速率为 2.048Mbps

  67. 曼彻斯特编码是一种同步方式为自同步的编码方案。

  68. 在计算机的通信子网中,其操作方式有两种,它们是面向连接的虚电路和无连接的数据报

  69. 运输层的运输服务有两大类:面向连接的服务和无连接的服务。

  70. TCP 在 IP 的基础上,提供端到端的面向连接的可靠传输。

  71. 子网掩码的作用是判断两台主机是否在同一子网中

  72. 标准的 B 类 IP 地址使用 16 位二进制数表示网络号。

  73. 在 TCP/IP 层次模型的网络层中包括的协议主要有 IPICMPARPRARP

  74. 32 位全为 1 (255.255.255.255) 的 IP 地址叫做有限广播地址,用于本网广播。

  75. 如果路由表发生错误,数据报可能进入循环路径,无休止地在网络中流动。利用 IP 报头中的生存周期 / TTL 可以防止这一情况的发生。

  76. 在 TCP/IP 层次模型中运输层相对应的主要协议有 TCP(传输控制协议) UDP(用户数据报协议)

  77. 到达通信子网中某一部分的分组数量过多,使得该部分乃至整个网络性能下降的现象,称为拥堵现象。

  78. 域名系统 DNS 是一个分布式数据库系统。

  79. WWW 上的每一个网页都有一个独立的地址,这些地址称为统一资源定位器

  80. 在 WWW 中,使用统一资源定位器 URL 来唯一地标识和定位因特网中的资源,它由三部分组成:协议主机地址(域名)文件路径名

  81. 支持在电子邮件中传输汉字信息的协议是 MIME