• 忘掉天地
  • 仿佛也想不起自己
bingliaolongBingliaolong  2023-11-21 17:34 Aet 隐藏边栏 |   抢沙发  22 
文章评分 2 次,平均分 3.0

DNS解析

概述

  1. DNS(域名系统)解析是将域名(如 www.example.com)转换为对应的 IP 地址(如 93.184.216.34)的过程
  2. 这一过程对于在互联网上定位和访问网站或其他网络资源至关重要

概念

  1. 域名
    1. 用于定位服务器的易于记忆的地址,例如 google.com
  2. IP
    1. 每个设备的唯一地址,如 192.168.1.1
  3. DNS服务器
    1. 负责将域名解析为 IP 地址的服务器

解析

  1. 用户请求
    1. 用户在浏览器输入一个域名或通过应用程序发起网络请求
  2. 本地dns缓存查询
    1. 操作系统首先检查本地 DNS 缓存(如果存在),看是否有该域名的解析记录
    2. 如果有,直接使用该 IP 地址完成请求
  3. dns服务器查询
    1. 如果本地缓存没有找到记录,操作系统会向配置的 DNS 服务器发送查询请求
    2. 这通常是 ISP(互联网服务提供商)的 DNS 服务器,或者是公共 DNS 服务,如 Google8.8.8.8
  4. 递归和迭代查询
    1. DNS 服务器首先检查自己的缓存
    2. 如果没有缓存记录,DNS 服务器执行递归查询(向更高级别的 DNS 服务器查询),或者返回一个更高级别的 DNS 服务器地址让客户端进行迭代查询
  5. dns服务器查询
    1. 如果需要,查询从根 DNS 服务器开始,这些服务器知道如何找到顶级域名(如 .com.net)的 DNS 服务器
  6. 顶级域名tld服务器查询
    1. DNS 服务器将请求重定向到负责该顶级域名的 TLD 服务器
  7. 权威dns服务器查询
    1. TLD 服务器进一步重定向到该域名的权威 DNS 服务器,这是该域名的最终解析服务器
  8. 获取ip地址
    1. 权威 DNS 服务器回应请求的 IP 地址
  9. 返回结果至客户端
    1. IP 地址沿着查询链路返回给最初请求的客户端
  10. 缓存结果
    1. 客户端和/或本地 DNS 服务器缓存 DNS 查询结果以加速未来的访问

注意

  1. 缓存
    1. 为了减少 DNS 查询的次数,提高解析速度,DNS 查询结果通常会在不同级别(操作系统、浏览器、路由器、DNS 服务器等)被缓存一段时间
  2. 安全
    1. DNS 解析可能受到各种攻击,如 DNS 缓存投毒,因此出现了安全增强的 DNS,如 DNSSEC
  3. 分布式和冗余
    1. 为了提高可靠性和速度,DNS 系统是高度分布式的,有多个备份和冗余机制

TCP/IP协议

概述

  1. TCP/IP(传输控制协议/互联网协议)是一套互联网通信协议的集合,它定义了在网络中的设备如何进行数据传输
  2. TCP/IP 协议栈通常被描述为一个分层模型,每层执行特定的功能,协同工作以实现数据在网络中的传输

四层模型

  1. 应用层
    1. 位于 TCP/IP 协议栈的最顶层
    2. 包括了各种应用程序协议,如 HTTP(网页)、SMTP(邮件)、FTP(文件传输)等
    3. 应用层协议负责处理特定类型的网络数据交换
  2. 传输层
    1. 负责在网络中的两个点之间提供数据传输
    2. 主要的协议有 TCP(传输控制协议)和 UDP(用户数据报协议)
  3. 网络层
    1. 处理数据包在网络中的活动,如路由选择和数据包转发
    2. 这一层的核心是 IP(互联网协议),它定义了数据包的格式和地址系统(如 IPv4 IPv6 地址)
    3. IP 协议负责将数据包从源主机路由到目标主机
  4. 链路层
    1. 链路层是协议栈的最底层
    2. 包括用于实际网络连接的物理和数据链路协议,如以太网、Wi-Fi
    3. 负责在物理网络媒介上发送和接收数据帧

