计算机网络stage1

字节抖音大数据开发校招面经总结 翻了一些牛客上的字节面经,对常见面试题做了下总结~Spark部分1、Spark中Stage、Executor、Task都是干嘛的?2、Spark 数据倾斜3、spark为什么比mr快?4、Spark的stage的划分是怎么划分的?5、介绍一下 Spark RDD、DataFrame、DataSet6、Spark的窄依赖和宽依赖7、DAG Scheduler作用8、Spark中有哪些算子会进行shuffle,有哪些不会进行shuffle9、union可以形成宽依赖吗?10、Spark 作业调度11、Spark 阅读详情

本文是leetcode上《网络是怎样连接的》阅读笔记

网络是怎样连接的

第一章节

{%}{%}

  1. 前面介绍的这个负责搬运数字信息的机制,再加上浏览器和 Web 服务器这些网络应用程序,这两部分就组成了网络。也就是说,这两部分组合起来,就是网络的全貌

  2. 名词:协议栈、网卡、集线器、缓存服务器、负载均衡器

  3. 先查出 Web 服务器的 IP 地址

  4. 查询到 IP 地址之后,浏览器就可以将消息委托给操作系统发送给 Web 服务器了

  5. www 只是 Web 服务器上的一种命名、是 Web 的提出者最早开发的浏览器兼 HTML 编辑器的名字

    以 www 开头的,但这并不是一定之规,只是因为最早设计 Web 的时候,很多 Web 服务器都采用了 www 这样的命名,后来就形成了一个惯例而已

    在域名中,越靠右的位置表示其层级越高,比如 www.lab.glasscom.com 这个域名如果按照公司里的组织结构来说,大概就是“com 事业集团 glasscom 部 lab 科的 www”这样。其中,相当于一个层级的部分称为域。因此,com 域的下一层是 glasscom 域,再下一层是 lab 域,再下面才是 www 这个名字。

  6. 例如在访问 Web 服务器和 FTP 服务器时,URL 中会包含服务器的域名 [⑤] 和要访问的文件的路径名等1.2

  7. URL:Uniform Resource Locator
    FTP:File Transfer Protoco
    端口号:这里请大家理解为一个用来识别要连接的服务器程序的编号

  8. 目录(directory)这个词的意思相当于 Windows 中的文件夹(folder)

  9. http://www.lab.glasscom.com/dir/ : 我们会在服务器上事先设置好文件名省略时要访问的默认文件名
    http://www.lab.glasscom.com :当没有路径名时,就代表访问根目录下事先设置的默认文件 [②],也就是 /index.html 或者 /default.htm 这些文件,这样就不会发生混乱了。

  10. Uniform Resource Identifier,URI
    所以URL是URI的子集。URL是以描述人的位置来唯一确定一个人的。
    而URL就是用定位的方式实现的URI。

  11. 表单:网页中的文本框、复选框等能够输入数据的部分。

  12. pragma

  13. 当网页中包含图片时,会在网页中的相应位置嵌入表示图片文件的标签 [①] 的控制信息。浏览器会在显示文字时搜索相应的标签,当遇到图片相关的标签时,会在屏幕上留出用来显示图片的空间,然后再次访问 Web 服务器,按照标签中指定的文件名向 Web 服务器请求获取相应的图片并显示在预留的空间中。这个步骤和获取网页文件时一样,只要在 URI 部分写上图片的文件名并生成和发送请求消息就可以了。

  14. 这一系列工作的整体指挥也是浏览器的任务之一,而 Web 服务器却毫不知情

  15. get 获取 post 发送

1.2.1

