当前位置: 首页 > news >正文

计算机网络:知识回顾

0 本节主要内容

问题描述
解决思路

1 问题描述

通过一个应用场景来回顾计算机网络涉及到的协议(所有层)。如下图所示场景:

  • 学生Bob将笔记本电脑用一根以太网电缆连接到学校的以太网交换机;
  • 交换机又与学校的路由器相连;
  • 学校的这台路由器与一个ISP连接,本例中ISP为comcast.net,该ISP为学校提供DNS服务;
  • 现在Bob要访问www.google.com主页。
    在这里插入图片描述

2 解决思路

2.1 连接到Internet

在这里插入图片描述

  • 连接笔记本电脑需要获得自己的IP地址,第一跳路由器的地址,DNS服务器的地址,假设通过DHCP获得;
  • DHCP请求封装UDP头,封装IP头,封装802.3以太网帧;
  • DHCP请求是一个广播报文,所以请求报文的802.3以太网帧目的地址填广播地址(FFFFFFFF),该报文被路由器上运行的DHCP服务器接收;
  • 以太网去头部、IP去头部、UDP去头部到DHCP;
  • DHCP服务器制作DHCP ACK,其中包含客户端的IP地址、客户端的第一跳路由器的IP地址以及DNS服务器的名称和IP地址;
  • 在DHCP服务器封装成帧,通过LAN转发帧(交换机学习);
  • DHCP客户端接收DHCP ACK回复。

客户端现在有IP地址,知道DNS服务器的名称和地址,第一跳路由器的IP地址。

2.2 使用ARP协议

在这里插入图片描述

  • 在发送HTTP请求之前,需要通过DNS知道www.google.com的IP地址;
  • 创建DNS查询,用UDP封装,用IP封装,用Eth(以太网)封装。要向路由器发送帧,需要通过ARP协议学习到路由器接口的MAC地址;
  • 路由器接收到客户端发起的ARP查询广播,通过给出路由器接口MAC地址的ARP响应报文进行回复;
  • 客户端现在知道第一跳路由器的MAC地址,所以现在可以发送包含DNS查询的帧。

2.3 使用DNS协议

在这里插入图片描述

  • 包含DNS查询的IP数据报通过LAN交换机从客户端转发到第一跳路由器;
  • 从校园网转发到Comcast网络的IP数据报,路由(RIP、OSPF、IS-IS和/或BGP路由协议创建的表)到DNS服务器;
  • DNS以www.google.com的IP地址回复客户端。

2.4 承载HTTP的TCP连接

在这里插入图片描述

  • 要发送HTTP请求,客户端首先打开到web服务器的TCP套接字;
  • TCP SYN段(TCP三向握手中的步骤1)域间路由到web服务器;
  • web服务器使用TCP SYN/ACK进行响应(TCP三次握手中的步骤2);
  • 客户端使用TCP ACK进行响应(TCP三次握手中的步骤3);
  • TCP连接已建立!

2.5 HTTP请求/响应

在这里插入图片描述

  • HTTP请求发送到TCP套接字;
  • 包含HTTP请求的IP数据报路由到www.google.com;
  • web服务器以HTTP回复(包含网页)进行响应;
  • 包含HTTP回复的IP数据报路由回客户端。

相关文章:

计算机网络:知识回顾

0 本节主要内容 问题描述 解决思路 1 问题描述 通过一个应用场景来回顾计算机网络涉及到的协议(所有层)。如下图所示场景: 学生Bob将笔记本电脑用一根以太网电缆连接到学校的以太网交换机;交换机又与学校的路由器相连&#xf…...

【Python百宝箱】音韵探奇:探索Python中的音频与信号魔法

数字音符:畅游Python音频与信号处理的科技奇境 前言 在数字时代,音频与信号处理不仅仅是专业领域的关键,也成为了科技创新和艺术创作的核心。本文将带领您深入探索Python中多个强大的音频处理库和信号处理工具,从Librosa到Tenso…...

