1.3 互联网基础知识

网络协议栈

互联网由一系列网络设备连接所构建,如同人与人的对话使用语言一样,计算机之间的对话语言就是协议。 且如同复杂的社会组织有不同阶层一样,实践表明复杂的计算机网络同样需要区分层次,各个层次各司其职,分工协作。 互联网网络协议遵循OSI参考模型, OSI是Open System Interconnection的缩写,意为开放式系统互联。国际标准化组织(ISO)制定了OSI模型,该模型定义了不同计算机互联的标准,是设计和描述计算机网络通信的基本框架。 OSI模型把网络通信的工作分为7层,分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。 由于其过于庞大繁杂,由技术人员自己开发的TCP/IP协议栈对此做了简化也就是4层模型,如下图所示:

其中网络接口层主要是在物理设备上为互连层提供分组数据(Packets)接口; 网络互连层定义了分组格式和协议即IP,功能是把分组发往目标网络或主机,为此需要实现寻址和路由; 传输层则负责连接双方的会话控制,如服务质量、流量控制、分组排序和异常处理等,定义了TCP和UDP两种不同的协议, TCP协议是一个面向连接的、可靠的协议(使命必达),UDP协议是一个不可靠的、无连接协议(尽力而为); 应用层则是为了实现具体的业务,比如HTTP(超文本传输协议)就是为了支持网页内容的处理,HTTP是基于TCP协议的。

要了解OSI模型更多细节,可以参考阅读OSI模型总览图, 如果要完整学习TCP/IP协议,请阅读经典教材W.Richard Stevens写的协议详解卷1《TCP/IP ILLustrated Volume 1: The Protocols》,最好读英文版,因为该书机械出版社的中文版翻译质量很差。

作为HTML5开发人员,我们接触最多的是应用层的协议,包括HTTP/SMTP/IMAP/IRC/FTP等,分别用于不同的应用场景。

协议 用途 创建于
FTP 文件传输 1971
SMTP 发送邮件 1971
IMAP 接收邮件 1986
IRC 即时通讯 1988
HTTP 浏览HTML文档(网页) 1989

IP地址

我们已经知道互联网是连接电脑的信息高速公路。现实生活中的高速公路则连接着千家万户,每户人家都对应一个地址,这个地址是分级格式的,如上海市-浦东新区-东方路-XX弄。 相似的,每个连接到互联网的设备都被分配了一个IP地址用来唯一识别这个设备,这个地址看起来是4个(或6个)数字(字节)的组合如:111.13.101.208.

IP协议分为IPV4和IPV6,IPV4支持的地址空间最大为232(40多亿),不足以标识所有的互联网设备(含移动、物联),所以需要启用IPV6。

对于网站而言,要拥有独立IP地址,必须得有一台服务器,比较方便的方式是通过亚马逊、阿里云、西部数码等基础设施服务商购买云主机按期付费,如果有运维经验,也可以自行购置服务器托管在电信/移动机房并购买带宽和IP地址。

域名

IP地址固然可以很好的标识计算机,但是对于普通用户而言,是很难阅读和记住的。这就是为什么要创建域名。域名是一个字符串,用来和一个IP地址关联,两者可以互换。 比如你可以通过//111.13.101.208或者 //baidu.com来访问百度网站,这里baidu.com就是一个域名。

一个域名由3个部分组成,从右到左分别是:

  • 顶级域名(TLD):如一些通用域名 (.com, .org, .net) 以及特定国家的域名 (.us, .cn, .fr).
  • 域名(Domain):如 baidutechbrood, 可以包含字符数字,但是不能有空格和点。
  • 子域名(Subdomain)(可选)。子域名是可选的,不指定子域名时,默认使用 www 为子域名。

如何购买域名?
你实际上不是购买一个域名,而是从域名注册商那里租用域名,比如万网新网等。

统一资源定位符(URL)

通过域名和协议,我们可以组建一个URL: 统一资源定位符即Uniform Resource Locator.

比如, 当前页面的URL是 //techbrood.com/Guide/h5b2a?p=internet, 可以被分成3个部分:

  • http://协议(protocol)
  • techbrood.com域名(domain),默认使用www子域名
  • /Guide/h5b2a?p=internet路径(path)

这个URL是唯一的,定义了:

  • 访问地址(where) techbrood.com/Guide/h5b2a?p=internet.html
  • 如何访问(how) 通过 http://协议访问

关于URL更详细的介绍,你可以参考百度百科或者一个网址的剖析.

互联网
连接计算机设备的网络。
协议
互联的计算机和网络之间对话的语言。
IP地址
计算机在互联网上的唯一标识。
域名
容易记忆和阅读的一串字符串,被关联到IP地址上,便于访问。