【每日八股】计算机网络篇(三):IP

news2025/3/9 9:52:51

目录

  • DNS 查询服务器的基本流程
  • DNS 采用 TCP 还是 UDP,为什么?
    • 默认使用 UDP 的原因
    • 需要使用 TCP 的场景?
    • 总结
  • DNS 劫持是什么?解决办法?
  • 浏览器输入一个 URL 到显示器显示的过程?
    • URL 解析
    • TCP 连接
    • HTTP 请求
    • 页面渲染
    • 断开连接
  • PING 如何工作?
  • Cookie 和 Session 的区别是什么?
    • Cookie
    • Session
    • 差别
  • IPv4 和 IPv6 的区别?
  • 什么是跨域?什么情况下会发生跨域请求?
    • 概念
    • 解决办法

DNS 查询服务器的基本流程

  1. 首先,用户在浏览器输入域名后,浏览器会先检查自身缓存,若缓存中存在且未过期,则直接返回对应的 IP 地址。若浏览器中无缓存,则操作系统检查本地 Hosts 文件和系统 DNS 缓存。
  2. 若前两步骤未命中,则向本地 DNS 服务器发送递归查询请求;
  3. 本地 DNS 服务器无缓存,则以 DNS 客户的身份向根域名服务器发出解析请求;
  4. 根域名服务器收到请求后,判断该域名所属域,将对应的顶级域名服务器的 IP 地址返回给本地域名服务器;
  5. 本地域名服务器向顶级域名服务器发出解析请求报文;
  6. 顶级域名服务器收到请求后,将对应的授权域名服务器的 IP 地址返回给本地域名服务器;
  7. 本地域名服务器向授权域名服务器发起解析请求;
  8. 授权域名服务器收到请求后,将查询结果返回给本地域名服务器
  9. 本地域名服务器将查询结果保存到本地缓存,同时将 IP 地址返回给客户机;
  10. 用户通过获得的 IP 地址与目标服务器建立 TCP 连接,然后开始传输数据。

DNS 采用 TCP 还是 UDP,为什么?

DNS 主要使用 UDP(用户数据报协议),但在某些特定场景下会切换到 TCP(传输控制协议)。具体原因如下:

默认使用 UDP 的原因

高效性:UDP 是无连接的协议,无需建立和断开连接,减少了通信延迟。DNS 查询通常是简单的请求-响应模式,UDP 能更快地完成单次交互。

小数据包的适用性:DNS 的查询和响应通常较小(不超过 512 字节),UDP 单词传输即可满足需求。

低资源消耗:UDP 的头部开销更小(8 字节 vs. TCP 的 20 字节),适合高频的 DNS 查询场景。

需要使用 TCP 的场景?

响应数据过大:当 DNS 响应数据超过 512 字节(超过 UDP 的最大限制)时,服务器会返回截断标志(TC 位),客户端改用 TCP 重新请求(TCP 支持分段传输)。

区域传输:主 DNS 服务器向从服务器同步全量区域数据时,需通过 TCP 端口 53 完成,确保大量数据的可靠传输。

DNSSEC 拓展:启用 DNSSEC (DNS 安全拓展)后,数字签名会增加响应大小,可能超过 UDP 限制,强制使用 TCP。

可靠性要求:TCP 提供丢包重传、按需到达等机制,适合数据完整性要求高的场景(比如关键配置同步)。

总结

常规查询:UDP(快速、高效);

大规模传输及可靠性要求:TCP(如区域传输、大响应、DNSSEC)。

DNS 劫持是什么?解决办法?

DNS 劫持是一种网络攻击手段,攻击者通过篡改域名解析结果,将用户引导至虚假网站或插入广告

常见形式如下:

  • 路由器劫持:攻击者入侵路由器修改 DNS 设置;
  • 本地劫持:恶意软件修改设备 hosts 文件或 DNS 配置;
  • ISP 劫持:网络服务商主动劫持用于广告投放;
  • 中间人攻击:在传输链路中截获并篡改 DNS 响应。

解决办法:

  • 更换可信 DNS;
  • 设备检查;
  • 路由器防护;
  • 网络加密;
  • 定期更换重要账户密码;
  • 启用双重身份验证;
  • 使用网络监控工具(比如 Wireshark)检测异常请求;