HTTP/HTTPS协议

概述

  1. HTTP(超文本传输协议)和 HTTPSHTTP 安全)是互联网上用于数据传输的两种主要协议
  2. 它们在网络通信中扮演着核心角色,尤其是在 Web 浏览和数据交换方面

HTTP

  1. 是一个用于传输超文本(如 HTML 文档)的应用层协议
  2. 它基于请求-响应模式,在客户端(通常是 Web 浏览器)和服务器之间传输数据
    1. 客户端发送一个 HTTP 请求到服务器,请求可以是 GET(请求数据)、POST(提交数据)、PUT(更新数据)等
    2. 服务器处理请求并返回一个 HTTP 响应,其中包含状态码(如 200 OK404 Not Found)和请求的数据(如果有)
  3. HTTP 是无状态的,意味着每个请求都是独立的,服务器不会保存请求之间的状态
  4. HTTP 通常使用 TCP 端口 80

HTTPS

  1. HTTPS HTTP 的安全版本,它在 HTTP TCP 层之间加入了 SSL/TLS 协议,为数据传输提供了加密
    1. HTTPS 的目的是保证数据传输的安全性和完整性,防止数据在传输过程中被窃听或篡改
  2. HTTPS 连接建立时,客户端和服务器之间会进行一系列握手操作,协商加密算法和交换密钥
    1. 此后传输的数据都会被加密,保证通信的私密性
  3. HTTPS 使用证书来验证服务器的身份,防止“中间人攻击”
    1. 这些证书通常由第三方机构(证书颁发机构,CA)签发
  4. HTTPS 通常使用 TCP 端口 443

对比

  1. HTTPS 提供了比 HTTP 更高的安全性,主要通过加密和认证实现
  2. 加密和解密过程使得 HTTPS 在性能上稍微有一些开销,尽管现代技术已经大幅减少了这种影响

请求响应

  1. dns解析
    1. 浏览器首先将 URL 中的域名(如 www.example.com)解析为 IP 地址。这通常通过查询 DNS(域名系统)来完成
  2. tcp连接
    1. 一旦获取到服务器的 IP 地址,浏览器会在端口 80HTTP 默认端口)上与服务器建立 TCP 连接
    2. TCP 连接的建立包括一个称为“三次握手”的过程,确保稳定的双向通信
  3. 发送http请求
    1. 浏览器构造一个 HTTP 请求消息
      这个消息包括请求行(如 GET /index.html HTTP/1.1)、请求头(如 Host: www.example.comUser-Agent: Mozilla/5.0)和请求体(对于某些请求类型如 POST
    2. 浏览器通过建立的 TCP 连接将请求消息发送到服务器
  4. 服务器处理请求
    1. 服务器接收 HTTP 请求并解析请求行和头部,以确定所请求的资源和行为
    2. 服务器根据请求处理相应的动作,如获取静态文件、查询数据库、运行服务器端脚本等
    3. 服务器构造一个 HTTP 响应消息
      这个消息包含状态行(如 HTTP/1.1 200 OK)、响应头(如 Content-Type: text/html)和响应体(实际的资源内容)
  5. 发送http响应
    1. 服务器通过同一个 TCP 连接将响应消息发送回客户端(浏览器)
  6. 客户端处理响应
    1. 浏览器接收服务器的响应消息,并根据状态码判断请求是否成功
    2. 对于成功的请求,浏览器通常会解析响应体的内容,并显示在用户界面上
      例如,如果响应是一个 HTML 页面,浏览器会解析并渲染它
    3. 除非 HTTP 请求头中指定了 Connection: keep-alive,否则在交换完请求和响应之后,TCP 连接会被关闭
  7. 缓存
    1. 根据响应头中的缓存指令,浏览器可能会缓存某些资源,以提高后续请求的效率

https加密

  1. HTTPSHTTP Secure)的请求过程在总体上与 HTTP 非常相似
    1. 主要的区别在于数据传输过程中加入了加密和解密的步骤。这个过程提供了更高的数据安全性,保护了数据传输过程中的隐私和完整性
  2. TCP 连接建立(即三次握手完成)之后,如果是 HTTPS 连接,则会进行 TLS 握手
    TLS 握手是一个用于安全通信的协议握手过程,包括:

    1. 客户端和服务器协商
      包括版本信息、选择加密套件、交换随机数等
    2. 服务器身份验证
      服务器发送其 SSL 证书给客户端。客户端验证证书的有效性
    3. 密钥交换
      客户端可能会发送预主密钥(pre-master secret),它经过服务器的公钥加密
    4. 握手结束
      双方基于共享的秘密计算出会话密钥,并开始加密通信

