What is The Internet?
What is The Internet?
Reading:
Watching:How the Internet Works in 5 Minutes
Outline:
互联网通过全球互联的计算机和服务器网络工作,通过标准化协议进行通信。数据被分解成数据包,并使用互联网协议 (IP) 通过各种网络节点进行路由。这些数据包通过不同的物理基础设施传输,包括光纤电缆、卫星和无线网络。传输控制协议 (TCP) 确保数据包在目的地可靠地传送和重组。域名系统 (DNS) 服务器将人类可读的网站名称转换为 IP 地址。当您访问网站时,您的设备会向相应的服务器发送请求,服务器会使用请求的数据进行响应。这个过程由路由器、交换机和其他网络设备推动,实现了远距离信息的无缝交换,构成了我们数字通信的支柱。
The note is aiming at:
- What is the Internet?
- How does the information move on the internet?
- How do the networks talk to each other and the protocols involved?
- What’s the relationship between packets, routers, and reliability?
- HTTP and the HTML – How are you viewing this webpage in your browser?
- How is the information transfer on the internet made secure?
- What is cybersecurity and what are some common internet crimes?
What is the internet?
互联网是一个由相互连接的计算机组成的全球网络,这些计算机通过一组标准化的协议进行通信。
互联网的历史有些模糊不清。它始于 1960 年美国军方资助的研究项目。1980 年在许多公共大学和公司的支持下,它演变为一种公共基础设施。随着时间的变化,各种各样的技术支持着互联网的发展,但是它的工作方式却没有改变多少:互联网确保所有的电脑之间的连接,无论发生什么他们依旧保持连接。
Wires, Cables, and Wi-Fi
互联网上的信息通过各种介质以 $bit$ 的形式从一台计算机移动到另一台计算机,包括以太网电缆、光纤电缆和无线信号(即无线电波)。
- 电缆 —— 廉价 —— 信号遗失
- 光缆 —— 快速 / NO信号遗失 —— 昂贵 / 实现艰难(很多时候铜缆代替)
- 无线信号 —— 方便 / 移动 —— 无法准确传递到较远的地方
- 但它可依赖有线网络,你所传送的二进制数据被传到无线路由器,再透过网路线等实体线路在互联网世界传递
但是本质都是:互联网中所有数据都会被转换为 0/1 ,再通过 电子脉冲、光束、无线电波 传递 信息
- 但它可依赖有线网络,你所传送的二进制数据被传到无线路由器,再透过网路线等实体线路在互联网世界传递
IP Addresses & DNS
1970年代,Vin Cerf 和 Bob Khan 发明了网络通信协议让互联网的沟通方式得以实现。
我们可能通过手机或笔记本透过WiFi上网,Wi-fi 则连接到互联网服务供应商 (Internet Service Provider , ISP),ISP进而透过数以万计相连接的网络让我们与世界上数亿的设备相连接。
鲜有人知的是,互联网是一种设计哲学,它由一组协议来表现的结构体系。而一个通信协议由一组公认的规则和标准组成。如果参与者都同意使用,就能彼此顺利沟通。
这时,互联网“实际上”如何运作显得没的么重要;更重要的是:它的设计哲学能够让互联网调整和纳入新的通信技术,这是因为新的通信技术只需要配合协定,就能以某种方式使用互联网。
所有设备在互联网中,都拥有一个独一无二的地址,即一组数字,类似于电话/街道地址。这些网络地址再一个范围内的网络内对每个电脑或其他设备都是独特的。
类似于家庭或公司都有邮件地址,我们无需认识对方,即可寄信给他,且,只需要知道他的地址以及如何正确书写地址,这样这封信才能通过邮寄系统送达目的地。互联网中电脑的$Addressing\ System$有类似的作用,并且这形成了最重要的通信协定之一:互联网协定(Internet Protocol, IP)。因而一个电脑的地址被称为:IP地址。
浏览一个网站即:你的电脑向另一个电脑征求信息。你的电脑向另一台电脑的IP位址发送信息,同时附带自己的IP位址,所以另一台电脑就知道要回复信息到什么地方。
我们或许都见过IP位址,它其实就是一连串数字,由“层级”构成,就像家庭住址:国家.城市.街道.门牌号码;IP地址也可分为许多部分,与所有数据一样,每一个数字都以位(bit)所表示,典型的IP位址的长度是32位,每一部分则有8位。前面的数字,通常可识别设备所在国家/区域;接下来表示子网域;最后则表示特定设备的地址。这个版本的IP协议,被称为$IPv4$,于1973年所设计,并在80年代初被广泛使用。它提供了超过40亿个独一无二的位址,让设备连接到互联网。
但是!互联网的popularity远比Vinf Cerf想象的更流行普及,40亿个不同的位址仍然不够,所以我们正处于转换到更长IP协议(IPv6)的过渡期中。$IPv6$的每一个位址的长度为128位,可提供超 $340×10^{33}$ 个不同的位址。这,就完全足够了!
但我们在互联网冲浪时,大多不曾见过或关心IP网络地址;而是遇见诸如:www.example.com
等的网址,这其实就是网域名称系统(Domain Name System , DNS) 可将对应的网域名称(www.example.com
)与对应的IP位址关联在一起。我们的电脑会使用DNS查询网域名称,来获得对应的IP以连接到互联网上的目的地。
那么如何设计这样一个系统:在数十亿个设备中找到正确的那一个IP?一台DNS服务器是无法处理这么平凡的查询操作的。解决方法是:让所有的DNS服务器以【分布式阶层】串联在一起,并以区域分开,针对主要网域( .org, .com, .net 等) 分开负责。
起初,DNS是为了政府和教育机关而设计的开放且公开的通信协定,因为DNS开放性,导致其很容易受到网络攻击的影响。有一种攻击:DNS spoofing —— Hacker入侵一台DNS服务器,并将网域名称修改对应到错误的IP地址;这样攻击者就能把人们传送到【冒名顶替】的假网站,继而若使用者真的使用了这个假网站,这会导致其收到更多问题的侵害。
(这里可以继续了解DNS的工作原理,通过下面给出的图链接)
互联网十分巨大,且每天变化增大;因此,DNS以及互联网协议都被设计为可持续扩充。
Package, Routing & Reliability
做一个假设,如果我们想要播放▶某个网站的音频,我们的计算机是直接连接到该服务器,然后该服务器在专用线路直接向你发送音频吗?事实显然不是。如果互联网是有专用线路连接构成,那么随着用户的增加,这样的工作会变得极为巨大繁杂以至不可能保持工作,特别是不能保证每根电线和电脑都能正常工作。So,相反的,数据更不是以直接的方式在互联网上传播。
互联网上的信息从一台计算机传输到另一台计算机不需要遵循固定路径;事实上,它可能在传输过程中改变路径。这种信息传输以数据包的形式进行,这些数据包可能会根据某些因素遵循不同的路线,就像我们出门旅行,根据交通拥堵和道路状况选择不同的路线达到同一个地方。
而就像可以在一辆车中装在任意物品传送,许多种数据信息可以用IP包发送,但也有一些限制。比如,我们如何将航天飞机装载到卡车里,将其从建造地点移动到发射地点?显而易见,这是不可能的。所以要将它分解成碎片,用一组卡车运输,而它们都可以采取不同的路线并在不同的时间到达目的地,一旦所有部件都到达后,就可以重新组装完整的航天飞机并发射。
在互联网中,细节亦是如此。如果要将特别大的图像或视频上传到而网站或发送给朋友,它可能由数以万计的01比特组成,数量太大无法集中于一个包发送;由于是计算机上的数据,图像可快速分解为数百甚至数千个较小的部分,被称作数据包。
与卡车不同,这些数据包没有司机,也未选择路线。每个包仅有它的来源和去向的IP地址。而互联网上,被称作路由器的特殊机器就像交通管理者一样,使得数据包顺利通过网络;而若一条线路拥堵,个别数据包肯呢个通过互联网进入不同的线路;它们可能在不同的事件到达目的地,甚至出现故障。
作为互联网协议的一部分,每个路由器都用于跟踪发送数据包的多条路径,并且根据数据包目的IP地址为每个数据包选择最“便宜”的可用路径(在这里,便宜不是指价钱成本,而是时间和政治、公司之间的关系等非政治因素)。通常,数据传输的最佳路径并不一定是最直接的。
对路径有多种选择回使网络容错。换句话说,即时发生了什么可怕的错误,网络也能继续发送数据包;这就是互联网关键原则的基础:可靠性。
我们或许还会产生这样的疑问:如果我想请求部分数据而非全部数据呢?如果我想听一首歌如何确定所有数据100%被传输以便完美播放呢?答案是:传输控制协议(Transmission Control Protocol , TCP)。TCP以数据包的形式管理所有数据的接受与发送,类似于一个被管控/保障着的邮件服务。
当你在计算机上请求一首歌曲时,发送端会将一首歌分解为多个数据包,当数据包到达,TCP会进行完整地清点并回复以确认收到每个数据包;若所有数据包都在那里,TCP会“签收”你的交付,你就成功收到了歌曲;相反的则不会签收,而对于每个不完整或丢失的数据包,TCP会去请求发送端重新发送它们。然后,TCP一旦验证了歌曲的数据包齐全,才会把数据交给应用层,歌曲才会开始播放;不然的话,歌曲不会进行播放而处于暂停状态。
TCP和路由器系统(Router System) 的优点是它们是可扩展的,它们可以工作于8到80亿台设备。事实上,由于这些容错(tolerance)和冗余(redundancy)原则,添加的路由器越多,互联网就越可靠。更棒的是我们可以在不中断它服务的情况下增长和扩展互联网。
互联网由数十万个网络和数十亿台物理连接的计算机和设备组成,这些组成互联网的系统互相连接、互相通信并协同工作,皆因在互联网上传输数据的方式一致。
计算机设备或者网络上的路由器,帮助所有的数据包到达目的地,若有必要在那里重组。这种情况每天发生数以亿次,发送e-mail、浏览网页、视频会话、使用移动app、或互联网上的传感器或设备相互通信时,它都会发生。
HTTP & HTML
网页浏览
- 打开Web浏览器,如:谷歌、火狐、IE等 —— 用来访问网页的应用
- 键入Web地址或URL(Uniform Resource Locator),如:youtube.com —— 想访问的网站的同一资源定位器
在键入Enter后发生了什么,这就是我们所要讨论的。
在enter之后,我的计算机开始与被称作服务器的另一台计算机通话,距离通常数以千里。在几毫秒内,我的计算机向该服务器请求网站,然后服务器以称作HTTP的语言与我的计算机回话。
**HTTP,HyperText Transfer Protocol(超文本传输协议)**,可以看作为一台计算机向另一台计算机索取文档的语言。并且实际上它及其简单。它主要由“Get”请求的东西组成,所以我们尝试登陆油管,就是向油管的服务器发送一个Get请求,上面写着get/login;这告诉服务器我需要登陆界面的所有HTML代码。
所以HTML可以视为告诉Web浏览器如何做一个页面外观的语言。例如维基百科就是一个简单的大文档,HTML使它的字体成为正确的字体,使标题变大加粗,使一些文本斜体,链接,图像放在哪边等。
网页文本是直接包含在HTML之中;但图像或视频等其他部分是具有自己需要的URL的独立文件的,浏览器向他们每一个发送单独请求并在它们到达时显示它们。也因此,我们在浏览一些具有许多不同图像的网站,会使网页加载速度减慢,因为每个图像产生一个单独的HTTP请求。
除了GET请求的页面,有时我们发送信息,如输入搜索查询,浏览器使用POST请求将此信息传输到Web服务器上。就比如登录一个网站,填写账户,密码,发送一个POST请求到服务器,服务器发现这是你,它再发送一个网页写着:Success: 登陆者为谁谁谁,但是除了网页之外,它还附加了一些不可见的cookie数据,浏览器可以看到并知道如何保存这些数据。这是网站记住你是谁的唯一方式,并且浏览器会保存你的号码,在下次刷新时,Web浏览器会自动知道将该ID号附加发送给服务器的请求中,也就是说:服务器可以看到你的请求以及ID号,并且知道这是你的请求。
由于互联网完全开放,且所有连接共享,和信息以纯文本的形式发送,黑客就有机会窥探到你通过互联网发送的任何个人信息。但是安全网站阻止了这一行为,通过要求Web浏览器使用安全套接字层Secure Sockets Layer and its succeccor传输层安全 Transport Layer Security 在安全通道进行通信。换句话说,SSL和TLS作为围绕通信的安全层保护它们免遭窥视及篡改。
当你看到浏览器地址栏显示HTTPS旁边的小索🔒时,SSL和TLS是活动的。HTTPS协议确保你的HTTP请求是安全的、受保护的。
当网站询问你的浏览器来进行安全链接,网站首先提供数字证书,就像官方身份证证明它是它声明的网站。数字证书由证书颁发机构发布,证书颁发机构是验证网站身份并为其颁发证书的受信任实体,就像政府颁发签证或护照。如果网站在没有证书的情况下启动安全连接,浏览器会发出警告。
总而言之,HTTP&DNS管理HTML,媒体文件,或Web上任何内容的发送和接受。让着成为可能的是TCP/IP和路由器网络,它们以小数据包的形式分解和传输信息。这些数据包本身由01序列(二进制序列)组成,并通过电线、光纤和无线网络物理上进行发送。
这些层将一起工作,以规模和可靠性先后传输信息。
Encryption & Public Keys
互联网是一个开放的公共系统,我们在共享的线路传输与接送信息,当然包括大量的私密数据,如:信用卡号码、账户信息、密码……
那么这些私人事物要如何保密?通过被称作加密(Encryption) 的程序:混乱或改变信息来隐藏原始内容,任何类型的数据得以保密;而解密(Decryption) 是一个重排的过程,得以让数据变得可读。
这种想法其实已有几个世纪了,一个经典的加密方法——【凯撒密码】最为人知。它以凯撒大帝命名,这位将军将军命令加密以确保被敌方拦截也无法被解读。
凯撒密码的演算规律:将原文中每个字母,按顺序替换为向下一定间隔数量的字母。而这个数量只有信息的发送与接收者知道,即被称作“密钥”,它使接受者能够解开加密信息。
一个例子:
- 原信息【HELLO】
- 使用凯撒密码方法加密,密钥是5
- 加密后信息【MJQQS】
- 而接收者只需将字母向上回滚(反转)密钥5个数就得到原信息
但是这有一个大问题,在英文字母表中只有26个字母,这意味着只需尝试26个键就可得到解秘消息,也就是说破解加密信息太过容易。
所以一个改善版是:将每个字母横移不同的数量,而不是固定的数量。例如:利用10位长度的密钥加密信息(显示每个连续字母要哦更改的位置)
人要猜到这个密钥十分困难,因为使用10位加密,密钥就会由 $10^{10} = 10$ 亿种不同的密钥组合。
但是对于当今普通计算机来说,这只需要几秒就可尝试100亿种不同的可能组合。所以怎样可以让它更困难已难以破解呢?(这里,太困难指有太多的可能而无法在一个合理的时间被计算出来)
现在的安全通信使用256位长度的密钥来加密,这表示:当坏人拦截了信息,他需要尝试多种可能的密钥才能找到正确的以破解信息。即时拥有100,000台超级计算机,要尝试100万亿可能的密钥。这也需要大概数十年的时间,才能穷尽。
当然,计算机芯片的速度每年翻倍增长(摩尔定律?)。如果这种指数级的发展速度持续下去,今天不能解决的问题将在未来的几百年解决,那么256位的密钥也不足以保证安全。
事实上,我们已经不得不增加标准密钥的长度来跟上计算机的速度。
好消息是,增加密钥的长度不会使加密解密过程变得复杂,但他会成倍增加破解密码所需要的猜测次数。
当发送方与接收方使用相同的密钥对信息进行加密和解密,称作对称加密,例如:Caesar Cipher。这样密钥就需要两个人事先私下商定,这或许很好。但是互联网是开放的,所以两台计算机不会私下见面。所以,相反的,计算机间使用非对称密钥加密(Asymmetric encryption),即:有一个公钥可以与任何人交换,而一个私钥不被共享。公钥用于加密数据,任何人都会使用它来创建一条秘密信息,但秘密数据只有具有私钥权力的计算机才能解密。
类比,就如同一个个人邮箱,任何人都有钥匙🔑来打开并将邮件存入邮箱,这个钥匙(公钥)可能被你复制多分寄给你的朋友也可以直接公开,So任何人都有可以利用公钥向你的邮箱发送消息。但是只有你自己拥有私钥打开邮箱,访问收到的所有秘密消息。当然你也可以通过你朋友的公钥将秘密消息发送到朋友的邮箱。这样,人们就不需要私钥达成一致的情况下才能安全地交换消息。
公钥密码学是开放互联网上所有安全的消息传递的基础,包括SSL和TLS的安全协议,它们在我们浏览互联网的时候保护我们。现在,可以看看你进入的网站,只要在浏览器地址栏看到🔒或https,就意味着正在使用公钥加密与所在的网站安全的交换数据。
Cybersecurity and Crime
不必多说,网络犯罪造成巨大的安全问题,不论个人、社会还是国家。信用卡密码被盗、社会安全号码和医疗记录被泄露、核离心机被入侵、无人机被劫持,这样的例子数不胜数。这些都是通过硬件或软件上的漏洞来实现的,或者更常见的,利用使用软件的人无意间做的决定实现的。
就像现在各个国家不仅需要正规的海陆军,而且拥有一支精良的网络军队。事实上,接下来的战争很多都是信息战,往往不是传统武器,而是入侵他国系统以切断供水、能源网络和运输系统。
这也是为什么网络安全如此重要的原因之一。
让我们来看看网络犯罪是如何运作的?
- SoftWare viruses(VIRUSES) - 软件病毒
- denial-of-service attacks(DDoS) -拒绝服务攻击
- phishing sacms(PHISHING) - 钓鱼诈骗
病毒的工作原理类似于生物学上的病毒,它是一种可执行程序,通常被无意安装,会伤害用户和他们的计算机。那么病毒是如何进入我们的电脑呢?
攻击者可能通过下面几种方式:
- 诱使受害者安装一个程序,通常被伪装来欺骗使用者。如:病毒被伪装为安全更新;
- 或者电脑上的软件带有漏洞,所以攻击者可以使病毒在不需要许可的情况下自行安装。
病毒一旦进入计算机,就可以窃取或删除你的文件、控制其他程序,甚至允许其他人远程控制计算机。
利用计算机病毒,黑客或可以占领全球数百万台计算机,然后利用它们作为数字大军即:僵尸网络,攻击和摧毁网站,这种攻击就被成为**分布式拒绝服务(DDoS)**。
拒绝服务攻击是指黑客使用过多的请求淹没一个网站,而当攻击同时来自多台计算机,就被称为分布式拒绝服务攻击。
大多数网站已经准备好每天响应数百万个请求。但是如果从不同地方向它们发送数十亿或数万亿的请求,计算机就会过载并停止响应。
另一个惯用伎俩是发送大量垃圾邮件,试图欺骗人们分享敏感的个人信息。这被称作网络钓鱼诈骗。它是当你收到一封看似可信的邮件,要求你登陆你的账户,但点击这封邮件,他把你带到一个虚假的网站,不论如何,只要你登陆了网站,密码就会泄露出去。黑客可以使用你的登录凭证来访问你的真实账户,窃取信息甚至💴。