《计算机是怎样跑起来的》计算机三大原则、TCP/IP、xml

news2024/10/6 21:11:47

文章目录

    • 计算机的三个根本基础
    • TCP/IP 网络的简单理解
      • 向路由器更进一步
      • DNS服务器
      • IP 地址和 MAC 地址的对应关系
      • TCP 的作用以及 TCP/IP网络的层级模型
    • 基本概念的阐述
    • XML

计算机的三个根本基础

  1. 计算机是执行输入、运算、输出的机器

    计算机的硬件由大量集成电路 IC(intergrated Circuit) 组成。每块 IC 上都有很多引脚

    无论多么复杂的程序,最终都是由一个个 “输入、运算、输出” 组合出的流程单位实现的。

    三者必须成套出现,缺一不可。

  2. 程序是指令和数据的集合

    指令:控制计算机进行输入、运算、输出命令

    数据:分两类。一类作为指令执行对象的输入数据,一类是从指令的执行结果得到的输出数据。

  3. 计算机的处理方式和人们的思维习惯不同

    在这里插入图片描述
    “汉诺塔”问题

硬件和软件,好比小霸王游戏机和插入游戏机的游戏卡一样。

也可以比作人的肉体和精神。缺一不可,相辅相成。


应用

根据三大原则理解一项“不好理解”的话:

2020年2月14日 微软公司率先提出了作为新一代互联网平台的*.NET*技术。作为.NET核心的XML Web服务使用通用技术SOAP、XML,促使企业间的计算机协同工作。

三大原则的理解:

计算机只是个执行程序的机器,程序是指令数据的集合。

  • 指令:SOAP是关于调用指令的规范,

  • 数据:XML是定义数据格式的规范,

  • 更方便执行程序:部署在其他计算机上能执行某种运算的程序叫做 XML Web 服务。

TCP/IP 网络的简单理解

TCP/IP:传输控制协议和网际协议:Transmission Control Protocol/Internet Protocol。

LAN :Local Area Network (局域网)把办公室内的小规模网络称作LAN;

WAN:Wide Area Network (广域网) 把互联网一样联结企业和企业的大规模网络叫做WAN。

以家用路由器为例,WAN口连光猫,从而连接到网络。LAN口连电脑之类的电子设备,即有线网络。

MAC : Media Access Control:标识网卡的编号。

几乎所有网卡上市前都分配了一个不可变更的 MAC 地址。

网卡 NIC Network Interface Card :每一块网卡的ROM(Read Only Memory 只读存储器)里,都预先烧录了唯一的MAC地址。

由制造厂商的编号和产品编号两部分组成,所以独一无二。

服务器 Server :服务的提供者。

客户端 Client :服务的利用者。

在服务器上运行的程序为客户端提供服务。

集线器 Hub:把各台计算机的网线相互连接在一起的集线设备。

路由器 Router:把局部区域内的网络和互联网连接起来的设备。

路由器则负责把LAN接入到WAN上:一端连接互联网提供商的路由器,服务商继续将他们的路由器连接到其他地方,直到汇入互联网主干线缆上。

以企业内的LAN为一个基本单位,通过服务提供商的路由器把他们和其他企业的LAN互连起来,共同组成互联网。

在这里插入图片描述

光猫 Optical Network Unit,ONU:通常由网络服务提供商提供给用户。它充当了将光纤信号转换为电信号的桥梁,以便我们可以连接到宽带互联网。

光猫通常与光纤入户(FTTH)连接,并将光信号转换为以太网信号,以供我们使用。

在这里插入图片描述

IP 地址:MAC地址花样繁多,查找效率太慢。因此必须对计算机进行分组管理,除了硬件上的MAC地址,还需要设定一个软件编号,即IP 地址。

设定好 IP 地址的计算机为 ”主机(Host)“ 。路由器也是计算机,也有IP地址。IP地址的值也是独一无二的。

IP 地址中,把表示分组(LAN)的部分叫做”网络地址“,把表示计算机的部分叫做“主机地址”。

**子网掩码:**标识出 32 byte 的IP地址里,哪一位到哪一位是网络地址,哪一位到哪一位是主机地址。

