互联网,英文名为Internet,音译为因特网。从广义上讲,互联网是指通过某种协议将网络与网络之间的设备连接在一起形成的一个巨大的网络。也就是说,不论使用何种技术,只要设备之间彼此能互相通信,由此所组成的网络就叫互联网,即使只有两台计算机相连,也叫互联网。从狭义上讲,互联网通常特指由上千万台设备在公共网络中使用TCP/IP协议互相通信组成的网络。它的特点是必须使用TCP/IP协议并且在公共网络中使用,否则它就只是局域网,而不是互联网。
互联网的起源并非人类计划的结果,而是美苏冷战的产物。在互联网面世之初,人们也没想到互联网能发展到如今走进千家万户,成为现代人生活必不可少的一部分。
互联网第一个传播标准“分组交换技术”产生于1961年,由美国麻省理工学院的伦纳德·克兰罗克(Leonard Kleinrock)博士首次提出。8年后,也就是1969年,美国国防部为了防止主要的一台计算机受到攻击致使全网的计算机都瘫痪的情况发生,从而研发了计算机网络系统,称为阿帕网(英文名为:ARPAnet)。阿帕网最初只对军方使用,而且在一起联网的计算机也只有4台。随着技术的发展和硬件设备的成熟,网络也逐渐对非军用开放,并且逐渐覆盖了全美境内。此时上网的计算机已经具有发送文本文件和访问远程电脑上资源的功能,也就是现在使用的E-mail、FTP和Telnet等功能。之后,网络又使用卫星技术实现了更广泛的连接。到1981年,网络发展到94个节点,并且分布在88个不同的地点,从此形成了互联网的雏形。
但由于最初的通信协议是按网络节点进行连接的,也就是对计算机联网的数量有限制,为了能使更多的计算机进行通信,在1983年美国国防部通信局研制了异构网络,从而实现了阿帕网从NCP协议向TCP/IP协议的转换。之后,美国加利福尼亚伯克莱分校把该协议作为其BSDUNIX的一部分,使得该协议在社会上流行起来,从而诞生了现代意义上的互联网,也确立了TCP/IP协议在互联网中不可动摇的地位。
到1986年,阿帕网分成了两部分,一部分为军用网络,名称为Milnet。另一部分在美国国家科学基金会(National Science Foundation,缩写为NSF)的改进下发展为非军用网络,名称为NSFnet。NSFnet在美国国家科学基金会的鼓励和资助下不断扩张,很多大学、政府资助的研究机构和私营的研究机构也纷纷把自己的局域网并入NSFnet中,使得NSFnet使用的人越来越多,逐渐取代了阿帕网。如今,NSFnet已成为互联网的重要组成部分,而阿帕网在1990年正式退出了历史舞台。
到1989年,欧洲核子研究组织(CERN)研发了万维网(WWW)的超文本传输协议,为互联网实现广域超媒体信息截取与检索奠定了基础。
到20世纪90年代初期,互联网继续蓬勃发展,各种学术团体、企业研究机构甚至个人都纷纷架设起自己的网络,使NSFnet发展成一个庞大的“网中网”系统。在这个网络中,上网者不仅可以共享联网计算机的运算能力、浏览和下载资料,还可以相互交流与沟通。但是,此时的互联网建造者还没有意识到互联网的商用价值。
直到1991年,人们才发现了互联网的商用价值。美国的三家网络公司,分别是CERFnet、PSInet和Alternet网络公司,组成了“商用互联网协会”(CIEA),至此标志着互联网的正式商用,之后世界各地无数的企业和个人纷纷加入互联网之中,互联网也开始发挥出它的巨大潜力,变得与生活密不可分。
现在随着技术的不断发展,互联网已经开启了从电脑端向移动端过渡的新时代。
网络协议就是信息在网络设备之间传输和交换的规则和标准。由于网络节点之间联系复杂,不同的设备之间通信的协议也不相同。为了使设备能在网络之间互相通信,国际标准化组织(International Standard Organization,缩写为ISO)制定了计算机网络体系结构通信协议,并且命名该协议为开放系统互连参考模型(OSI/RM)。这个协议可划分为七层,每一层都是建立在它下层的基础之上,并且为它的上一层提供特定的服务。从下到上依次划分为:物理层( Physics Layer)、数据链路层(Data Link Layer)、网络层( Network Layer)、传输层(Transport Layer)、会话层( Session Layer)、表示层( Presentation Layer)、应用层(Application Layer),如图1.1所示。
图1.1 OSI七层模型协议图
不同层中的协议各不相同,各层中的协议也多种多样,这些各式各样的协议都是为了解决不同数据之间能互相传输而产生的。要想让数据能顺利地在同层之间、层与层之间互相传递,就必须在同层之间使用相同的协议、在层与层之间选择合适的协议,否则每层之间的接收方和发送方将无法进行通信。互联网使用的网络协议是TCP/IP(Transmission Control Protocol/Internet Protocol),中文称为传输控制协议/网际协议,它是OSI七层模型的一种变化模型。作为互联网的基础协议,任何和互联网有关的操作都离不开TCP/IP协议,没有它就无法上网。
从图1.2可以看出,互联网协议将OSI七层模型变成了TCP/IP四层或者五层模型。当把物理层和数据链路层合并成一层时,再把会话层、应用层和表示层合并成一层时,就成为四层模型;当只把应用层、表示层和会话层合并成一层时,就成为五层模型,如图1.2所示:
图1.2 TCP/IP四层、五层和OSI七层模型的关系图
图1.3 OSI七层和TCP/IP四层模型对比图
虽然网页前端是在应用层上进行开发的,但是了解各层协议的工作原理,有助于理解整个网络的通信原理。所以下面以四层模型为例,简单介绍一下各层的工作原理。
(1)网络接口层
网络接口层由物理层和数据链路层组成。物理层的作用是为数据链路层提供最基本的物理连接通路,将孤立的计算机通过一定的方法连接起来。这一层传输的数据是二进制的电信号,由高低电压组成,高电压对应数字1,低电压对应数字0。
物理层常用的连接方法有:电缆、光纤、无线电波等,如图1.4所示。
图1.4 物理层连接示意图
数据链路层为网络层提供有意义的二进制的电信号,它通过mac地址 确认设备在网络中的位置。链路层通过控制对物理介质的访问 和对传输电信号的分组,来定义每组由0和1组成的电信号如何在网络中传输数据,并且它还能检测和纠正在传输中产生的错误数据,以确保传输的可靠性。
数据链路层常用的协议有:以太网IEEE 802技术标准、802.16、Wi-Fi、WiMAX、ATM、DTM、令牌环、以太网、FDDI、帧中继、GPRS、EVDO、HSPA、HDLC、PPP、L2TP、ISDN等。
通过使用DOS命令的ipconfig/all查看本机的mac地址。首先,打开DOS窗口(这里使用快捷键打开DOS窗口。同时使用组合键“Win键+R”,系统会弹出运行窗口,在文本框中输入cmd后按确定,即可打开DOS窗口),之后在命令提示符中输入ipconfig/all按回车,即可查看到相关的信息,其中包含mac地址。如图1.5所示:
图1.5 PC中的mac地址图
(2)网络层
网络层为传输层提供最基本的端到端 的数据传送服务,并且帮助我们区分网络中的子网。它为计算机之间的数据通信提供连接路径,通过IP地址连接位于不同地理位置的计算机,将数据从源端经过若干个中间节点传送到目的端,从而实现两台计算机之间的通信。
网络层常用的协议有:IP协议。
IP协议(Internet Protocol),中文称为网际协议,它使网络互联数据传输成为可能。它只负责将数据传输给目标计算机和统一来自不同网络接口的数据格式,但是它不负责数据传输的可靠性和流控制 。
图1.6 IP地址连接示意图
用IP协议给计算机分配的地址叫做IP地址( Internet Protocol Address),又称为网际协议地址,它负责给网络中的设备分配一个唯一的IP地址,以此来标示计算机在互联网中的位置。
常用的IP地址可分为IPv4与IPv6两类。目前使用最广泛的还是IPv4协议,它由一串32位的二进制字符组成,每8位一组,中间使用点号“.”分开。例如:(01100100.00000100.00000101.00000110)。但是这么长的数字使用起来很不方便,为了方便使用将IP地址改写成4组由0到255组成的数字,这种表示法叫做“点分十进制”法。例如:上面32位的二进制地址转换为点分十进制的地址为(100.4.5.6)。
通过使用DOS命令的ipconfig/all可查看本机的IP地址。在DOS窗口中输入ipconfig/all按回车,即可查看到相关的信息,其中包含IP地址。如图1.7所示:
图1.7 PC中的IP地址图
因为IPv4地址长度为32位,也就是只有2 32 个地址,所以地址的数量有限,但随着设备的增长和需求量的增加,IPv4地址即将用尽。为了解决IPv4地址即将用尽的问题,互联网工程任务组(IETF)设计了IPv6协议,它的地址长度为128位,也就是2 128 个地址,它的地址数量几乎是用之不竭的。
(3)传输层
传输层为应用层提供应用程序之间端到端的通信,它通过给每个应用程序标识一个端口号来实现,并且它还负责数据传输的可靠性。网络中每个应用程序在同一时间内只能占用一个端口,每一个端口号也都有它确切的意义。端口号的范围为0~65535,其中,0~1023为系统占用的端口。常用的应用程序与对应的端口号和传输协议,如图1.8所示。
图1.8 应用程序、端口号和传输层协议对应的关系图
传输层常用的协议有:TCP和UDP协议。
①TCP协议。
TCP(Transmission Control Protocol),中文称为传输控制协议,是TCP/IP协议的核心之一。它解决了IP协议只能找到网络中主机位置和不检验发送数据是否正确的问题。它是一种面向连接的 、可靠的、基于字节流的传输层通信协议,它能检验和纠正错误的数据,提供超时重发和流量控制等功能,以保证数据从一端传到另一端的可靠性。因此它的传输速度相对较慢,通常使用在对可靠性要求较高的服务上。
TCP常用的协议有:FTP、POP3、Telnet、SMTP、HTTP、HTTPS等。
TCP协议把连接作为最基本的对象,每一条TCP都只连接两个端点,这个端点称为套接字(socket),通过套接字就可以使网络中的两台计算机中的程序互相连接。套接字是由IP地址和端口号拼接而成,例如,IP地址为0.0.0.0而端口号为135,那么得到的套接字为0.0.0.0:135。
通过使用DOS命令的netstat -an查看本机连接中的套接字。在DOS窗口中输入netstat -an按回车,即可查看到相关的信息,其中包含套接字,如图1.9所示。
图1.9 套接字图
②UDP协议。
UDP(User Datagram Protocol),中文称为用户数据报协议,是一种无连接的、简单的、不可靠的传输层通信协议,它在传送数据时不需要先建立连接,异地的主机在收到UDP报文后也不需要给出任何确认。因此它传输速度相对较快,通常使用在对实时性要求较高的服务上。
UDP常用的协议有:DNS、TFTP、DHCP、SNMP、NFS等。
(4)应用层
应用层在TCP/IP协议的最顶层,它为相同的应用软件之间提供数据通信,通常由客户端和服务端组成。应用层上的应用程序可以自己开发,所以程序的数据类型众多,为了使不同软件程序之间可以互相通信,就要使相同内容的数据使用统一的标准。
应用层常用的协议有:DNS、FTP、SMTP、POP3、HTTP和HTTPS等。
①DNS (Domain Name),中文称为域名系统。它定义了域名转换成IP地址的方法。
②FTP(File Transfer Protocol),中文称为文件传输协议。它定义了两个相连的程序之间上传和下载文件的方法,以及传输文件的类型与格式。
③SMTP(Simple Mail Transfer Protocol),中文称为电子邮件协议。它定义了两个相互通信的SMTP进程之间交换信息的方法。
④POP3(Post Office Protocol - Version 3),中文称为邮件读取协议的第3版。它定义了在客户端上远程管理服务器中电子邮件的方法。
⑤HTTP(Hypertext Transfer Protocol),中文称为超文本传输协议。它定义了HTML文件在网络中发布和接收的方法。
⑥HTTPS(Hypertext Transfer Protocol Secure),中文称为超文本传输安全协议。它是HTTP的安全版,也是目前应用最广泛的一种网络传输协议。它通过使用SSL/TLS建立全信道,从而实现对数据包加密。
● HTTP是免费使用的。HTTPS需要在CA申请证书和付费。当然也有免费的CA证书,但功能比付费版少很多。
● HTTP使用明文传输信息,信息内容不安全。HTTPS使用SSL加密传输信息,并且会验证用户的身份,信息传输安全。
● HTTP和HTTPS使用的连接方式不同。HTTP使用无连接 、无状态 的连接方式,连接简单。HTTPS使用有连接、有状态的连接方式,连接相对复杂。
● HTTP和HTTPS使用的连接端口不同。HTTP使用的端口号为80,HTTPS使用的端口号为443。
TCP/IP协议可以分成TCP协议和IP协议两个部分。它采用分组交换方式 通信数据,以保证数据安全地、可靠地传输到指定的目的地。它的工作原理如下:
首先应用层会将数据按照数据的类型进行打包,之后发给传输层。传输层的TCP协议会把数据分割成若干数据包,并给每个数据包写上序号,然后将数据包发送给网络层。网络层的IP层协议会给每个数据包写上接收主机的地址,这时数据包就可以通过网络接口层进行数据传输了。在网络接口层中,路由器会选择合适的传输路径将数据包传送到目的地址。当数据到达目的地址后,由于传输路径选择的不同和其他传输的原因,可能导致在接收方出现数据的顺序颠倒、丢失或者重复的问题。这时TCP协议就会使用数据包上的序号对数据进行纠错与还原,之后把正确的数据发给应用层中的软件供用户使用。
简而言之,IP协议负责数据的传输,而TCP协议负责数据的可靠传输。图1.10以QQ软件传输文本信息为例,说明数据是如何使用TCP/IP协议传输的。
图1.10 TCP/IP协议传输数据示意图