写点什么

不是吧阿 sir,你这计算机网络也太熟了,震惊面试官一整年

用户头像
极客good
关注
发布于: 刚刚

为什么会 TIME-WAIT 过多?解决方法是怎样的?


? 可能原因: 高并发短连接的 TCP 服务器上,当服务器处理完请求后立刻按照主动正常关闭连接


? **解决:**负载均衡服务器;Web 服务器首先关闭来自负载均衡服务器的连接

[](

)8、TCP、UDP、IP、以太网报文格式以及重要字段,报文从一端到另一端传递的过程。


? TCP 报文格式:


[白嫖资料](


)


?



? 源端口号和目的端口号:


? 用于寻找发端和收端应用进程。这两个值加上 ip 首部源端 ip 地址和目的端 ip 地址唯一确定一个 tcp 连接。


? 序号字段:


? 序号用来标识从 T C P 发端向 T C P 收端发送的数据字节流,它表示在这个报文段中的的第一个数据字节。如果将字节流看作在两个应用程序间的单向流动,则 T C P 用序号对每个字节进行计数。序号是 32 bit 的无符号数,序号到达 2^32-1 后又从 0 开始。


当建立一个新的连接时,SYN 标志变 1。序号字段包含由这个主机选择的该连接的初始序号 ISN(Initial Sequence Number)。该主机要发送数据的第一个字节序号为这个 ISN 加 1,因为 SYN 标志消耗了一个序号


? 确认序号:


[白嫖资料](


)


? 既然每个传输的字节都被计数,确认序号包含发送确认的一端所期望收到的下一个序号。因此,确认序号应当是上次已成功收到数据字节序号加 1。只有 ACK 标志为 1 时确认序号字段才有效。发送 ACK 无需任何代价,因为 32 bit 的确认序号字段和 A C K 标志一样,总是 T C P 首部的一部分。因此,我们看到一旦一个连接建立起来,这个字段总是被设置, ACK 标志也总是被设置为 1。TCP 为应用层提供全双工服务。这意味数据能在两个方向上独立地进行传输。因此,连接的每一端必须保持每个方向上的传输数据序号。


? 首都长度:


? 首部长度给出首部中 32 bit 字的数目。需要这个值是因为任选字段的长度是可变的。这个字段占 4 bit,因此 T C P 最多有 6 0 字节的首部。然而,没有任选字段,正常的长度是 2 0 字节。


**? 标志字段:**在 T C P 首部中有 6 个标志比特。它们中的多个可同时被设置为 1.   URG 紧急指针(u rgent pointer)有效   ACK 确认序号有效。   PSH 接收方应该尽快将这个报文段交给应用层。   RST 重建连接。   SYN 同步序号用来发起一个连接。这个标志和下一个标志将在第 1 8 章介绍。   FIN 发端完成发送任务。


? 窗口大小:


? T C P 的流量控制由连接的每一端通过声明的窗口大小来提供。窗口大小为字节数,起始于确认序号字段指明的值,这个值是接收端期望接收的字节。窗口大小是一个 16 bit 字段,因而窗口大小最大为 65535 字节。


? 检验和:


? 检验和覆盖了整个的 T C P 报文段:T C P 首部和 T C P 数据。这是一个强制性的字段,一定是由发端计算和存储,并由收端进行验证。


? 紧急指针:


? 只有当 URG 标志置 1 时紧急指针才有效。紧急指针是一个正的偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序号。 T C P 的紧急方式是发送端向另一端发送紧急数据的一种方式。


? 选项:


? 最常见的可选字段是最长报文大小,又称为 MSS (Maximum Segment Size)。每个连接方通常都在通信的第一个报文段(为建立连接而设置 S Y N 标志的那个段)中指明这个选项。它指明本端所能接收的最大长度的报文段。


? UDP 报文格式:


?



[白嫖资料](


)


? 端口号:


? 用来表示发送和接受进程。由于 I P 层已经把 I P 数据报分配给 T C P 或 U D P(根据 I P 首部中协议字段值),因此 T C P 端口号由 T C P 来查看,而 U D P 端口号由 UDP 来查看。T C P 端口号与 UDP 端口号是相互独立的。


? 长度:


? UDP 长度字段指的是 UDP 首部和 UDP 数据的字节长度。该字段的最小值为 8 字节(发送一份 0 字节的 UDP 数据报是 O K)。


? 检验和:


? UDP 检验和是一个端到端的检验和。它由发送端计算,然后由接收端验证。其目的是为了发现 UDP 首部和数据在发送端到接收端之间发生的任何改动。