转换成二进制后,值为1的则是网络地址,值为0的即主机地址。

DHCP :Dynamic Host Configuration Protocol(动态主机设置协议)

记录着可以被分配到 LAN 内计算机的 IP 地址范围和子网掩码的值

默认网关 Gateway:通常把路由器 IP 地址设置在网关上。可以说 路由器就是从 LAN 通往互联网世界的入口(网关)。

路由器的 IP 地址也可以从 DHCP 服务器获取。


向路由器更进一步

路由器是决定数据传输路径的设备。

分组管理下,IP 地址中的网络地址部分能代表一个 LAN 中的全体计算机。

互联网则是路由器把多个LAN连接起来的大网。

路由器的工作原理是查看附加到数据上的IP地址中的网络地址部分

不属于LAN内计算机的ip地址,会被附加到数据的发送目的地字段上。这会被LAN内计算机忽略,但不会被路由器忽略。

只要不是发给LAN内的,就发送到LAN外。

分布在世界各地的 LAN 中的路由器交换着信息。这种信息叫做“路由表”,用来记录数据应该转发到哪里。

路由器的路由表中只会记录通往相邻路由器的路径,而不会记录世界上所有传输路径。

在这里插入图片描述

几条命令:

route print #输出路径

该指令将输出五列:

Network Destination 网络目标Netmask 子网掩码GatewayInterface 接口Metric 跃点数(权值)
数据发送的目的地区分网络地址/主机地址路由器IP地址路由器要转发的目的端口路径权重,由算法决定选择传输最优路径

如果目的地的IP就在本LAN中,则无需路由器转发,直接到达。

tracert <host_name> #追踪路由转发过程,主机名是一个网址/计算机名

可以看到互联网服务商到本计算机LAN内的过程。

DNS服务器

DNS :Domain Name System 域名系统。

FQDN :Fully Qualified Domain Name 完整限定域名:把主机名和域名结合起来的域名。

  • DNS 如同助记符一样,代替了难以记忆的 IP 地址。DNS 服务器能够自动把 FQDN 解析为 IP 地址(此过程为域名解析)。

  • DNS 服务器通常部署在各个 LAN 中,里面记录着 FQDN 和 IP 地址的对应关系表。

  • 世界范围内,各个DNS服务器是相互合作的,一台DNS服务器解析不了,就会询问另一台。询问成功后就会存储在本地DNS服务器中。

通常《主机名.域名》即FQDN。

nlookup  #询问DNS服务器

默认输出本机 LAN 内的 FQDN 和 IP 地址。

也可以查询其他域名的 FQDN 和IP。

IP 地址和 MAC 地址的对应关系

作为被标识为最终接收者的网卡是MAC。

IP地址转换到MAC地址,需要一个程序:ARP(Address Resolution Protocol 地址解析协议)

ARP会向所有LAN内计算机广播(broadcast)询问,如果有某台计算机回复了 MAC 地址,则该计算机的 IP 和 MAC 对应明确了。

为提高查询效率,ARP会缓存。缓存构成的表叫ARP缓存表。

arp -a  #查询ARP缓存表

TCP 的作用以及 TCP/IP网络的层级模型

IP 协议:指定数据发送目的地的IP地址 以及通过路由器转发数据。

TCP 协议:通过数据发送者和接收者相互回应对方发来的确认信息,可靠的传输数据。(握手 handshake)

TCP协议还有一个规定是先把原始的大数据分割成以“包”(packet)为单位的数据单元,然后再发送。接受者则需要把收到的包重新拼装在一起还原原始数据。

计算机发送的数据,是以包为单位的,附加了各种各样信息的数据。

硬件上发送数据的是网卡,网卡之上是设备驱动程序(控制网卡这类硬件的程序),驱动程序之上是实现了IP协议的程序,IP程序之上是实现TCP协议的程序,再往上才是应用程序。

TCP协议使用TCP端口号识别上层应用程序,并且预先定义好了一些端口用于专门用途。

在这里插入图片描述

基本概念的阐述

