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

文章目录

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

前言

一个小原理

CPU在时钟信号的控制下解释、执行内存中存储的程序,按照程序中的指令从内存或I/O中把数据输入到CPU中,在CPU内部进行运算,再把运算结果输出到内存或I/O中。
无论是小型微型计算机,还是个人的高性能计算机,原理都基本相同。
《计算机是怎样跑起来的》计算机三大原则、TCP/IP、xml_第1张图片

计算机的三个根本基础

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

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

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

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

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

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

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

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

    《计算机是怎样跑起来的》计算机三大原则、TCP/IP、xml_第2张图片
    “汉诺塔”问题

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

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


应用

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

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互连起来,共同组成互联网。

《计算机是怎样跑起来的》计算机三大原则、TCP/IP、xml_第3张图片

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

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

《计算机是怎样跑起来的》计算机三大原则、TCP/IP、xml_第4张图片

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 中的路由器交换着信息。这种信息叫做“路由表”,用来记录数据应该转发到哪里。

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

《计算机是怎样跑起来的》计算机三大原则、TCP/IP、xml_第5张图片

几条命令:

route print #输出路径

该指令将输出五列:

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

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

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

可以看到互联网服务商到本计算机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端口号识别上层应用程序,并且预先定义好了一些端口用于专门用途。

《计算机是怎样跑起来的》计算机三大原则、TCP/IP、xml_第6张图片

基本概念的阐述

概念:

  • 机器语言:用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实例是文档中通过标签被标记的部分

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

    形如:

    DOCTYPE xxx[
    一些格式要求
    ]>
    

    可以省略。

解析XML的组件

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

SAX(Simple API for XML)

分布式计算

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

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

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

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

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

你可能感兴趣的:(tcp/ip,xml,网络,1024程序员节)