? **IP 报文格式:**普通的 IP 首部长为 20 个字节,除非含有可选项字段。


?



[白嫖资料](


)


? 4 位版本:


? 目前协议版本号是 4,因此 IP 有时也称作 IPV4.


? 4 位首部长度:


? 首部长度指的是首部占 32bit 字的数目,包括任何选项。由于它是一个 4 比特字段,因此首部长度最长为 60 个字节。


? 服务类型(TOS):


? 服务类型字段包括一个 3bit 的优先权字段(现在已经被忽略),4bit 的 TOS 子字段和 1bit 未用位必须置 0。4bit 的 TOS 分别代表:最小时延,最大吞吐量,最高可靠性和最小费用。4bit 中只能置其中 1 比特。如果所有 4bit 均为 0,那么就意味着是一般服务。


? 总长度:


? 总长度字段是指整个 IP 数据报的长度,以字节为单位。利用首部长度和总长度字段,就可以知道 IP 数据报中数据内容的起始位置和长度。由于该字段长 16bit,所以 IP 数据报最长可达 65535 字节。当数据报被分片时,该字段的值也随着变化。


? 标识字段:


? 标识字段唯一地标识主机发送的每一份数据报。通常每发送一份报文它的值就会加 1。


? 生存时间:


? TTL(time-to-live)生存时间字段设置了数据报可以经过的最多路由器数。它指定了数据报的生存时间。TTL 的初始值由源主机设置(通常为 3 2 或 6 4),一旦经过一个处理它的路由器,它的值就减去 1。当该字段的值为 0 时,数据报就被丢弃,并发送 ICMP 报文通知源主机。


? 首部检验和:


? 首部检验和字段是根据 I P 首部计算的检验和码。它不对首部后面的数据进行计算。 ICMP、IGMP、UDP 和 TCP 在它们各自的首部中均含有同时覆盖首部和数据检验和码。


? 以太网报文格式:



? 目的地址和源地址:


[白嫖资料](


)


? 是指网卡的硬件地址(也叫 MAC 地址),长度是 48 位,是在网卡出厂时固化的。


? 数据:


? 以太网帧中的数据长度规定最小 46 字节,最大 1500 字节,ARP 和 RARP 数据包的长度不够 46 字节,要在后面补填充位。最大值 1500 称为以太网的最大传输单元(MTU),不同的网络类型有不同的 MTU,如果一个数据包从以太网路由到拨号链路上,数据包度大于拨号链路的 MTU 了,则需要对数据包进行分片 fragmentation)。ifconfig 命令的输出中也有“MTU:1500”。注意,MTU 个概念指数据帧中有效载荷的最大长度,不包括帧首部的长度。

[](

)9、浏览器输入 URL 并回车的过程以及相关协议,DNS 查询过程。


? **过程:**DNS 解析、TCP 连接、发送 HTTP 请求、服务器处理请求并返回 HTTP 报文、浏览器渲染、结束


| 过程 | 使用的协议 |


| --- | --- |


| 1、浏览器查找域名 DNS 的 IP 地址 DNS 查找过程(浏览器缓存、路由器缓存、DNS 缓存) | DNS:获取域名对应的 ip |


| 2、根据 ip 建立 TCP 连接 | TCP:与服务器建立连接 |


| 3、浏览器向服务器发送 HTTP 请求 | HTTP:发送请求 |


| 4、服务器响应 HTTP 响应 | HTTP |


| 5、浏览器进行渲染 | |

[](

)10、HTTP1.0、1.1、2.0 之间的区别


? **HTTP1.0:**默认使用 Connection:cloose,浏览器每次请求都需要与服务器建立一个 TCP 连接,服务器处理完成后立即断开 TCP 连接(无连接),服务器不跟踪每个客户端也不记录过去的请求(无状态)。


? **HTTP1.1:**默认使用 Connection:keep-alive(长连接),避免了连接建立和释放的开销;通过 Content-Length 字段来判断当前请求的数据是否已经全部接受。不允许同时存在两个并行的响应。


? **HTTP2.0:**引入二进制数据帧和流的概念,其中帧对数据进行顺序标识;因为有了序列,服务器可以并行的传输数据。


? http1.0 和 http1.1 的主要区别如下:? 1、缓存处理:1.1 添加更多的缓存控制策略(如:Entity tag,If-Match)? 2、网络连接的优化:1.1 支持断点续传? 3、错误状态码的增多:1.1 新增了 24 个错误状态响应码,丰富的错误码更加明确各个状态? 4、Host 头处理:支持 Host 头域,不在以 IP 为请求方标志? 5、长连接:减少了建立和关闭连接的消耗和延迟。