概念:

  • 机器语言:用0和1两个二进制数书写的编程语言。

    最贴合硬件。机器语言相同,不同的CPU类型会得到不同的结果。

  • 汇编语言:亦称为符号语言。在汇编语言中,用助记符代替机器指令的操作码,用地址符号或数字代替指令或操作数的地址

    人类所能读懂的,最贴合底层的语言。设备不同,机器语言指令集也不同。

    语法:标签,操作码,操作数。

    标签为某行代码对应的内存地址起名字。

    操作码是 做什么 的指令。

    操作数是 指令执行对象。

  • 编译:把 C语言 等编程语言编写的文件(源文件)转换成用机器语言(原生代码)编写的文件。

  • 编码:计算机用数字表示一切。

    以字符举例:计算机内部会先把文字转换成相应的数字再做处理,这样的数字叫做“字符编码”。

  • 面向组件编程:通过将组件(程序零件)组装到一起完成程序;

  • 面向对象编程:对现实世界的业务进行建模,再把模型搬到程序中。

  • IC 卡:IC card。计算机内部主要由各种 IC 元件 组成。

    功能各异的 IC 主要有三种:CPU、内存、I/O 。

    CPU(central processing unit)中央处理器 : 运算数据并控制内存和I/O。(解释执行程序内容)

    内存:存储指令和数据

    I/O:负责数据的输入和输出工作。

  • 时钟信号:

    含义 是 由内含晶振的、被称为时钟发生器的元件发出的滴答滴答的电信号。

    作用 是 作为计时器,保证电子组件同步运作。

    单位 是 Hz 频率。即时钟发生器发送给 CPU 的电信号的频率。

    把发出一次滴答的时间称作一个时钟周期。

    频率大小可以衡量CPU的运转速度。

XML

定义

xml:Extensible Markup Language 可扩展标记语言 :用于定义任意标记语言的元语言

html:HyperText Markup Language 超文本标记语言 :一般用来标记编写网页

把通过添加标签为数据赋予意义的行为称为 ”标记“。为标记定义规则的语言 即标记语言。

html用于编写网页,或者说决定了可用于编写网页的标签。

优势

可使用的标签种类决定了标记语言的规范及用途。

web浏览器会对html的标签进行解析,把由它们标记的信息渲染成我们乐于阅读的网页。

XML 的最大优越性便是,其使用者可以随心所欲的创造标签,这也是它作为元语言的根本。

XML 仅仅限定了进行标记时标签的书写格式,其数据是纯文本格式的,只包含字符。

遵循xml约束所写的文件就是xml文件。

现在的web服务器都集成了xml解析器,可以用这个功能来检查xml文件的书写格式。

xml主要用途:为在互联网上交换的信息赋予意义

W3C的推荐标准是不依赖于特定厂商的通用规范。XML即是一种通用的数据交换格式。

万维网联盟(World Wide Web Consortium,简称 W3C)创建于1994年,是Web技术领域具有权威和影响力的国际中立性技术标准机构。

CSV也是通用的数据交换格式之一。

缺点:因为创造了标签,xml文件的尺寸也往往更大。

结构

命名空间

标签名字相同,每个人赋予它的意义并不一定相同。所以一个W3C推荐标准是 XML命名空间(Namespace in XML)。

命名空间通常是一个能代表企业或个人的字符串,用于修饰限定标签的名字。

xmlns=<"namespace_name">

完整的XML文档有三个部分:XML声明、XML实例、DTD(Document Type Definition 文档类型描述)

  • XML声明形如:
<?xml version="1.0" encoding="Shift_jIS"?>
  • XML实例是文档中通过标签被标记的部分

  • DTD负责定义XML实例的结构

    形如:

    <!DOCTYPE xxx[
    一些格式要求
    ]>
    

    可以省略。

解析XML的组件

DOM(Document Object Model,文档对象模型)

SAX(Simple API for XML)

分布式计算

SOAP(Simple Object Access Protocol,简单对象访问协议)可用于 分布式计算。

分布式计算:把程序分散部署在用网络连接起来的多台计算机上,相互协作,发挥整体计算能力