{%}

  1. 实际的 IP 地址是一串 32 比特的数字,按照 8 比特(1 字节)为一组分成 4 组,分别用十进制表示然后再用圆点隔开

  2. 加信息来表示 IP 地址的内部结构。

    哪部分是网络号,哪部分是主机号

    是一串与 IP 地址长度相同的 32 比特数字,其左边一半都是 1,右边一半都是 0。其中,子网掩码为 1 的部分表示网络号,子网掩码为 0 的部分表示主机号

    子网掩码表示网络号与主机号之间的边界

  3. IP 地址的主机号

    全 0:表示整个子网

    全 1:表示向子网上所有设备发送包,即“广播”

  4. 让路由器来使用 IP 地址。为了填补两者之间的障碍,需要有一个机制能够通过名称来查询 IP 地址,或者通过 IP 地址来查询名称 – DNS

    Domain Name System
    首先,将负责管理下级域的 DNS 服务器的 IP 地址注册到它们的上级 DNS 服务器中,然后上级 DNS 服务器的 IP 地址再注册到更上一级的 DNS 服务器中

    所以我们可以从根域开始一路往下顺藤摸瓜找到任意一个域的 DNS 服务器。

    根域的 DNS 服务器信息保存在互联网中所有的 DNS 服务器中

  5. 操作系统的 Socket 库
    Socket又称"套接字"

  6. 执行解析(resolution)这一操作的就叫解析器(resolver)了。

  7. 库就是一堆通用程序组件的集合,其他的应用程序都需要使用其中的组件。库有很多好处。首先,使用现成的组件搭建应用程序可以节省编程工作量;其次,多个程序使用相同的组件可以实现程序的标准化。
    解析器就是这个库中的其中一种程序组件

  8. 公共网关接口(CGI)

  9. Socket是什么?

    Socket,又称套接字,是Linux跨进程通信(IPC,Inter Process Communication,详情参考:Linux进程间通信方式总结)方式的一种。相比于其他IPC方式,Socket更牛的地方在于,它不仅仅可以做到同一台主机内跨进程通信,它还可以做到不同主机间的跨进程通信。根据通信域的不同可以划分成2种:Unix domain socket 和 Internet domain socket。

  10. “IP+端口+协议”的组合就可以唯一标识网络中一台主机上的一个进程。这也是生成socket的主要参数。

img

​ 半,一个完整的Socket的组成应该是由**[协议,本地地址,本地端口,远程地址,远程端口]** 组成的一个5维数组img

  1. 从TCP连接视角看待上述过程可以总结如图,可以看到TCP的三次握手代表着Socket连接建立的过程,建立完连接后就可以通过read,wirte相互传输数据,最后四次挥手断开连接删除Socket。

  2. TCP*(Transmission Control Protocol,传输控制协议)*

    TCP的**三次握手***以及TCP的*四次挥手***! 三次握手*: 建立一个TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立, 在Socket编程中,这一过程由客户端执行connect来触发,具体流程图如下:

  3. {%}

  4. 首先,服务器一方先创建套接字,然后等待客户端向该套接字连接管道 [③]。当服务器进入等待状态时,客户端就可以连接管道了。具体来说,客户端也会先创建一个套接字,然后从该套接字延伸出管道,最后管道连接到服务器端的套接字上。当双方的套接字连接起来之后,通信准备就完成了。接下来,就像我们刚刚讲过的一样,只要将数据送入套接字就可以收发数据了。

    当数据全部发送完毕之后,连接的管道将会被断开。管道在连接时是由客户端发起的,但在断开时可以由客户端或服务器任意一方发起 [④]。其中一方断开后,另一方也会随之断开,当管道断开后,套接字也会被删除。到此为止,通信操作就结束了。

    前面这 4 个操作都是由操作系统中的协议栈来执行的,浏览器等应用程序并不会自己去做连接管道、放入数据这些工作,而是委托协议栈来代劳。

  5. 服务器程序一般会在启动后就创建好套接字并等待客户端连接管道。

  6. 小写的 socket 表示程序组件的名称,大写字母开头的 Socket 表示库,而汉字的“套接字”则表示管道两端的接口。

  7. 在Socket中 connect 时,需要指定描述符、服务器 IP 地址和端口号这 3 个参数

  8. 如果说描述符是用来在一台计算机内部识别套接字的机制,那么端口号就是用来让通信的另一方能够识别出套接字的机制

    服务器上所使用的端口号是根据应用的种类事先规定好的

  9. 客户端在创建套接字时,协议栈会为这个套接字随便分配一个端口号 [⑦]。接下来,当协议栈执行连接操作时,会将这个随便分配的端口号通知给服务器。

  10. 准确地说,IP 地址不是分配给每一台设备的,而是分配给设备中安装的网络硬件的。因此,如果一台设备中安装了多个网络硬件,那么就会有多个 IP 地址。

  11. write
    接收消息的操作是通过 Socket 库中的 read 程序组件委托协议栈来完成的
    调用 read 时需要指定用于存放接收到的响应消息的内存地址,这一内存地址称为接收缓冲区
    当浏览器收到数据之后,收发数据的过程就结束了。接下来,我们需要调用 Socket 库的 close 程序组件进入断开阶段

  12. 对于同一台服务器来说,重复连接和断开显然是效率很低的,因此后来人们又设计出了能够在一次连接中收发多个请求和响应的方法

  13. 。{%}