浏览器输入一个 URL 到显示器显示的过程?

URL 解析

用户在浏览器输入域名后,浏览器首先从自身的缓存中查找是否存在域名,存在就取出对应的 IP 地址,否则去 OS 缓存查找。前两步均未命中的情况下,浏览器调用 OS 的 API 使操作系统开启 DNS 解析服务,递归地从本地 DNS 到 根域 DNS 再到顶级域 DNS 最后到权威域 DNS 请求解析,最终由权威域 DNS 返回域名的 IP 地址,浏览器会对其进行缓存。

TCP 连接

在 URL 解析过程中得到真实的 IP 地址后,浏览器会调用 Socket 函数,根据 IP 和端口与目标建立 TCP 连接。

HTTP 请求

浏览器向服务器发送一个 HTTP 请求,HTTP 协议是建立在 TCP 协议之上的应用层协议,其本质是在建立起的 TCP 连接之上,按照 HTTP 协议标准发送一个索要网页的请求。请求包括请求行、请求头、请求体三部分,有 GET、POST 等方法

页面渲染

服务器在收到浏览器发送的 HTTP 请求之后,会将收到的 HTTP 报文封装成 HTTP Request 对象,并通过不同的 Web 服务器进行处理,处理完的结果以 HTTP Response 对象的形式返回,包括状态码、响应头和响应报文三部分。

断开连接

数据传输完毕后,客户端和服务端通过四次挥手断连。

PING 如何工作?

PING(Packet Internet Groper)是一种网络诊断工具,用于测试两台设备之间的连通性。其核心原理是通过 ICMP 协议(Internet Control Message Protocol)发送探测数据包并等待响应。

ICMP主要的功能包括:确认IP包是否成功送达目标地址、报告发送过程中IP包被废弃的原因、改善网络设置等。在IP通信中如果某个IP包因为某种原因未能达到目标地址,具体的原因将由ICMP通知。

PING 的工作流程如下:

  1. 发送 Echo Request:首先源设备构造一个 ICMP Echo Request 数据包,包括目标 IP、序列号和时间戳;
  2. 数据包经过路由器逐跳转发,没经过一个路由,TTL 减一,若 TTL 归零,则路由器丢弃包并返回 ICMP Time Exceeded 消息;
  3. 目标设备收到 Echo Request 后,检查 ICMP 报文合法性,构造 ICMP Echo Reply 报文,将 Reply 发回源设备;
  4. 源设备收到 Echo Reply 之后,计算往返时间 RTT,统计丢包率。

Cookie 和 Session 的区别是什么?

Cookie

Cookie 是服务器发送到用户浏览器并保存在本地的一小块数据,它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上。通常,它用于告知服务器两个请求是否来自同一浏览器。

作用

  • 会话状态管理(如用户登录状态、购物车、游戏分数等其它需要记录的信息);
  • 个性化设置(如用户自定义设置、主题等);
  • 浏览器行为跟踪(分析用户行为等);

Session

Session代表着服务器和客户端一次会话的过程。Session 对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当客户端关闭会话,或者 Session 超时失效时会话结束。

差别

  • 保存形式不同:Cookie 保存在客户端(浏览器),Session 保存在服务器;
  • 存取方式不同:Cookie 只能保存 ASCII,Session 可保存任意数据类型;
  • 有效期不同:Cookie 可设置为长时间保持,比如默认登录;Session 一般时效较短,客户端关闭或超时,Session 都会失效。
  • 存储大小不同:单个 Cookie 保存的数据不超过 4K,Session 可存储的数据远高于 Cookie。

IPv4 和 IPv6 的区别?

  • IPv6 的首部长度是 40 个字节,相对 IPv4 的首部长度 24 字节要长,但 IPv6 首部结构比 IPv4 简单。
  • IPv6 把 IP 地址由 32 位增加到 128 位,从而能够支持更大的地址空间。IPv6 简化了路由, 加快了路由速度。
  • IPv6 的可选项不放入报头,而是放在一个个独立的扩展头部。如果不指定路由器不会打开处理扩展头部, IPv6 放宽了对可选项长度的严格要求 (IPv4 的可选项总长最多为 40 字节) ,并可根据需要随时引入新选项。
  • IPv6 协议支持地址自动配置,这是一种即插即用的机制。IPv6 节点通过地址自动配置得到 IPv6 地址和网关地址。IPv6 支持无状态地址自动配置和状态地址自动配置两种地址自动配置方式。它会给配置 128 位的地址带来很大的方便,特别是无状态地址自动配置。
  • 在 IPv6 中加入了关于身份验证、数据一致性和保密性的内容。