springboot(ssm农产品直卖平台 农产品商城系统Java系统

springboot(ssm农产品直卖平台 农产品商城系统Java系统 开发语言:Java 框架:ssm/springboot vue JDK版本:JDK1.8(或11) 服务器:tomcat 数据库:mysql 5.7(或8.0) 数…...

C#编程-使用条件构造

使用条件构造 作判定是人的基本能力。判定也是可收编进程序。这有助于确定程序执行指令的顺序。 您可用条件构造来控制程序的流程。条件构造允许您基于被求职的表达式的结果来执行选定语句。 可以包含在C#程序中的各种条件构造是: if…else 构造switch…case 构造if…else构…...

【BERT】深入理解BERT模型1——模型整体架构介绍

前言 BERT出自论文:《BERT:Pre-training of Deep Bidirectional Transformers for Language Understanding》 2019年 近年来,在自然语言处理领域,BERT模型受到了极为广泛的关注,很多模型中都用到了BERT-base或者是BE…...

【Java开发岗面试】八股文—设计模式

声明: 背景:本人为24届双非硕校招生,已经完整经历了一次秋招,拿到了三个offer。本专题旨在分享自己的一些Java开发岗面试经验(主要是校招),包括我自己总结的八股文、算法、项目介绍、HR面和面试…...

GO基础进阶篇 (九)、临界资源安全问题(锁、channel)

临界资源安全问题 在并发编程中对临界资源的处理不当,往往会导致数据的不一致问题 package mainimport ("fmt""time" )func main() {a : 1go func() {a 2fmt.Println("goroutine", a)}()a 3fmt.Println("a", a)time.Sl…...

Python基础-04(比较运算符、逻辑运算符)

文章目录 前言一、比较运算符二、逻辑运算符1.and(与)2.or(或)3.not(非)4.逻辑运算符的细节(短路原则)(着重理解) 总结 前言 1、比较运算符内容很简单&#…...

MySQL 四种插入命令及其特点与锁机制

目录 1. INSERT INTO 2. INSERT IGNORE INTO 3. INSERT INTO ... ON DUPLICATE KEY UPDATE 4. REPLACE INTO 总结 MySQL提供了多种数据插入方式,每种方式在处理唯一键冲突时的行为不同,同时也涉及不同的锁机制。 1. INSERT INTO INSERT INTO是标准…...

AKShare学习笔记

AKShare学习笔记 本文内容参考AKShare文档。AKShare开源财经数据接口库采集的数据都来自公开的数据源,数据接口查询出来的数据具有滞后性。接口参考AKShare数据字典。 AKShare环境配置 安装Anaconda,使用Anaconda3-2019.07版本包,配置清华数…...

A星寻路算法

A星寻路算法简介 A星寻路算法(A* Search Algorithm)是一种启发式搜索算法,它在图形平面上进行搜索,寻找从起始点到终点的最短路径。A星算法结合了广度优先搜索(BFS)和最佳优先搜索(Best-First S…...

QDialog

属性方法 样式表 background-color: qlineargradient(spread:reflect, x1:0.999896, y1:0.494136, x2:1, y2:1, stop:0 rgba(0, 0, 0, 255), stop:1 rgba(255, 255, 255, 255));border: 1px groove rgb(232, 232, 232);border-radius: 20px; QDialog 的常用方法: e…...

Spark中使用DataFrame进行数据转换和操作

Apache Spark是一个强大的分布式计算框架,其中DataFrame是一个核心概念,用于处理结构化数据。DataFrame提供了丰富的数据转换和操作功能,使数据处理变得更加容易和高效。本文将深入探讨Spark中如何使用DataFrame进行数据转换和操作&#xff0…...

windows11新装机,简单评测系统自带软件(基本涵盖日常所需应用)

新年将近,由于当年安排的失误,系统盘(100G)和照片视频盘(4T)容量不够了,大容量的那块机械盘放在机箱里就在耳朵根吵吵,烦得很,于是狠狠心决定扩容后重配重装。 2023年最后…...

概念解析 | Shapley值及其在深度学习中的应用

注1:本文系“概念解析”系列之一,致力于简洁清晰地解释、辨析复杂而专业的概念。本次辨析的概念是:Shapley值及其在深度学习中的应用。 1 背景介绍 在机器学习和数据分析中,理解模型的预测是非常重要的。尤其是在深度学习黑盒模型中,我们往往难以直观地理解模型的预测行为。为…...

ajax的完整写法——success/error/complete+then/catch/done+设置请求头两种方法——基础积累

ajax的完整写法——success/error/completethen/catch/done设置请求头两种方法——基础积累 1.完整写法——success/error/complete1.1 GET/DELETE——query传参1.2 GET/DELETE——JSON对象传参1.3 PUT/POST——JSON对象传参 2.简化写法——then/catch/done2.1 GET/DELETE——q…...

《Linux详解:深入探讨计算机基础》

《Linux详解:深入探讨计算机基础》 引言: 在计算机科学领域,操作系统是一个至关重要的概念,而Linux作为一种开源的Unix-like操作系统,不仅在服务器领域广泛应用,也在嵌入式系统、超级计算机等多个领域发挥…...

HarmonyOS 实践之应用状态变量共享

平时在开发的过程中,我们会在应用中共享数据,在不同的页面间共享信息。虽然常用的共享信息,也可以通过不同页面中组件间信息共享的方式,但有时使用应用级别的状态管理会让开发工作变得简单。 根据不同的使用场景,ArkTS…...

ThreadLocal共享变量

一、ThreadLocal 我们知道多线程访问同一个共享变量时,会出现线程安全问题,为了保证线程安全开发者需要对共享变量的访问操作进行适当的同步操作,如加锁等同步操作。 除此之外,Java提供了ThreadLocal类,当一个共享变…...

前端crypto-js 库: MD5

文章目录 什么是crypto-js安装依赖MD5 什么是crypto-js github地址: https://github.com/brix/crypto-js cryptojs文档: https://cryptojs.gitbook.io/docs/#encoders CryptoJS (crypto.js) 为 JavaScript 提供了各种各样的加密算法。 CryptoJS是一个JavaScript加密算法库&a…...

ADAU1701(含A2B)的开发详解五:SigmaStudio实战技巧与模块高效应用

1. SigmaStudio模块查找的终极技巧 第一次打开SigmaStudio时,面对左侧密密麻麻的模块列表,我完全懵了。就像走进一个巨大的图书馆却找不到分类标签,ADI把200多个算法模块分散在30多个分类里,光Volume Controls下面就有12种音量调节…...

基于ESP32与WLED打造智能可编程灯饰:从硬件连接到软件配置全攻略

1. 项目概述:打造你的专属智能光影秀又到年底了,看着满大街千篇一律的彩灯装饰,是不是觉得有点审美疲劳?想不想自己动手,做一套独一无二、能通过手机随心控制颜色和动画的智能灯饰?今天分享的这个项目&…...

PXIe-9150嵌入式控制器:构建高集成度自动化测试系统的核心

1. 项目概述:从一块板卡到一套系统最近在整理实验室的测试设备,翻出来几台老旧的PXI机箱,想着怎么把它们重新利用起来。正好手头有个新项目,需要搭建一套多通道、高精度的数据采集与实时处理系统,传统的工控机加板卡的…...

30ms低延迟投屏终极指南:用QtScrcpy实现专业级手游直播

30ms低延迟投屏终极指南:用QtScrcpy实现专业级手游直播 【免费下载链接】QtScrcpy Android实时投屏软件,此应用程序提供USB(或通过TCP/IP)连接的Android设备的显示和控制。它不需要任何root访问权限 项目地址: https://gitcode.com/barry-ran/QtScrcpy…...

本地大模型一站式图形化工具Hermes-Studio部署与调优指南

1. 项目概述与核心价值最近在折腾本地大模型应用开发时,发现了一个挺有意思的项目,叫 Hermes-Studio。乍一看这个名字,你可能以为是某个新的IDE或者设计工具,但实际上,它是一个专门为本地运行的大型语言模型&#xff0…...

Programming Bitcoin最佳实践:10个核心编程技巧助你从零掌握比特币开发 [特殊字符]

Programming Bitcoin最佳实践:10个核心编程技巧助你从零掌握比特币开发 🚀 【免费下载链接】programmingbitcoin Repository for the book 项目地址: https://gitcode.com/gh_mirrors/pr/programmingbitcoin 想要深入理解比特币技术并掌握区块链编…...

Taotoken用量看板如何帮助开发者洞察API消费明细

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Taotoken用量看板如何帮助开发者洞察API消费明细 对于依赖大模型API进行开发的团队或个人而言,清晰、透明地掌握资源消…...

PCA降维后画图总感觉差点意思?试试用sklearn和matplotlib绘制带置信区间的分类图(附完整代码)

用置信椭圆增强PCA可视化:从数学原理到Python实战 当你第一次完成PCA降维并绘制出散点图时,那种将高维数据压缩到二维平面的成就感令人振奋。但很快你会发现一个尴尬的现实——那些密密麻麻的散点虽然展示了数据分布,却难以直观判断不同类别之…...

3步解决Beyond Compare 5评估模式错误:密钥生成与完全激活指南

3步解决Beyond Compare 5评估模式错误:密钥生成与完全激活指南 【免费下载链接】BCompare_Keygen Keygen for BCompare 5 项目地址: https://gitcode.com/gh_mirrors/bc/BCompare_Keygen 当Beyond Compare 5的30天评估期结束后,软件会显示"评…...

避开STM32G4比较器的那些‘坑’:LOCK机制、EXTI连接与GPIO配置详解

STM32G4比较器开发实战:LOCK机制、EXTI映射与GPIO配置的深度解析 当你在深夜调试STM32G4的比较器模块时,突然发现中断死活不触发,或者LOCK寄存器配置后无法修改参数,这种挫败感我深有体会。本文将带你直击STM32G4比较器开发中最容…...