Socket

  1. 在互联网上传送数据时,数据会被切分成一个一个的网络包 [①],而将网络包发送给通信对象的操作就是由 IP 来负责的。此外,IP 中还包括 ICMP [②] 协议和 ARP

  2. 套接字的实体就是通信控制信息

    套接字中记录了用于控制通信操作的各种控制信息

  3. 在 Windows 中可以用 netstat 命令显示套接字内容

  4. UDP 中不绑定对方地址和端口

2、计算机网络设备设置与使用指南 本文详细介绍了计算机网络设备的设置与使用方法,涵盖硬件驱动安装、Device Stage设备管理、路由器(Belkin和D-Link)安装配置、无线网络设置、网络安全策略以及常见网络故障排查流程。结合Windows 7系统环境,提供实用操作指南和问题解决方案,帮助用户高效搭建安全稳定的家庭网络。 阅读详情

相关推荐

ACL查表详细教程:FPGA工程师视角

ACL是一组规则,用于控制对网络资源的访问权限。每条规则定义了特定条件下的允许或拒绝操作。例如,在文件系统中,ACL可以定义哪些用户或组可以读取、写入或执行特定文件或目录。在网络设备(如路由器、交换机)中,ACL用于控制数据包的转发和过滤,确保只有符合特定条件的数据包才能通过。

年糕的博客 1407

网络全貌

网络的全貌 一、主要结构: 客户端=接入网、网络运营商=服务器端 客户端包括: Web浏览器、协议栈、网卡、集线器、交换器、路由器。 服务器端包括: 防火墙、缓存服务器、Web服务器。 二、主要交互过程: 浏览器向Web服务器发送请求。 Web服务器根据请求向浏览器发送响应。 三、网络实现要求: 需要一个能够在浏览器和Web服务器之间传递请求和响应的机制。 无论任何情况都能将请求和响应准确的...

weixin_44740860的博客 363

鸿蒙开发工程师:机遇、挑战与核心能力解析

鸿蒙开发工程师作为支撑HarmonyOS生态繁荣的关键角色,肩负着构建全场景智慧体验的重任。这一岗位要求开发者不仅具备扎实的计算机基础、熟练的编程语言技能(特别是ArkTS),更需要深刻理解鸿蒙的分布式理念、精通其开发框架(如Stage模型、ArkUI、分布式能力),并具备良好的系统设计思维和团队协作能力。随着HarmonyOS NEXT的推进和鸿蒙在PC等新领域的拓展,鸿蒙开发的技术栈和应用场景将持续丰富和深化。这为开发者带来了巨大的机遇(广阔的市场前景、技术创新的空间)和挑战(快速学习、适应变化)。