什么是跨域?什么情况下会发生跨域请求?

概念

跨域(Cross-Origin)是指浏览器出于安全考虑,限制不同源(协议、域名、端口)之间的资源交互。常见的跨域场景包括:

  • 前后端分离开发时,前端localhost:3000调用后端localhost:8080
  • 调用第三方 API(如支付接口、地图服务);
  • 多子域名系统;
  • CDN 资源加载;

解决办法

  • Nginx:使用 Nginx 作为代理服务器和用户交互,用户就只需要在 80 端口上进行交互就可以了,这样就避免了跨域问题。
  • JSONP:网页通过添加一个 script 元素,向服务器请求 JSON 数据,服务器收到请求后,将数据放在一个指定名字的回调函数的参数位置传回来。缺点是只支持 get 请求,不支持 post 请求
  • CORS:跨域资源分享。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2311007.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于单片机的速度里程表设计(论文+源码)

1 系统方案 本次智能速度里程表的总体架构如图2-1所示,在硬件上包括了STC89C52单片机,电机,显示模块,报警模块,DS1302时钟模块,超速检测模块,按键等等。在软件设计功能的功能上,按下…

计算机毕业设计Python+Django+Vue3微博数据舆情分析平台 微博用户画像系统 微博舆情可视化(源码+ 文档+PPT+讲解)

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

Dify+DeepSeek | Excel数据一键可视化(创建步骤案例)(echarts助手.yml)(文档表格转图表、根据表格绘制图表、Excel绘制图表)

