计算机网络修炼之道|青训营

44 阅读8分钟

计算机网络

计算机网络的核心前言涉及到osi参考模型、网络协议、数据通信、网络安全等方面。osi参考模型是一种将网络分为七层的抽象模型,分别为应用层、传输层、网络层、数据链路层、物理层、数据编码层和物理媒体层。网络协议是指网络中设备之间相互协调通信的规则,常见的网络协议有tcp/IP、udp/IP、HTTP等。数据通信是指计算机网络中数据的传输过程,其中包括数据传输速率、误码率、信噪比等参数。网络安全是指网络中防止数据泄露、保护网络设备安全的技术,常见的网络安全技术有防火墙、入侵检测、虚拟专用网络等。

TCP/UDP

  • TCP/IP即传输控制协议,是面向连接的协议,发送数据前要先建立连接,TCP提供可靠的服务,也就是说,通过TCP连接传输的数据不会丢失,没有重复,并且按顺序到达。(类似于打电话)
  • UDP它是属于TCP/IP协议族中的一种。是无连接的协议,发送数据前不需要建立连接,是没有可靠性的协议。因为不需要建立连接所以可以在在网络上以任何可能的路径传输,因此能否到达目的地,到达目的地的时间以及内容的正确性都是不能被保证的。(类似于发微信)

TCP三次握手四次挥手

三次握手:

  1. 第一次握手:客户端向服务器发送请求,请求建立数据连接。
  2. 第二次握手:服务器收到请求后,向客户端发送确认信息,表示服务器已经收到请求并同意建立数据连接。
  3. 第三次握手:客户端收到确认信息后,再向服务器发送确认信息,表示客户端已经收到确认信息,数据连接建立成功。

四次挥手:

  1. 第一次挥手:客户端向服务器发送请求,请求断开数据连接。
  2. 第二次挥手:服务器收到请求后,向客户端发送确认信息,表示服务器已经收到请求并同意断开数据连接。
  3. 第三次挥手:客户端收到确认信息后,再向服务器发送确认信息,表示客户端已经收到确认信息,数据连接断开成功。
  4. 第四次挥手:服务器收到确认信息后,再向客户端发送确认信息,表示服务器已经收到确认信息,数据连接断开成功。

七层网络

  1. 物理层:主要负责传输数据的物理基础,如电缆、无线等。
  2. 数据链路层:负责在物理层的传输的基础上,建立通信链接,保证数据的正确传输(以太网、蓝牙、WIFI)。
  3. 网络层:负责实现数据的路由和传输,从而实现网络的连通性(IP、ICMP、ARP、RIP、OSPF 等)。
  4. 传输层:负责确保数据的可靠传输,如重传、检测丢包等(TCP、UDP 等)。
  5. 会话层:负责管理会话的建立、维护和终止。
  6. 表示层:负责处理数据的格式,以及对数据进行编码和解码。
  7. 应用层:负责实现应用程序的通信(HTTP、FTP、SMTP、DNS)。

HTTP:请求-响应通信协议

请求报文格式:请求行(url、端口、请求方式、HTTP版本)、请求头(编码、服务器地址)、请求体

响应报文格式:状态行、响应头部、响应体

HTTPS:非对称加密的采用SSL/TLS 协议的请求响应协议

WebSocket:双向通信协议,例如动态数据,如实时状态、聊天消息

IPV4/IPV6:32位/64位,并在数据包格式、协议特性、安全性方面做了改进

输入URL到渲染页面的过程:

  • DNS域名解析ip地址、建立TCP连接、三次握手四次挥手、HTTP请求和响应、解析HTML及其他资源、渲染页面

状态码

滑动窗口协议

滑动窗口协议是一种用于在不可靠的网络上传输数据的协议。发送方将数据分成多个部分,并分配序号,接收方按照序号接收数据,并发送确认信息给发送方,以确保数据的正确传输。发送方会根据接收到的确认信息进行调整,以提高传输效率。滑动窗口协议的窗口大小是一个关键参数,它限制了发送方和接收方未确认数据的数量。