调用程序时所需的参数信息 和 程序执行后的返回结果 都可以用通用数据格式 XML 标识。

往往多台计算机协作使用时,XML这种通用传输协议会非常实用。

就好比上大学遇到五湖四海的朋友时,普通话沟通往往最有效率。

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

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

相关文章

【C语言】进阶——程序编译

目录 一&#xff1a;&#x1f512;程序环境 程序的翻译环境和执行环境 &#x1f4a1;1.1翻译环境 预编译阶段&#xff1a; 编译阶段&#xff1a; 汇编阶段&#xff1a; 链接阶段&#xff1a; &#x1f4a1;1.2运行环境 二&#xff1a;&#x1f512;预处理详解 &…

进阶JAVA篇-深入了解 Set 系列集合

目录 1.0 Set 类的说明 1.1 Set 类的特点 1.2 Set 类的常用API 2.0 HashSet 集合的说明 2.1 从 HashSet 集合的底层原理来解释是如何实现该特性 2.2 HashSet 集合的优缺点 2.3 深入理解 HashSet 集合去重的机制 2.4 如何快速编写已经重写好的 hashCode 和 equals 方法 3.0 Tree…

空中计算(Over-the-Air Computation)学习笔记

文章目录 写在前面 写在前面 本文是论文A Survey on Over-the-Air Computation的阅读笔记&#xff1a; 通信和计算通常被视为独立的任务。 从工程的角度来看&#xff0c;这种方法是非常有效的&#xff0c;因为可以执行孤立的优化。 然而&#xff0c;对于许多面向计算的应用程序…

【Arduino TFT】基于 ESP32S3 S7789 240x240 TFT实现的SD2 天气时钟

忘记过去&#xff0c;超越自己 ❤️ 博客主页 单片机菜鸟哥&#xff0c;一个野生非专业硬件IOT爱好者 ❤️❤️ 本篇创建记录 2023-10-21 ❤️❤️ 本篇更新记录 2023-10-21 ❤️&#x1f389; 欢迎关注 &#x1f50e;点赞 &#x1f44d;收藏 ⭐️留言&#x1f4dd;&#x1f64…

口袋参谋:如何找蓝海词?带动店铺搜索流量!

​为什么店铺没流量&#xff1f;很多新手商家在优化标题的时候从来不找词&#xff0c;凭着自己的想象做标题&#xff0c;这种情况很难获得流量。 要想获得更多的流量&#xff0c;符合产品属性的蓝海词是我们当属首选&#xff0c;不用和红海词去竞争&#xff0c;更不用和比较有…

java springboot+VUE OA企业办公自动化系统前后端分离开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 springboot VUE OA企业办公自动化系统是一套完善的完整信息管理类型系统&#xff0c;结合springboot框架和VUE完成本系统 后端采用mybatis进行数据库交互&#xff0c;对理解JSP java编程开发语言有帮 助系统采用springboot框架&#xff08;MVC模式开发&#xff…

Pandas数据处理分析系列4-数据如何清洗

Pandas-数据清洗 ①缺失值处理 使用fillna()函数将缺失值替换为指定的值或使用插值方法填充缺失值 示例:df.fillna(0) #将缺失值替换为0 import pandas as pddf1=pd.read_excel("销售表.xlsx") # 检查每列是否缺失 print(df1.isna) 效果如下: import pandas as …

std::string_view概念原理及应用

概念 使用const string&作为参数是先使用字符串字面量编译器会创建一个临时字符串对象然后创建std::string。 或者一个函数提供char*和const string&参数的两个版本函数&#xff0c;不是优雅的解决方案。 于是需要一个只使用内存不维护内存的类。 原理 在visual s…

数据结构——三路划分(快排优化)

刷Leetcode时遇到的问题&#xff0c;用普通的快排去跑&#xff0c;发现有问题。 普通的Hoare或者其他的快排好像都没有直接解决掉这个问题&#xff0c;当一个数重复出现的时候&#xff0c;用普通的快排效率其实并没有那么高。所以&#xff0c;这也是普通快排的缺点之一。 所以&…

STM32F4X之GPIO