? http1.1 和 http2.0 的主要区别:? 1、新的传输格式:2.0 使用二进制格式,1.0 依然使用基于文本格式? 2、多路复用:连接共享,不同的 request 可以使用同一个连接传输(最后根据每个 request 上的 id 号组合成 正常的请求)? 3、header 压缩:由于 1.X 中 header 带有大量的信息,并且得重复传输,2.0 使用 encoder 来减少需要传输的 hearder 大小? 4、服务端推送:同 google 的 SPDUY(1.0 的一种升级)一样

[](

)11、HTTP 与 HTTPS 之间的区别,HTTPS 链接建立的过程,了解对称加密算法和非对称加密算法不?


? HTTP 与 HTTPS 之间的区别:


| HTTP | HTTPS |


| --- | --- |


| 默认端口 80 | HTTPS 默认使用端口 443 |


| 明文传输、数据未加密、安全性差 | 传输过程 ssl 加密、安全性较好 |


| 响应速度快、消耗资源少 | 响应速度较慢、消耗资源多、需要用到 CA 证书 |


? HTTPS 链接建立的过程:


? 1.首先客户端先给服务器发送一个请求


? 2.服务器发送一个 SSL 证书给客户端,内容包括:证书的发布机构、有效期、所有者、签名以及公钥


? 3.客户端对发来的公钥进行真伪校验,校验为真则使用公钥对对称加密算法以及对称密钥进行加密


? 4.服务器端使用私钥进行解密并使用对称密钥加密确认信息发送给客户端


? 5.随后客户端和服务端就使用对称密钥进行信息传输


? 对称加密算法:


? 双方持有相同的密钥,且加密速度快,典型对称加密算法:DES、AES[白嫖资料](


)


? 非对称加密算法:


? 密钥成对出现(私钥、公钥),私钥只有自己知道,不在网络中传输;而公钥可以公开。相比对称加密速度较慢,典型的非对称加密算法有:RSA、DSA

[](

)12、HTTP 请求有哪些。get 和 Post 区别。


HTTP 请求:


| 方法 | 描述 |


| --- | --- |


| GET | 向特定资源发送请求,查询数据,并返回实体 |


| POST | 向指定资源提交数据进行处理请求,可能会导致新的资源建立、已有资源修改 |


| PUT | 向服务器上传新的内容 |


| HEAD | 类似 GET 请求,返回的响应中没有具体的内容,用于获取报头 |


| DELETE | 请求服务器删除指定标识的资源 |


| OPTIO


【一线大厂Java面试题解析+核心总结学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 免费领取
复制代码


NS | 可以用来向服务器发送请求来测试服务器的功能性 |


| TRACE | 回显服务器收到的请求,用于测试或诊断 |


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


get 和 Post 区别:


| | GET | POST |


| --- | --- | --- |


| 可见性 | 数据在 URL 中对所有人可见 | 数据不会显示在 URL 中 |


| 安全性 | 与 post 相比,get 的安全性较差,因为所发送的数据是 URL 的一部分 | 安全,因为参数不会被保存在浏览器历史或 web 服务器日志中 |


| 数据长度 | 受限制,最长 2kb | 无限制 |


| 编码类型 | application/x-www-form-urlencoded | multipart/form-data |


| 缓存 | 能被缓存 | 不能被缓存 |

[](

)13、HTTP 常见响应状态码,从 1xx 到 5xx


? 100:Continue — 继续。客户端应继续其请求。


? 200:OK — 请求成功。一般用于 GET 与 POST 请求。


? 301:Moved Permanently — 永久重定向。


? 302:Found — 暂时重定向。


? 400:Bad Request — 客户端请求的语法错误,服务器无法理解。


? 403:Forbideen — 服务器理解请求客户端的请求,但是拒绝执行此请求。


? 404:Not Found — 服务器无法根据客户端的请求找到资源(网页)。


? 500:Internal Server Error — 服务器内部错误,无法完成请求。


? 502:Bad Gateway — 作为网关或者代理服务器尝试执行请求时,从远程服务器接收到了无效的响应。

[](

)14、重定向和转发区别


? 重定向:redirect:

用户头像

极客good

关注

还未添加个人签名 2021.03.18 加入

还未添加个人简介

评论

发布
暂无评论
不是吧阿sir,你这计算机网络也太熟了,震惊面试官一整年