郑伟强dev的专栏 51

网络是怎样联通的-整体架构

本文摘自《网络是怎样连接的》一书 网络的全貌 让我们先来看一下浏览器访问 Web 服务器这一过程的全貌。 访问 Web 服务器并显示网页这一过程包含了浏 览器和 Web 服务器之间的一系列交互,主要是下面这样的交互。 (1) 浏览器:“请给我 ××× 网页的数据。” (2) Web 服务器:“好的,这就是你要的数据。” 在这一系列交互完成后,浏览器就会将从 Web 服务器接收到的数据显示在屏幕上。虽然显示网页这个过程 非常复杂,但浏览器和服务器之间通过网络进行的交互却出乎意料地简单。 虽然我们看到的很简单,

Artisan_w 1553

CCS8.1 导入CCS3.3工程方法

    CCS3.3作为开发人员使用最广开发工具,研究人员手上存在不少该版本的建立的程序版本,然而随着TI公司推出高级版本的CCS平台,在新的平台上集成了更加丰富的功能和优点。利用新版本的平台在开发和编译旧版本工程上可以节省大量时间和精力。在使用新版本开发3.3版本工程时,首要解决的就是加载3.3的工程文件,现将加载过程记录如下: 第一步:Project->Import Legacy CC...

1万+

dummy机械臂代码学习(六)

CLI-Tool文件夹下又包含四个子文件夹,以及一个gitignore文件、一个run_shell.py的python文件、一个run.bat文件和一个zadig exe文件。库解析命令行参数,并根据不同的命令执行相应的操作。Zadig是一个用于Windows操作系统的开源工具,它的主要功能是安装和配置USB驱动程序。的目的呢就是确保在版本控制过程中,不必要的或自动生成的文件被忽略掉,来保持代码仓库的干净和整洁。,DummyStudio的软件作者已放在GitHub,我们主要看CLI-Tool文件夹就行。

jumaohhh的博客 1432

网络知识入门,探索一次网页请求的旅程(一)

一、网络的全貌 从在浏览器中输入网址,到屏幕上显示出网页的内容,在这个只有几秒钟的过程中,很多硬件和软件都在各自的岗位上相互配合完成了一系列的工作。本文将带领大家探索这一系列工作中的每一个环节。每个单独的环节都并不复杂,只要仔细阅读就一定能够理解。不过,探索之旅中出现的硬件和软件数量庞大,如果仅从微观的视角关注每一个单独的点,可能就会因为看不到整体而迷失了方向。因此,在真正出发开始探索之...

ck784101777的博客 1290

BERTopic模型入门教程(附代码+参数调节)

BERTopic 是一种用于从文本数据中提取主题模型的新型方法。通过结合 BERT嵌入和传统的主题模型来生成语义丰富的主题。传统的主题模型(如LDA)主要依赖于词频矩阵,而 BERTopic 通过预训练语言模型生成高维语义嵌入来捕捉词语间的复杂关系,因此可以更好地处理上下文信息。BERTopic模型可以看作是创建其主题表示的一系列步骤。核心原理如下:就本质而言,BERTopic就是一个拼装框架,可以把每部分都替换成其他模型,只要完成任务即可。

m0_52069102的博客 1万+

Stage

Stage Spark任务会根据RDD之间的依赖关系,形成一个DAG有向无环图,DAG会提交给DAGScheduler,DAGScheduler会把DAG划分相互依赖的多个stage,划分stage的依据就是RDD之间的宽窄依赖。遇到宽依赖就划分stage,每个stage包含一个或多个task任务。然后将这些task以taskSet的形式提交给TaskScheduler运行。 stage是由一组并...

qq_20174285的博客 203

CMOS传输门实战:如何用模拟开关优化你的电路设计(附常见问题排查)