相关概念

路由

  1. 用于连接多个网络,并在网络之间转发数据包
    1. 路由器处理的是数据包的转发,无论这些数据包的具体内容或应用类型是什么
  2. 主要用于在网络层(如 IP 层)上决定数据包的最佳路径
    1. 路由器使用路由表和路由协议来确定数据包从源地址到目的地址的路径
    2. 可以在不同网络拓扑中动态地调整路由,以应对网络变化和故障

网关

  1. 是不同网络或网络协议之间的桥梁
    1. 它使得使用不同协议、架构或操作系统的网络能够相互通信
  2. 通常用于连接彼此不兼容的网络,如连接一个基于以太网的内部网络到一个基于不同协议的外部网络
    1. 网关能够翻译或转换不同网络协议,确保数据能够在这些网络之间正确地传输和理解
  3. 网关(Gateway)在网络通信模型中可以工作在不同的层次,具体取决于它执行的任务和协议类型
    1. 当网关处理高层协议(如 HTTPFTPSMTP 等)的转换时,它工作在应用层
      这种类型的网关可能涉及协议之间的转换,比如将一个协议的数据格式转换为另一个协议的格式
    2. 如果网关处理的是传输层协议(如 TCPUDP)的转换或封装,那么它工作在传输层
      例如,一些 VPN 网关就在这一层工作,它们封装或解封装经过 VPN 传输的数据包
    3. 当网关处理不同网络之间的路由和地址转换时,比如在 IPv4 IPv6 网络之间,它工作在网络层
      例如,网络地址转换(NAT)设备通常在这一层工作

IP地址

  1. IP 地址是互联网协议(IP)网络中设备的唯一标识
    1. 用于识别网络中的每个设备,如计算机、路由器、智能手机等
  2. IPv4 中,IP 地址是一个 32 位的数字,通常表示为四个十进制数(每个数范围从 0 255),由点分隔
    1. 例如 192.168.1.1
  3. IPv6 中,IP 地址是一个 128 位的数字,通常表示为八组四个十六进制数,由冒号分隔
    1. fe80::4b8:4751:d82c:81f6

网关地址

  1. 网关地址指的是本地网络中的一个设备(通常是路由器)
    1. 它作为本地网络与外界通信的出口
  2. 网关地址通常是 IP 地址,格式与普通 IP 地址相同
  3. 当数据需要发送到本地网络外部时,它首先发送到网关地址
    1. 网关负责将这些数据转发到正确的目的地

所有的数据包都走网关吗?

  1. 如果数据包的目的地是同一局域网(LAN)内的另一台设备,那么数据包通常直接在局域网内部路由,不经过网关
    1. 在这种情况下,交换机或者是无线接入点直接将数据传送到正确的目的地
  2. 如果数据包的目的地在局域网外部,比如互联网上的某个服务器,那么数据包会被发送到网关
    1. 网关(通常是路由器)负责将这些数据包转发到外部网络

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

bingliaolong
Bingliaolong 关注:0    粉丝:0 最后编辑于:2023-12-03
Everything will be better.

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享