对称加密和非对称加密SSL/TLS协议

HTTPS使用了非对称加密算法和对称加密算法相结合的方式来实现数据加密。其中,非对称加密算法用于在客户端和服务器之间进行密钥交换,而对称加密算法则用于在数据传输过程中对数据进行加密和解密。

对称加密算法使用相同的密钥对数据进行加密和解密,因此密钥需要在客户端和服务器之间共享。这种方式的优点是加密和解密速度快,但缺点是密钥容易被窃取,从而导致数据泄露(AES)。

非对称加密算法则使用一对密钥,分别为公钥和私钥。公钥可以公开,任何人都可以使用它对数据进行加密,但只有持有私钥的人才能解密数据。这种方式的优点是密钥不需要共享,因此更安全,但缺点是加密和解密速度较慢(RSA)。

在HTTPS中,非对称加密算法用于在客户端和服务器之间进行密钥交换,以确保传输的密钥不被窃取。然后,使用对称加密算法对数据进行加密和解密,以保证数据传输的安全性和效率。

HTTP截获报文

  1. ****代理服务器(Proxy Server)截获:代理服务器是客户端和目标服务器之间的中介,它可以截获客户端发送的HTTP请求和目标服务器返回的HTTP响应。代理服务器可以在不改变请求的情况下,记录请求和响应的内容。
  2. ****网络分析工具(Network Sniffer)截获:网络分析工具可以在网络上截获所有通过该工具所在的网络接口的数据包,包括HTTP请求和响应。网络分析工具可以根据协议类型过滤HTTP请求和响应,以便分析和记录。
  3. ****浏览器插件(Browser Extension)截获:浏览器插件可以截获浏览器发送的HTTP请求和接收的HTTP响应。例如,Chrome浏览器的开发者工具可以截获浏览器发送的HTTP请求和接收的HTTP响应,并提供详细的请求和响应报文的分析和调试功能。

HTTP的Header

  1. Accept:指定客户端可接受的MIME类型
  2. Accept-Encoding:指定客户端可接受的编码类型
  3. Authorization:包含用于身份验证的凭证,通常是用户名和密码的Base64编码
  4. Cache-Control:指定缓存机制
  5. Content-Length:指定请求或响应正文的长度
  6. Content-Type:指定请求或响应正文的MIME类型
  7. Cookie:包含客户端的Cookie信息
  8. Host:指定请求的主机名和端口号
  9. If-Modified-Since:指定上次修改时间,用于条件GET请求
  10. User-Agent:包含客户端的用户代理信息

TCP标志位

  1. ****SYN(Synchronize) :SYN标志位被设置为1时,表示发送方请求建立连接。在三次握手中,客户端向服务器发送的第一个报文中,SYN标志位被设置为1,表示客户端请求建立连接。
  2. ****ACK(Acknowledgement) :ACK标志位被设置为1时,表示接收方已经收到了发送方的数据。在三次握手和四次挥手中,ACK标志位用于确认收到对方的报文。
  3. ****FIN(Finish) :FIN标志位被设置为1时,表示发送方要关闭连接。在四次挥手中,发送方向接收方发送FIN报文,表示发送方已经没有数据要发送了。

TIME_WAIT状态

主动关闭方在收到被动关闭方的FIN包后并返回ACK后,会进入TIME_WAIT状态,TIME_WAIT状态又称2MSL状态,每个TCP连接都必须有一个最大报文段生存时间MSL,在网络传输中超过这个时间的报文段将被丢弃。当TCP连接发起一个主动关闭,并发出最后一个ACK时,必须在TIME_WAIT状态停留两倍MSL时间,在2MSL等待期间,定义这个连接的插口(客户端IP地址和端口号,服务器IP地址和端口号的四元组)将不能再被使用。2MSL状态存在有两个理由:

1.允许老的重复报文分组在网络中消逝。

2.保证TCP全双工连接的正确关闭。