一个小原理
CPU在时钟信号的控制下解释、执行内存中存储的程序,按照程序中的指令从内存或I/O中把数据输入到CPU中,在CPU内部进行运算,再把运算结果输出到内存或I/O中。
无论是小型微型计算机,还是个人的高性能计算机,原理都基本相同。
计算机是执行输入、运算、输出的机器。
计算机的硬件由大量集成电路 IC(intergrated Circuit) 组成。每块 IC 上都有很多引脚。
无论多么复杂的程序,最终都是由一个个 “输入、运算、输出” 组合出的流程单位实现的。
三者必须成套出现,缺一不可。
程序是指令和数据的集合
指令:控制计算机进行输入、运算、输出的命令。
数据:分两类。一类作为指令执行对象的输入数据,一类是从指令的执行结果得到的输出数据。
计算机的处理方式和人们的思维习惯不同
“汉诺塔”问题
硬件和软件,好比小霸王游戏机和插入游戏机的游戏卡一样。
也可以比作人的肉体和精神。缺一不可,相辅相成。
应用
根据三大原则理解一项“不好理解”的话:
2020年2月14日 微软公司率先提出了作为新一代互联网平台的*.NET*技术。作为.NET核心的XML Web服务使用通用技术SOAP、XML,促使企业间的计算机协同工作。
三大原则的理解:
计算机只是个执行程序的机器,程序是指令和数据的集合。
指令:SOAP是关于调用指令的规范,
数据:XML是定义数据格式的规范,
更方便执行程序:部署在其他计算机上能执行某种运算的程序叫做 XML Web 服务。
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 子网掩码 | Gateway | Interface 接口 | Metric 跃点数(权值) |
---|---|---|---|---|
数据发送的目的地 | 区分网络地址/主机地址 | 路由器IP地址 | 路由器要转发的目的端口 | 路径权重,由算法决定选择传输最优路径 |
如果目的地的IP就在本LAN中,则无需路由器转发,直接到达。
tracert #追踪路由转发过程,主机名是一个网址/计算机名
可以看到互联网服务商到本计算机LAN内的过程。
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。
作为被标识为最终接收者的网卡是MAC。
IP地址转换到MAC地址,需要一个程序:ARP(Address Resolution Protocol 地址解析协议)
ARP会向所有LAN内计算机广播(broadcast)询问,如果有某台计算机回复了 MAC 地址,则该计算机的 IP 和 MAC 对应明确了。
为提高查询效率,ARP会缓存。缓存构成的表叫ARP缓存表。
arp -a #查询ARP缓存表
- 1
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: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实例是文档中通过标签被标记的部分
DTD负责定义XML实例的结构
形如:
DOCTYPE xxx[
一些格式要求
]>
可以省略。
解析XML的组件
DOM(Document Object Model,文档对象模型)
SAX(Simple API for XML)
分布式计算
SOAP(Simple Object Access Protocol,简单对象访问协议)可用于 分布式计算。
分布式计算:把程序分散部署在用网络连接起来的多台计算机上,相互协作,发挥整体计算能力
调用程序时所需的参数信息 和 程序执行后的返回结果 都可以用通用数据格式 XML 标识。
往往多台计算机协作使用时,XML这种通用传输协议会非常实用。
就好比上大学遇到五湖四海的朋友时,普通话沟通往往最有效率。