计算机网络知识(互联网是如何运作的?)

522 阅读14分钟

计算机网络

计算机网络是由一系列可用于通信的设备相互连接构成的。它在网络协议的支持下通过有线或无线传输媒介(比如电缆或无线信号)实现了计算机之间的数据通信和资源共享。计算机网络根据地理范围大小可分为局域网、城域网、广域网和互联网四种。

局域网

局域网(LAN)通常是与单个办公室、公司或校园内的几个主机相连的私有网络。它的地理范围一般在几米至几十公里之内。

特点:传输速率高一般在10Mbps~10Gbps。传输可靠性高,误码率通常在10-7~10-12(误码率指每传送n个位,可能发生一个位的传输差错)。结构简单,协议简单,容易实现,具有较好的灵活性。

常见的局域网:
  • 以太网(Ethernet)
  • 现在多数局域网都采用以太网标准,该标准是Xerox公司在20世纪70年代中期开发,后来IEEE(Institute of Electrical and Electronics Engineers)在此基础上制定了IEEE802.3标准,传输速率从10Mbps~ 10Gbps。
  • 无线局域网(WLAN)
  • 无线局域网是近十几年才流行开来的一种局域网,主要特点在于它是无线传输,特别适合商业应用,IEEE 为它制定了IEEE802.11标准,传输速率从11Mbps~54Mbps。

城域网

城域网(MAN)是在一个城市范围内建立的计算机通信网。城域网通常使用与局域网相似的技术,传输媒体主要采用光缆。实 际上城域网技术并没能在世界各国迅速地推广,而在实际中被广域网技术所取代。

广域网

广域网(WAN)一般是在不同城市和不同国家之间的LAN或者MAN网络互联,地理范围通常为几十公里到几千公里,它的通信传输装置和媒体一般由电信部门提供。

广域网的主要特点:
  • 传输速率低,传输误码率也较高。
  • 通信子网通常由电信部门负责建设,或借用现成的公共通信网络,不像局域网那样需要用户自己建设。
  • 结构复杂,协议复杂,投资大,实现周期长。
常见的广域网:
  • 公用电话网(PSTN)
  • 公用数据网(PDN)
  • 数字数据网(DDN)
  • 综合业务数据网(ISDN)
  • 帧中继网(Frame Replay,FR)
  • 千兆以太网(Gigabit Ethernet,GE)10GE的光以太网

互联网

互联网(Internet)又称网际网,依靠TCP/IP协议把世界上大大小小的网络连接在一起,形成一个互联互通的巨大网络。

把这些子网络连接在一起的关键设备,就是路由器。当一个数据包发送给路由器后,路由器根据数据包内的目标计算机地址———IP地址,判断目标计算机是否在子网络内部。如果在子网络内,则直接发送到目标计算机;如果不在,则把数据包发送到上一级路由器。上一级路由器重复这个判断过程,直到找到目标计算机为止。一般连接不同区域的网络,如城市或国家之间的网络,叫作“骨干网”。

目前全球有近百个骨干网,中国拥有九大骨干网。这些骨干网是国家批准的可以直接和国外连接的互联网。我们上网时需要先连接到订购的互联网服务提供商,再由它连接到骨干网,再通过骨干网连接到全世界。

TCP/IP协议

协议是一组用于指定计算机应如何通过网络来相互通信的规则。TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)协议共分为4层:应用层、传输层(TCP协议位于该层)、网络层(IP协议位于该层)、链路层,因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为 TCP/IP协议。

image.png

应用层

应用层负责提供特定于应用程序的协议,比如负责浏览器和网络服务器相互通信的HTTP协议,负责文件传输的FTP协议,负责电子邮件客户端检索邮件的IMAP协议,这些协议都有自己应答和识别的规范。

HTTP
默认端口是80端口
HTTP协议也就是超文本传输协议,是一种使用明文数据传输的网络协议。一直以来HTTP协议都是最主流的网页协议,HTTP协议被用于在Web浏览器和网站服务器之间传递信息,以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息。
HTTPS
默认端口是443
安全套接字层超文本传输协议HTTPS,为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL/TLS协议,SSL/TLS依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。HTTPS协议可以理解为HTTP协议的升级,就是在HTTP的基础上增加了数据加密。在数据进行传输之前,对数据进行加密,然后再发送到服务器。

