计算机概述系列目录
第五章 计算机概述(五)——计算机网路
文章目录
前言
学习计算机概述,目前参考资料来源《计算机科学速成课》(https://www.bilibili.com/video/BV1EW411u7th?p=3),以后逐步补充、更新。
本章主要讲述计算机网络如何形成的、网页是如何形成、如何访问的。
一、计算机网络进化史
计算机网络的出现,便于计算机之间的信息交换且共享了物理资源。
(一)以太网
最简单的形式:一条以太网电线连接数台计算机。当计算机需要传送数据给另一台计算机时,以电信号形式将数据传入电缆。
问题一:电缆是共享的,处于同一网络的计算机都可以收到该数据,如何指定接收的计算机。
解决方法:每台计算机有唯一的媒体访问控制地址(Media Access Control Address,MAC地址) ,作为每台计算机的标识。在发送数据,会将这个唯一的地址作为数据的前缀发送到网络中。计算机只有看到自己MAC地址才处理数据。
问题二:共享载体会存在写入数据时载体冲突的问题。当网络流量少时,计算机可以等待载体清空后传送数据;网络流量上升时,两台计算机同时写入数据的概率上升(冲突)。
解决方法:
- 停止传输,计算机检测到冲突时,等待网络空闲再试一次。但如果其他等待中的计算机也采用同样的方法,结果就是冲突越来越多;
- 以太网采用的简单办法:遇到冲突时,让计算机等待一段时间后再重新上传数据。为了避免所有计算机等待时间相同以及减少冲突次数,等待时间采用指数退避(Exponential Backoff),即先等待0~1秒+随机时间,如果还拥堵,则时间变为0~2秒+随机时间,0~4秒+随机时间。
问题三:当计算机越来越多时,仅用一跟电缆连接,会增加冲突,传输效率也会变慢。
解决方法:减少同一载体中设备的数量——使用交换机(switch)将一个冲突域拆分成更小的网络。交换机会记录MAC地址在哪个网络中,这样不跨网络的数据传输就可以同时进行,不用考虑冲突问题。
问题四:当计算机之间相距较远时,如何解决数据传输问题。
解决方法:
- 直接分配一条专用的通信线路连接两台计算机。单人使用冲突少,多人使用需要等待线路空闲,且成本高。
- 报文交换(Message Switching)。在距离较远的两台计算机或网络之间,建立多个站点(路由Routing),这样两台计算机之间的传输路线就有多种可能,以此减少冲突且容错性、可靠性更高。
问题五:报文交换时如果报文较大时,需等该文件传到下一站点才能传另外的数据,这样会导致道路阻塞。
解决办法:分组交换(Packet Switching)。将大报文分成很多小块,称为数据包(Packets),传输数据包即可,每一个数据包都有目标地址,由互联网协议(Internet Protocol,IP)定义,每一个计算机都有一个IP地址。此外,由于报文被分成多个数据包,在进行报文交换时数据包达到目的地的顺序不同,为了解决乱序问题应遵循TCP/IP协议。
- 多台电脑共享一个传输媒介的方法,称为“载波侦听多路访问”(Carrier Sense Multiple Access,CSMA)。
- 载体(carrier)指运输数据的共享媒介,如以太网的载体为铜线,WIFi载体为传播无线电波的空气。载体传输数据的速度称为带宽。
- 载体和其中的设备总称为“冲突域”(Collision Domain)。
- 跳数(hop count):消息沿着路由跳转的次数。路由记录跳数能够避免数据在路由之间反复跳动的问题、节省带宽。(eg:A认为到C的最快路径是B,B认为到C的最快路径是A,这样数据就会在A、B之间反复横跳,这时检测到跳数很高,以此判断出错的路由——跳数限制(Hop Limit))
- 阻塞控制:路由器(routers)会平衡与其他路由器之间的负载,以确保传输可以快速可靠。
- IP地址和MAC地址的区别:MAC地址具有唯一性,出厂时固定,分配基于制造商,转发数据帧;IP地址不唯一,可更改,分配基于网络拓扑,转发报文。
二、互联网协议
互联网是一个巨型分布式网络。
(一)计算机通过互联网访问网站过程
数据包——局域网——广域网——互联网主干——网站服务器
发送的数据包连接局域网(由家里路由器连接所有设备构成) ,局域网再连到广域网(Wide Area Network,WAN)。WAN的路由器一般属于互联网服务提供商(Internet Service Provider,ISP,如中国电信、移动等)。WAN中,先连到一个区域性路由器(可能覆盖一个街区),在连到一个更大的WAN中(如包含整个城市的),最终达到互联网主干(由一群超大型、带宽超高路由器组成),再从换联网主干跳到网站的服务器。
(二)数据包在互联网上传输需遵循的标准
1、数据包达到计算机——互联网协议(IP)
数据包头部只为目标地址,即IP只是让数据包传到对应的计算机中。
2、数据包达到程序
- 用户数据报协议(User DataGram Protocol,UDP)
UDP的头部中存储着端口号、校验和等信息。
端口号就是访问网络的程序向操作系统申请的、用于识别程序的序号。接收方接受信息时,就会读取该端口号找到正确的程序。
校验和(checksum)用于检查数据是否正确。校验时,会将DATA中的数据相加,之和与校验和进行对比,以判断数据是否有丢失。
优点:速度快、简单
缺点:不提供数据修复或数据重发的机制,即接收端判断出数据有误只能扔掉,发送端无法知道数据是否到达。
- 传输控制协议(Transmission Control Protocol,TCP)
TCP的头部除了含端口和校验和之外,还有许多功能如下:
(1)TCP数据包的序号。序号使接收方把数据包排成正确顺序。
(2)TCP确认码。TCP会要求接收方收到数据包并校验和之后,向发送方发一个确认码(acknowledgement,ACK),表示数据全部达到,发送方收到确认码后才发送下一个数据包,未收到,发送方会再发一次。
优点:可以处理乱序;确认码的成功率和来回时间,可以推测网络的拥堵程度,TCP根据该信息同时调整发包数量,以解决拥堵问题。
缺点:由于多了确认码,速度相对较慢,不适合对时间要求较高的程序
(三)域名系统(Domain Name System,DNS)
基本原理:将域名与IP一一对应,方便记忆网址,类似于电话本。当在浏览器中输入域名(即网址)后,浏览区会通过DNS服务器(ISP提供),得到该网址的IP地址。
DNS存储的是树状结构,以方便管理。
(四)网络通信模型——开放式系统互联通信参考模型(Open System Interconnection Model)
物理层:载体中的电信号、WIfe信号
数据链路层:负责操控物理层(有MAC、碰撞检测、指针退避等)
网络层:负责各种报文交换和路由
传输层:UDO和TCP协议(负责计算机之间进行点到点的传输)
会话层: 使用TCP和UDP创建连接,传递信息,然后关掉连接。
三、万维网(World Wide Web)
万维网是通过互联网传输数据最多的网页集合。最基本的单位是单个页面,通过超链接(Hyperlinks)将单个页面集合起来,形成巨大的互联网络。
- 统一资源定位器(Uniform Resource Locator,URL)——提供超链接的基础
为便于网页之间相互连接,每一个网页都有一个唯一的地址,成为URL。
定位过程:以pidaxia.com/courses为例
计算机首先通过DNS查找到pidaxia.com的IP地址,浏览器通过TCP连接到IP,该地址运行着网络服务器。然后向服务器请求coures页面。 - 超文本传输协议(Hypertext Transfer Protocol,HTTP)——计算机与服务器之间的沟通
超文本传输协议中规定了多个指令。如通过GET指令得到想到的页面。
向服务器发送指令GET /courses,服务器就会返回该地址对应的网页,让浏览器渲染到屏幕上。
- 超文本标记语言(Hypertext Markup Language,HTML)——超链接标识表示
超文本的存储和发送都是以普通文本形式,无法区分出哪些是超链接。解决办法通过HTML来表示超文本。
四、浏览器(Browsers)
作用:与网页服务器沟通,获取网页和媒体并显示。
问题:如果不知道域名如何获取网页。
解决办法:
- 人工编辑目录,通过将网页分类的形式查找网页,如万维网指南。
- 搜索引擎
搜索引擎由以下三部分构成:
一是爬虫。跟着链接跑的软件,每当看到新链接就加进自己的列表。——相当于链接容纳箱。
二是不断扩张的索引。记录访问过的网页上出现过的词。——相当于网页的特征。
三是查询索引的算法。——如何提取特征
早期采用排名算法,即搜索排序取决于搜索词在网页中出现的次数,次数高的在前。但容易出现恶意在网站中添加搜索词的情况,比如全是CAT单词的页面。规避的算法(Google搜索引擎):看其他网站有没有链接这个网站,链接多的网站在前,而垃圾网站就会被甄别。