Dify部署参考:Dify Rag部署并集成在线Deepseek教程(Windows、部署Rag、安装Ragan安装、安装Dify安装、安装ollama安装) DifyDeepSeek - Excel数据一键可视化(创建步骤案例)-DSL工程文件(可直接导入&#x…

安装与配置 STK-MATLAB 接口

STK版本为11.6 Matlab版本为R2018a STK 提供 Connect 和 Object Model (COM) 两种接口与 MATLAB 交互,推荐使用 COM接口进行二次开发。 确保安装了 STK,并且 MATLAB 可以访问 STK Object Model。 在 MATLAB 中运行: % 添加 STK COM 库&#…

计算机二级MS之PPT

声明:跟着大猫和小黑学习随便记下一些笔记供大家参考,二级考试之前将持续更新,希望大家二级都能轻轻松松过啦,过了二级的大神也可以在评论区留言给点建议,感谢大家!! 文章目录 考题难点1cm25px…

python中采用opencv作常规的图片处理的方法~~~

在python中,我们经常会需要对图片做灰度/二值化/模糊等处理,这时候opencv就是我们的好帮手了,下面我来介绍一下相关用法: 首先,需要安装opencv-python库: 然后,在你的代码中引用: import cv2 最后就是代码了&#x…

deepseek在pycharm 中的配置和简单应用

对于最常用的调试python脚本开发环境pycharm,如何接入deepseek是我们窥探ai代码编写的第一步,熟悉起来总没坏处。 1、官网安装pycharm社区版(免费),如果需要安装专业版,需要另外找破解码。 2、安装Ollama…

Redis数据结构,渐进式遍历,数据库管理

1.Redis的其他数据结构 前面我们主要讲述了Redis中比较常用的集中数据结构String,List,Hash,Set,Zset,但这并不代表Redis只用这几种数据结构还有如Streams,Geospatial,Hyperloglog,…

【够用就好006】如何从零开发游戏上架steam面向AI编程的godot独立游戏制作实录001流程

记录工作实践 这是全新的系列,一直有个游戏制作梦 感谢AI时代,让这一切变得可行 长欢迎共同见证,期更新,欢迎保持关注,待到游戏上架那一天,一起玩 面向AI编程的godot独立游戏制作流程实录001 本期是第…

LNK2038 检测到“RuntimeLibrary”的不匹配项: 值“MT_StaticRelease”不匹配值“MD_DynamicRelease”

vs2019中属性设置 报错: vs2019中属性设置为 报错: 设置为 报错: 设置为 报错: 原因:是由于ncnn和paddleLite的库同时使用会冲突。只能用其中之一。 后面部署降lite都换成了ncnn就可以了。 要么都用ncnn&a…

SpringBoot校园管理系统设计与实现

在现代校园管理中,一个高效、灵活的管理系统是不可或缺的。本文将详细介绍基于SpringBoot的校园管理系统的设计与实现,涵盖管理员、用户和院校管理员三大功能模块,以及系统的部署步骤和数据库配置。 管理员功能模块 管理员是系统的核心管理…

[QT]开发全解析:从概念到实战

文章目录 Qt 框架入门与应用开发指南一、Qt 框架概述1.1 什么是 Qt1.2 Qt 的发展史1.3 Qt 支持的平台1.4 Qt 版本1.5 Qt 的优点1.6 Qt 的应用场景1.7 Qt 的成功案例 二、Qt 的开发工具概述Qt CreatorVisual StudioEclipse 三、认识 Qt Creator3.1 Qt Creator 概览3.2 使用 Qt C…

【pyqt】(十二)文本框

控件-文本框 文本框主要有两类,为富文本框(QTextEdit)和纯文本框(QPlainTextEdit),在学习新的控件的时候, 需要掌握的内容主要除了属性之外,其信号触发方法也非常重要。还可以利用Designer来辅助我们进行学习,尤其是利…

汽车免拆诊断案例 | 2023款丰田雷凌汽油版车行驶中偶尔出现通信故障

故障现象  一辆2023款丰田雷凌汽油版车,搭载1.5 L发动机,累计行驶里程约为4700 km。车主反映,行驶中偶尔组合仪表上的发动机转速信号丢失,转向变重,且有“闯车”感,同时车辆故障警报蜂鸣器鸣响。 故障诊断…

关于OceanBase与CDH适配的经验分享

CDH是Cloudera早期推出的一个开源平台版本,它实质上成为了Apache Hadoop生态系统内公认的安装与管理平台,专为企业级需求量身打造。CDH为用户提供了即装即用的企业级解决方案。通过整合Hadoop与另外十多项关键开源项目,Cloudera构建了一个功能…

基于国产芯片的AI引擎技术,打造更安全的算力生态 | 京东零售技术实践

近年来,随着国产AI芯片的日益崛起,基于国产AI芯片的模型适配、性能优化以及应用落地是国产AI应用的一道重要关卡。如何在复杂的京东零售业务场景下更好地使用国产AI芯片,并保障算力安全,是目前亟需解决的问题。对此,京…

HTML label 标签使用

点击 <label> 标签通常会使与之关联的表单控件获得焦点或被激活。 通过正确使用 <label> 标签&#xff0c;可以使表单更加友好和易于使用&#xff0c;同时提高整体的可访问性。 基本用法 <label> 标签通过 for 属性与 id 为 username 的 <input> 元素…

Linux和gcc/g++常用命令总结

目录 Linux命令总结 文件操作相关命令 ls cd pwd cp mv rm cat mkdir rmdir touch 文本处理操作命令 grep awk sed 进程管理操作相关命令 ps top htop kill pkill killall chmod chown 网络操作相关命令 ping ifconfig netstat ss lsof curl …

Sqoop从入门到使用

安装和配置 修改文件配置&#xff1a;修改文件名将&#xff08;sqoop-env-template.sh改为sqoop-env.sh&#xff09; 编辑sqoop-env.sh内部文本&#xff0c;修改调用文件位置 将sqoop-env.sh&#xff0c;配置到全局变量中&#xff0c;方便调用。 查看正常运用 第一类&#xff1…

【数据结构】堆(挑战从零基础到进阶)

我们从概念开始一步步来学习堆&#xff0c;下面我们来从零基础来解剖该种数据结构。先提前透明&#xff1a;实现堆其实就是基于数组来实现一个完全二叉树而已 &#xff01; 目录 堆的概念 堆的性质 堆的物理逻辑&思维逻辑 堆的节点对应关系 堆的核心操作 &#xff08…