传输层

传输层的作用是发送数据包到计算机上使用特定端口号的应用程序。传输层负责信息的可靠传输,他把应用层传来的信息分割成数据包,并加上地址信息标志,如目标计算机的地址、发起计算机的地址以及数据包的序号,发送给网络层。

TCP是一种面向连接的可靠字节流服务器协议,在收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来,其中的过程非常复杂,简单的描述这个过程:三次握手SYN,SYN-ACK,ACK 四次挥手:FIN,FIN+ACK,FIN+ACK,FIN,ACK。

image.png

网络层

网络层使用IP地址将数据包发送到特定的计算机。IP是不可靠的无连接协议,它并不关心数据包是否到达目的地,也不关心连接和端口号,它的工作是发送数据包并将其路由到目标计算机。

链路层

链路层负责将二进制数据包与网络信号相互转换。

系统结构

C/S(Client/Server)结构

(两层结构:客户端/服务器)软件分客户端和服务器端两部分,服务器端软件安装好后,其他人还需要在客户端的电脑上安装专用的客户端软件才能正常浏览操作。优点:速度快,体验好,界面炫酷。缺点:升级麻烦,维护成本较高。

B/S(Browser/Server)结构

(三层结构:浏览器/服务器/数据库) 软件只有服务器端,在服务器上安装相应软件和进行配置,客户端不需要进行任何安装和配置,使用浏览器就可以进行系统访问和系统控制,这样可以实现瘦客户端,大大简化了客户端电脑载荷。优点:升级方便,只升级服务端代码即可,维护成本低。

IP地址

IP地址是IP协议提供的一种统一的地址格式,它把每一个连接到互联网的设备标识出来。设备上的IP地址由ISP(互联网服务供应商)分配,同样,服务器也有一个IP地址,只要知道服务器的IP地址便可以访问网站。有一个叫做ICANN的组织专门来管理诸如IP分配、域名注册等事情。IP地址有两种标准:IPv4 (Internet Protocol version4)和IPv6。

IPv4

IPV4,它只有4段数字,每一段最大不超过255。可以用约36.47亿个,由于互联网的蓬勃发展,在2019年11月25日 IPv4位地址分配完毕。

IP地址根据网络号和主机号来分,分为A、B、C三类及特殊地址D、E。全0和全1的都保留不用。

  • A类:(1.0.0.0-126.0.0.0)(默认子网掩码:255.0.0.0)第一个字节为网络号,后三个字节为主机号。一般用于大型网络。子网掩码的作用是确定网络号的位数。
  • B类:(128.0.0.0-191.255.0.0)(默认子网掩码:255.255.0.0)前两个字节为网络号,后两个字节为主机号。一般用于中等规模网络。
  • C类:(192.0.0.0-223.255.255.0)(子网掩码:255.255.255.0)前三个字节为网络号,最后一个字节为主机号。 一般用于小型网络。
  • D类:是多播地址。224.0.0.1-239.255.2255.254。一般用于多路广播用户。
  • E类:是保留地址。240.0.0.1-255.255.255.255。

127.0.0.1,也是本机地址,等效于localhost或本机IP。一般用于测试使用。例如:ping 127.0.0.1来测试本机TCP/IP是否正常。

IPv6

互联网协议第6的缩写,是互联网工程任务组(IETF)设计的用于替代IPv4的下一代IP协议,由8组4位16进制数组成,约3.4x1038个地址,其地址数量号称可以为全世界的每一粒沙子编上一个地址。 IPV6和IPV4协议不同,不能直接使用,中间需要转换,所以现在IPV6还不能普及替代IPV4。

MAC地址

也叫局域网地址,或物理地址,MAC地址用于在网络中唯一标示一个网卡,一台设备若有一个或多个网卡,则每个网卡都需要并会有一个唯一的MAC地址。

端口

端口主要分为硬件端口和软件端,这里主要讲软件端口。 一个数据包包含:源端口,目标端口,源IP,目标IP等,端口主要用于监听数据包的数据是给哪个程序的,一个软件可以监听多个端口,常用的网站端口是80端口和443端口,可以省略不写。

DNS

DNS是一个分布式数据库,上面记录了域名和其IP地址的对应关系。在浏览器中输入网址时,浏览器首先连接DNS服务器,获取到该域名的IP地址后,浏览器在连接访问该IP的服务器。有了DNS后,之后服务器IP地址有了变化,重新绑定一下域名和新IP地址就可以了,这样就不会影响到访问站点的用户。