本文深入探讨了CMOS传输门在电路设计中的实战应用与优化策略。文章从核心参数选型入手,详细分析了导通电阻、电荷注入等关键特性对电路性能的影响,并提供了多路复用器构建、精密电路应用等实战架构。同时,重点分享了PCB布局、电源去耦的工程细节,以及开关不导通、信号失真、高频性能不足等常见问题的系统性排查指南,旨在帮助硬件工程师充分发挥CMOS模拟开关的效能,提升电路设计的可靠性与精度。

js777的博客 450

Ghost备份还原Win10全攻略:从老电脑迁移到新硬盘,ESP分区处理是关键

本文详细介绍了使用Ghost工具将Win10系统从旧电脑迁移到新硬盘的全过程,特别强调了ESP分区的关键处理方法。通过分步指导备份、分区准备、系统还原和引导修复,帮助用户实现无缝系统迁移,解决常见问题如启动失败和驱动兼容性。

weixin_30823001的博客 672

计算机 项目管理 stage phase区别

stage:一个阶段 phase:一个过程,可以重复进入 从项目管理的视角看:stage强调的是生命周期中的阶段,对应明确的详细说明或应达成目标,目标是否达成是评审是否通过的重要依据——决策是否继续投入资金、人力和基础设施等,一旦通过不会再次进入;phase强调的是时期,可以是生命周期中的,也可以是阶段中的,对应的是为达成目标执行的使能活动,使能活动可以反复进行,因此一个phase完成后可以再次进入。 项目管理中Stage和Phase的区别 - 知乎 ...

软件工程小施同学 的专栏 3993

1、初探 Tiny Machine Learning

Tiny Machine Learning(TinyML)是机器学习与嵌入式系统的融合领域,致力于在资源受限的微控制器上运行AI模型。本文介绍了机器学习基础、TinyML的核心概念、应用领域(如智能家居、工业物联网、医疗保健)、面临的挑战(如资源限制、模型压缩、数据质量),以及从硬件准备到模型部署的实践步骤。通过利用训练与推理的资源不对称性,可在PC上训练模型并部署至低功耗设备进行实时推理,推动边缘智能的发展。

loss4bartender的博客 121

计算机网络stage2

继计算机网络stage1 网络是怎样连接的 第二章 Socket 库向协议栈发出委托的一系列操作 所以只要通过描述符确定了相应的套接字,协议栈就能够获取所有的相关信息,这样一来,应用程序就不需要每次都告诉协议栈应该和谁进行通信了。 操作系统中有一个“内存管理”模块 连接实际上是通信双方交换控制信息,在套接字中记录这些必要信息并准备数据收发的一连串操作 论何种操作系统的协议栈都是共通的 TCP 模块会与该 IP 地址对应的对象,也就是与服务器的 TCP 模块交换控制信 当 TCP .

FNAspectOL的博客 753

DFT笔记 DC/AC mode与Func

DFT scan可以分为DC和AC两种,区别如下图。

m0_61544122的博客 5718

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

古老的传说(Player、Stage)是否还能在蓝桥云课ROS中重现-250601(失败)

摘要:本文详细介绍了在Ubuntu 16.04系统中安装Player/Stage机器人仿真平台的过程,包括环境设置、依赖项安装、Player和Stage的编译安装步骤。Player起源于1999年南加州大学,是一个开源机器人设备服务器,支持多线程和网络接口;Stage是其配套的二维仿真工具。安装过程涵盖创建安装目录、设置环境变量、安装编译工具和依赖库,以及从源码编译安装的具体命令。最后通过验证地图显示和测试命令检查安装是否成功。文章还提及该项目与ROS的兼容性问题,在安装过程中可能出现卸载ROS1的情况,体

zhangrelay的专栏 1610

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

【愚公系列】2024年12月 HarmonyOS教学课程 041-Stage模型(概述和组件配置)_harmonyos windowstage(1)

在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。网安所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

2401_84520026的博客 373

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

babel基础,这是一份面向Web前端开发者的复习指南

