1.osi模型与五层架构模型

常见网络知识总结

2.五层架构模型中各层对应的网络协议

协议
应用层 HTTP,SMTP
传输层 TCP, UPD
网络层 IP, ICMP
数据链路层 PPP
物理层 IEEE802.3

3.TCP三次握手和四次握手

三次握手(建立连接)

TCP是一种面向连接的协议,在发送数据之前,双方必须建立一条可信任的连接。
常见网络知识总结

  1. 第一次:Client发送一个包含标志位SYN=1, Seq=随机数J的数据包给Server。Client处于SYN_SENT状态。
  2. 第二次:Server检查SYN=1之后知道Client想建立连接,发送一个包含SYN=1, ACK=1, ACKnum=J+1,Seq=随机数K的数据包给Client。Server处于SYN_RCVD状态。
  3. 第三次:Client检查SYN=1,ACK=1,ACKnum=J+1之后,发送ACKnum=K+1给Server,Server检查ACKnum=k+1之后连接建立。Client和Server均处于established的状态。
    常见网络知识总结

ACK: 确认连接成功标志位,ACKnum确认数据以及发送完成标志位。

四次握手(断开连接)

TCP是全双工通信,双方可以互相发送数据。所以需要两次确认。
常见网络知识总结

  1. 第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。
  2. 第二次挥手:Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),Server进入CLOSE_WAIT状态。此时TCP链接处于半关闭状态,即客户端已经没有要发送的数据了,但服务端若发送数据,则客户端仍要接收。
  3. 第三次挥手:Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态。
  4. 第四次挥手:Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,Server进入CLOSED状态,完成四次挥手。

3. 三次握手可以换成两次吗

不行,三次握手可以防止向已失效的连接返送请求。
网络知识点

4. 为什么断开要四次握手

TCP 协议是一种面向连接的、可靠的、基于字节流的运输层通信协议。TCP 是全双工模式,这就意味着,当 A 向 B 发出 FIN 报文段时,只是表示 A 已经没有数据要发送了,而此时 A 还是能够接受到来自 B 发出的数据;B 向 A 发出 ACK 报文段也只是告诉 A ,它自己知道 A 没有数据要发了,但 B 还是能够向 A 发送数据。

5.浏览器中点击“www.baidu.com"之后发生什么

  1. 由域名→IP地址 寻找IP地址的过程依次经过了浏览器缓存、系统缓存、hosts文件、路由器缓存、 递归搜索根域名服务器。(DNS域名解析)
  2. 建立TCP/IP连接(三次握手具体过程)
  3. 由浏览器发送一个HTTP请求
  4. 经过路由器的转发,通过服务器的防火墙,该HTTP请求到达了服务器
  5. 服务器处理该HTTP请求,返回一个HTML文件
  6. 浏览器解析该HTML文件,并且显示在浏览器端
  7. 断开连接四次握手