一、GPIO概述 主控芯片信息如下&#xff1a; 主频&#xff1a;168MHZ内核&#xff1a;ARM-M4FLASH:1MSRAM:192KB引脚&#xff1a;100GPIO:82电压&#xff1a;1.8~3.6V 1.1GPIO概念及其作用 GPIO概念&#xff1a;通用输入输出(General Purpose Input Output)&#xff0c;主要作用…

解决报错【error: Microsoft Visual C++ 14.0 or greater is required】

当我们在环境中pip install某些python的依赖包时,直接pip install有时可能出现如下报错: error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/,这说…

Linux搭建Redis环境

1. 基础环境 名称说明CentOS 7.6Linux操作系统版本redis-5.0.0.tar.gzRedis二进制安装包 2. 服务安装 服务端路径&#xff1a;usr/loacl/redis/redis-server客户端路径&#xff1a;usr/loacl/redis/redis-cli # 解压二进制包 [rootzhouwei resource]# tar -zxvf redis-5.0.…

IntelliJ IDEA 2023版本 Debug 时没有Force Step Into 按钮解决方法

IntelliJ IDEA 2023版本 Debug 时没有Force Step Into 按钮解决方法 force step into作用是能够去查看原码&#xff0c; 新版本idea默认移除了这个按钮&#x1f622; 那么让我们来把它找出来叭✋ 但是我们可以通过设置&#xff0c;使用step into就可以进入系统方法。 1.单击…

【TensorFlow1.X】系列学习笔记【入门二】

【TensorFlow1.X】系列学习笔记【入门二】 大量经典论文的算法均采用 TF 1.x 实现, 为了阅读方便, 同时加深对实现细节的理解, 需要 TF 1.x 的知识 文章目录 【TensorFlow1.X】系列学习笔记【入门二】前言神经网络的参数神经网络的搭建前向传播反向传播 总结 前言 学习了张量、…

react dispatch不生效的坑

一、前言 最近写react antd项目&#xff0c;在A页面中使用了dispatch方法&#xff0c;然后B页面中嵌套A页面&#xff0c;没有问题&#xff1b; 但是在C页面中嵌套A页面的时候&#xff0c;就发现dispatch方法没有执行&#xff0c;也不报错&#xff0c;就很奇怪&#xff1b; 还…

论坛介绍|COSCon'23 开源硬件(H)

众多开源爱好者翘首期盼的开源盛会&#xff1a;第八届中国开源年会&#xff08;COSCon23&#xff09;将于 10月28-29日在四川成都市高新区菁蓉汇举办。本次大会的主题是&#xff1a;“开源&#xff1a;川流不息、山海相映”&#xff01;各位新老朋友们&#xff0c;欢迎到成都&a…

navicate16在M1芯片运行问题

问题描述&#xff1a;本人M1芯片的mac&#xff0c;最近升级macOS14系统后&#xff0c;navicate15就总是闪退&#xff0c;如图 于是就安装了16的版本&#xff0c;但是16的版本不支持m1芯片电脑&#xff0c;如下图所示 于是就有了下面的操作&#xff0c;虽然能够使用了&#xff0…

【论文解读】The Power of Scale for Parameter-Efficient Prompt Tuning

一.介绍 1.1 promote tuning 和 prefix tuning 的关系 “前缀调优”的简化版 1.2 大致实现 冻结了整个预训练模型&#xff0c;并且只允许每个下游任务附加k个可调令牌到输入文本。这种“软提示”是端到端训练的&#xff0c;可以压缩来自完整标记数据集的信号&#xff0c;使…

数据图册页面(左边一列图片缩略图,右边展示图片大图)

最近要写这么一个页面&#xff0c;左侧一列图片缩略图&#xff0c;点击左侧缩略图后有选中效果&#xff0c;然后右侧展示图片原图&#xff0c;还能够左右翻页查看。 最后写了一个demo出来&#xff0c;demo还不是很完善&#xff0c;需要自己修改&#xff0c;后面我也给出了修改建…

发挥服务器的无限潜能:创意项目、在线社区和更多

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 ✨特色专栏&#xff1a…