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


    前言

    一个小原理

    CPU在时钟信号的控制下解释、执行内存中存储的程序,按照程序中的指令从内存或I/O中把数据输入到CPU中,在CPU内部进行运算,再把运算结果输出到内存或I/O中。
    无论是小型微型计算机,还是个人的高性能计算机,原理都基本相同。
    在这里插入图片描述

    计算机的三个根本基础

    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 #输出路径
    
    • 1

    该指令将输出五列:

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

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

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

    可以看到互联网服务商到本计算机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服务器
    
    • 1

    默认输出本机 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缓存表
    
    • 1

    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">
    
    • 1

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

    • XML声明形如:
    
    
    • 1
    • XML实例是文档中通过标签被标记的部分

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

      形如:

      DOCTYPE xxx[
      一些格式要求
      ]>
      
      • 1
      • 2
      • 3

      可以省略。

    解析XML的组件

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

    SAX(Simple API for XML)

    分布式计算

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

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

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

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

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

  • 相关阅读:
    Python编程 字符串的方法
    第0讲 课程介绍
    数据开发与数据治理的关系
    智能工厂建设整体解决方案
    使用java实现快速排序算法的性能测试
    @Transactional失效的几种情况说明
    微信小程序
    flask创建步骤
    Verilog 代码题练手 (2-1)
    C#学习记录——线程的简介及基本操作
  • 原文地址:https://blog.csdn.net/m0_59298585/article/details/133964388