Babel默认只转换新的JavaScript句法(syntax),而不转换新的API,比如Iterator、Generator、Set、Maps、Proxy、Reflect、Symbol、Promise等全局对象,以及一些定义在全局对象上的方法(比如。优点:解决babel只能转换部分低级语法问题,(如:let/const/解构赋值。解决:需要按需加载(使用了什么高级语法,就转换什么,而其他的不转换)注意,以下所有Babel工具和模块的使用,都必须先写好。然后,在脚本头部,加入如下一行代码。

m0_58269070的博客 669

掌握这个Jenkins插件,离测试开发又近一步!

Jenkins Pipeline是一种可编程的、可扩展的持续交付管道,允许您使用脚本来定义整个软件交付过程。 以下是使用Jenkins Pipeline创建和配置流水线的基本步骤。

人生不怕起点低,就怕没追求 677

黑客自学五步走:从网络基础到内网渗透的实战书单

网络安全的核心在于理解系统构建与运行的底层逻辑,这需要扎实的理论基础。从计算机网络的协议原理出发,理解数据包如何传输、会话如何建立,是分析各类网络攻击的基石。掌握这些原理后,便能深入Web安全领域,剖析SQL注入、XSS等常见漏洞的成因与防御之道,这是当前企业安全防护的重点。将这些知识应用于渗透测试实战,通过系统化的方法论进行漏洞挖掘与利用,能有效评估系统风险。最终,在内网环境中进行横向移动与权限维持的攻防演练,构成了完整的防御能力体系。本文围绕【黑客自学】与【渗透测试】两大核心,推荐一份从理论到实战的渐进

weixin_30908103的博客 565

鸿蒙 ArkTS 实战:从零实现高颜值个人简历页面

typescript运行@Entry@Component@Entry:标记该组件为页面入口,可独立渲染和预览@Component:自定义组件装饰器,实现 UI 复用struct:ArkTS 中定义组件的关键字。

2603_96003453的博客 381

基于鸿蒙系统的毕业设计:新手入门实战指南与避坑实践

刚开始接触鸿蒙开发,你可能会被FA(Feature Ability)模型和Stage模型搞晕,也会在ArkTS和JS之间犹豫。这里直接说结论:对于新的毕业设计项目,强烈推荐使用Stage模型 + ArkTS。FA模型是鸿蒙早期的主要应用模型,而Stage模型是鸿蒙3.0开始主推的新模型。Stage模型在应用生命周期管理、线程模型和UI组件管理上都更清晰、更强大。它采用了基于“窗口”的概念,更适合构建复杂的、多页面的应用。

2600_94959788的博客 211

【鸿蒙学习】ArkTS创建第一个页面,开启开发之路

上回讲到要想学习鸿蒙开发,首先得安装好工具:DevEco Studio。 俗话说“预先善其事,必先利其器”,工具安装好以后就可以“开干”了。今天跟着步骤走,咱们来创建鸿蒙的第一个界面吧。

software_test010的博客 879

JavaScript 云原生开发秘籍(四)

在本章中,将涵盖以下食谱:使用适当的超时和重试实现背压和速率限制处理故障重新提交故障事件使用反向 OpLock 实现幂等性使用事件溯源实现幂等性处理失败是云原生的基础。我们构建自主服务,当它们失败时限制爆炸半径,并在其他服务失败时继续运行。我们将部署与发布解耦,并控制每次部署的批量大小,以便在部署出错时容易识别问题。我们将测试左移到持续部署管道中,以在部署之前捕获问题,以及一直移到生产环境中,在那里我们持续测试系统并在异常情况下发出警报,以最小化恢复时间。本章中的食谱演示了如何设计一个在失败面前具有弹性和宽

龙哥盟 1135
上一篇: linux命令++
下一篇: 计算机网络stage2
MexLink?IN.EX?
博客等级 码龄7年 1粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值