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地址关联,两者可以互换。 比如你可以通过https://111.13.101.208或者 https://baidu.com来访问百度网站,这里baidu.com就是一个域名。
一个域名由3个部分组成,从右到左分别是:
- 顶级域名(TLD):如一些通用域名 (
.com
,.org
,.net
) 以及特定国家的域名 (.us
,.cn
,.fr
). - 域名(Domain):如
baidu
,xnip
, 可以包含字符数字,但是不能有空格和点。 - 子域名(Subdomain)(可选)。子域名是可选的,不指定子域名时,默认使用
www
为子域名。
如何购买域名?
你实际上不是购买一个域名,而是从域名注册商那里租用域名,比如万网和新网等。
统一资源定位符(URL)
通过域名和协议,我们可以组建一个URL: 统一资源定位符即Uniform Resource Locator.
比如, 当前页面的 URL 是 https://www.xnip.cn/docs/mitmproxy-docs
, 可以被分成3个部分:
http://
是协议(protocol)www.xnip.cn
是域名(domain),默认使用 www 子域名/docs/mitmproxy-docs
是路径(path)
这个URL是唯一的,定义了:
- 访问地址(where)
www.xnip.cn/docs/mitmproxy-docs
- 如何访问(how) 通过
https://
协议访问
关于URL更详细的介绍,你可以参考百度百科或者一个网址的剖析.
- 互联网
- 连接计算机设备的网络。
- 协议
- 互联的计算机和网络之间对话的语言。
- IP地址
- 计算机在互联网上的唯一标识。
- 域名
- 容易记忆和阅读的一串字符串,被关联到IP地址上,便于访问。