计算机网络题集
2021-09-30 本文已影响0人
BTPJ
一、网络模型
-
OSI七层模型
物理层 —> 数据链路层 —> 网络层(IP)—> 传输层(TCP、UDP)—> 会话层(DNS)—> 表示层 —> 应用层(HTTP) -
TCP/IP四层模型
网络接口层(物理层+数据链路层)—> 网络层(IP)—> 传输层(TCP、UDP)—> 应用层(会话层 + 表示层 + 应用层) - 说明: OSI七层模型是完整的完善的宏观理论模型、TCP/IP四层模型则是侧重于互联网通信核心的分层
二、TCP与UDP
TCP:传输控制协议 UDP:用户数据报协议
- TCP是面向连接的且只支持一对一连接通信,UDP是无连接的可一对多
- TCP使用了流量控制和拥塞控制保证数据可靠性,而UDP则没有,可能会存在丢包和顺序错乱的情况
- TCP是面向字节流的,常用于传输大量数据(文件传输),UDP是面向报文的,常用于传输少量数据(IP电话,语音,直播等)
- UDP首部开销小(8字节),TCP首部开销大(20~60字节)
三、HTTP与HTTPS
- HTTPS采用加密传输协议而HTTP采用明文传输协议故HTTPS更加安全
- HTTPS加入了SSL层需要CA证书以确认对方的身份
- HTTPS规范端口443,HTTP规范端口80
四、TCP的三次握手/四次挥手
TCP建立连接三次握手,断开连接四次握手
-
三次握手
- 客户端 - 发送SYN包(syn=j) - 服务端
- 服务端 - 收到SYN包,确认客户的SYN(syn=j+1)同时发送ACK包(ack=k) - 客户端
-
客户端 - 收到服务器的SYN+ACK包,并发送确认包ACK(ack=k+1) - 服务端
image.png
-
四次握手
- 客户端-客户端发送一个 FIN=1 (代表断开连接)准备关闭连接
- 服务器-收到这个FIN,会发送 ACK 报文,且把客户端的序列号值 + 1 作为 ACK 报文的序列号值,表明已经收到客户端的报文了,有可能服务端数据没处理完会继续处理数据。
- 服务端处理完数据后准备断开连接,和客户端的第一次挥手一样,发给 FIN 报文。
- 客户端-收到 FIN 之后,一样发送一个 ACK 报文作为应答,且把服务端的序列号值 + 1 作为自己 ACK 报文的序列号值,客户端会经过一段时间(2MSL报文最大生存时间)自动进入关闭状态;服务端收到 ACK 报文之后,就关闭连接了
-
为啥关闭连接需要4次
- 断开和连接阶段的区别就在于,这里的B的确认消息和断开消息不能融合。因为A要断开的时候,B可能还有数据要处理要发送,所以要等正常业务处理完,在发送断开消息。
五、对称加密和非对称加密
- 对称加密:加密解密算法不同,但是密钥相同。比如DES,AES算法。
- 非对称加密:加密解密算法相同,但是密钥不同。私钥自己保存,公钥提供给对方。比如RSA,DSA算法。