【面试】计算机网络

计算机网络

1. 分层协议

OSI TCP/IP Protocol PDU Facility
应用层(Application) 应用层 HTTP, TFTP, FTP, NFS, WAIS, SMTP 数据(data) Gateway
表示层(Presentation) Telnet, Rlogin, SNMP, Gopher
会话层(Session) SMTP, DNS
传输层(Transport) 传输层 TCP, UDP 数据段(segment)
网络层(Network) 网络层 IP, ICMP, ARP, RARP, AKP, UUCP 数据包(packet) 路由器
数据链路层(Data Link) 数据链路层 FDDI, Ethernet, Arpanet, PDN, SLIP, PPP 帧(frame) 交换机、网桥
物理层(Physical) IEEE 802.1A, IEEE 802.2 to IEEE 802.11 比特(bit) 中继器、集线器

注:PDU(协议数据单元)

资源子网(上三层)和通信子网(下三层)

2. 数据链路层

从数据链路层开始是因为物理层主要定义物理设备的标准,利用电气或光信号传输比特流。不涉及重要概念,无需详细了解。

3. 网络层

端到端,点到点
数据的可靠性传输是通过数据链路层和网络层的点对点和传输层的端对端保证的。

4. 传输层

1 TCP

面试中常问的关于TCP协议的问题:https://blog.csdn.net/qq_21989927/article/details/109077535

TCP和UDP区别

1)TCP面向连接;UDP无连接

2)TCP保证数据的可靠传输,数据传送无差错,不丢失,无重复,按序到达;UDP不保证可靠交付

3)TCP连接一对一;UDP支持更广泛

4)UDP实时性好,效率高,适用场景:短消息传输,大量客户端,对数据安全性要求不高但实时性要求高

5)TCP面向数据流;UDP面向数据报

TCP如何保证可靠传输

1)校验和

2)序列号和确认应答

3)超时重传(累积确认、快速重传)

4)流量控制(滑动窗口协议)

5)拥塞控制(慢启动、拥塞避免、拥塞发送、快速恢复)

滑动窗口协议和连续ARQ协议

TCP三次握手四次挥手过程
为什么连接的时候是三次握手,关闭的时候却是四次握手
为什么有TIME_WAIT状态,且需要经过2MSL(最大报文段生存时间)
为什么不能用两次握手进行连接

序列号和确认号(概念,作用)

累计确认

接收方使用序号将报文段重新排序,且以正确接收到的流的最长连续前缀进行确认。

TCP的重传机制:超时重传、快速重传

TCP粘包

指发送方发送的若干包数据到达接收方时粘成了一包

SYN攻击

5. 应用层

0. 从输入网址到浏览器显示过程

1)DNS对输入网址进行域名解析

2)建立TCP连接

3)客户端发送HTTP请求,服务端响应请求

4)浏览器解析渲染页面

5)连接结束

1. DNS解析过程

1)浏览器检查域名能否命中自身缓存(可以设置TTL)

2)浏览器检查操作系统缓存中有没有对应的已解析过的结果(hosts)

3)请求本地域名服务器(LDNS)来解析这个域名

4)如果LDNS仍然没有命中,就直接跳到Root Server域名服务器请求解析

5)根域名服务器返回给LDNS一个所查询域的主域名服务器(gTLD Server,国际顶尖域名服务器)地址

6)此时LDNS再发送请求给上一步返回的gTLD

7)接受请求的gTLD查找并返回这个域名对应的Name Server的地址,这个Name Server就是网站注册的域名服务器

8)Name Server根据映射关系表找到目标ip,返回给LDNS

9)LDNS缓存这个域名和对应的ip

10)LDNS把解析的结果返回给用户,用户根据TTL值缓存到本地系统缓存中,域名解析过程至此结束

1. Http

HTTP 是无状态的基于 TCP 面向连接的应用层超文本传输协议。

无状态不代表 HTTP 不能保持 TCP 连接,更不能说明使用的是 UDP 协议(无连接)。

无状态是指协议对于事务处理没有记忆能力,服务器不知道客户端的状态。从另一方面讲,两次打开一个服务器上的同一个网页之间没有任何联系。

HTTP1.1和HTTP 1.0区别

1)缓存策略:HTTP 1.1 中引入更多的缓存头来控制缓存策略

2)带宽和连接优化:引入 range 头域来请求资源的一部分,返回 206 状态码,支持断点续传

3)错误通知管理:新增 24 个错误状态响应码,如 409(Conflict)、410(Gone)

4)Host头处理:1.1 的请求和响应消息都应支持 Host(主机名)头域,且请求消息中如果没有会报一个 400 错误

5)长连接:默认开启 Connection: keep-alive,支持长连接(PersistentConnection)和请求的流水线(Pipelining)处理,在一个TCP连接上可以传送多个 HTTP 请求和响应

HTTP 2.0和HTTP 1.x区别

SPDY 是 Speedy 的昵音,是谷歌基于 TCP 的应用层协议,核心思想是尽量减少 TCP 连接数。
https://www.zhihu.com/question/34074946

HTTP 2.0 可以说是 SPDY 的升级版,支持明文 HTTP 传输(SPDY 轻质使用 HTTPS),消息头压缩算法采用 HPACK,而 SPDY 使用了 DEFLATE 算法.

1)二进制分帧:不同于 HTTP/1.x 基于文本的解析,HTTP/2 会将所有传输的信息分割为更小的消息和帧(frame),并对它们采用二进制格式的编码

2)多路复用:允许同时通过单一的 HTTP/2 连接发起多重的请求和响应消息

3)首部压缩:使用 encoder 来减少需要传输的 header 大小,通讯双方各自缓存一份 header fields 表,既避免了重复 header 的传输,又减小了需要传输的大小

4)服务端推送:是一种在客户端请求之前预先推送数据的机制

2. Https

SecureSocket Layer

1)GET方法与POST方法的区别
2)常见的HTTP相应状态码
3)HTTP与HTTPS的区别

4)HTTPS的SSL过程
5)为什么数据传输是用对称加密
6)HTTPS的SSL建立过程
7)中间人攻击和HTTPS抓包

8)对称加密和非对称加密(是否使用同一个密钥加解密)

3. 子网掩码

https://www.zhihu.com/question/56895036/answer/154192558

子网掩码(subnet mask)用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。

内网中 192.168.1.199 的前三组是网络号,后一组是主机号,子网掩码就是 255.255.255.0 。

首先要说明的是:不是某个 IP 的网络号和主机号决定子网掩码是什么,而是子网掩码决定了某个 IP 地址的网络号与主机号是什么,IP 地址是要搭配子网掩码使用的。

地址:192.168.1.199 ‐> 11000000.10101000.00000001.11000111
掩码:255.255.255.0 ‐> 11111111.11111111.11111111.00000000
(掩码需要连续的 1 后面接连续的 0)

还可以写成:192.168.1.199 /24

おすすめ

転載: blog.csdn.net/adminpd/article/details/111008368