网络接口设备(网卡)

作用:网卡是计算机与传输媒体进行数据交互的中间部件,主要完成编码转换和收发信息。 类型:可根据接口类型、网络速率、总线类型、网络类型等进行划分。

image.png

路由器(Router)

路由器(Router)是连接两个或多个网络的硬件设备,在网络间起网关的作用,是读取每一个数据包中的地址然后决定如何传送的专用智能性的网络设备。它能够理解不同的协议,例如某个局域网使用的以太网协议,因特网使用的 TCP/IP协议。这样,路由器可以分析各种不同类型网络传来的数据包的目的地址,把非TCP/IP网络的地址转换成 TCP/IP地址,或者反之;再根据选定的路由算法把各数据包按最佳路线传送到指定位置。所以路由器可以把非TCP/IP 网络连接到因特网上。

互联网是如何运作的?

image.png

当我们在浏览器地址栏上输入一个地址并按下回车,我们将使用应用层的HTTP协议请求获取html,这时需要发送一个请求消息,消息在发送前会被分解为数据包,通过应用层进入传输层后,每个数据包都会被分配一个端口号,端口号用来确定目标计算机的哪一个应用程序要接受并使用该数据包,进入网络层后,每个数据包将会赋予目标计算机的IP地址,当数据包过大时,在网络层会进行分包,由于每个数据包在物理链路层走的物理链路不一样,传输速度也不一样,导致数据包没有按顺序到达目的地,但TCP会根据数据包上携带的序列号来进行排序重组,并且发送方在一个特定时间内没有收到接受方的ack确认时,则发送方会重新传送数据包。有个IP地址和端口号后,链路层将数据包的文本信息转译成电子信号,然后通过电缆传输,在电缆另一端的路由器检查每个数据包中的目标地址,并确定将其发送到何处,最终数据包到达服务器,然后数据包从TCP/IP协议族的底部开始向上运行,当数据包向上通过协议族时,客户端添加的所有路由数据例如IP地址和端口号都将从数据包中剥离出来,当数据到达栈顶时,数据包已经重新恢复成最初始的形式,通过端口号可以将数据传递给当前服务器,监听该端口的应用程序,应用程序根据当前请求数据做出反应,比如我们现在想获取index,html,服务器则会将路径index.html的数据通过刚才的方式返回给你的电脑,也就是客户端,这样便打开了一个网站,完成了客户端与服务端在互联网中的一次数据交互。

下面将从更广的角度来阐述个人电脑和服务器之间的互联网是怎么构成的。

当我们在浏览器地址栏上输入一个地址并按下回车键后,电脑会根据获取的DNS服务器地址找到DNS服务器,并查询这个域名所对应的IP地址,如果能查到的话,DNS服务器就会把IP地址发回来,如果这台DNS服务器查不到,它就会去访问根域名服务器,根服务器记录了哪些服务器是负责查.com的,哪些是查.cn的等等,根服务器一看是.xyz的,就会告诉我们应该去找这几台服务器,查到之后,就把IP地址发给电脑,得到IP地址后,数据会被打包,同时写上IP地址由电脑网卡转给路由器,路由器通过网线转给光猫(调制解调器modem),光猫通过橘黄色的光纤转出去,在由其他路由器转下去,直到转到目的地。路由器相当于快递的转运中心,IP地址相当于我们生活中的通讯地址,例如,广东省广州市海珠区新港西路135号,这个地址可以帮助快递员确认收货人的范围,但快递员具体怎么走,从成都出发有那么多条线路,他是先到陕西还是先到重庆呢,这个时候就要依靠MAC地址,这个MAC地址可以想象成我们的身份证号或者手机号,数据包在成都路由器的时候,路由器会根据数据包的IP地址帮我们选择一条最优的线路,告诉快递员下一站按这个MAC地址去找贵州路由器,到了贵州,路由器同样会根据数据包的IP地址选择一条线路,同时把数据包的MAC地址改为下一个路由器的,直到数据包被转到网站服务器的网卡上,网卡再根据端口号找到对应的应用程序,最后网站服务器就根据要求把数据发送到我们的电脑上,网页就显示在屏幕上了。