1. 网络基础¶
本章从几个常见的网络概念开始,主要介绍互联网HTTP协议和Sockets编程。
有知识断层请搜索相应的文章参考。
1.1. 计算机网络发展简史¶
1.1.1. 计算机网络发展的四个阶段¶
50-60年代: 面向终端的计算机网络
一个主机带几个终端,终端可以登录主机进行操作,主机为多用户操作系统
本质上是单机系统,不过让多人同时使用
60年代中期:多主机互联
提出分组交换技术
提出TCP/IP协议雏形
70年代末-80年代中:面向标准化的计算机网络
标准化是开放扩展的基础
统一的协议是表标准化的成果之一
90年代开始 : 全球互联的计算机网络
1.1.2. 因特网的发展简史¶
Internet的起源是阿帕网(ARPAnet),
有四个节点组成
时间是1969年10月29日22点30分
国家科学基金网 NSFNET
形成了三级网络
主干网
地区网
校园网
此结构类似国道省道乡级公路的概念
此阶段内诞生了浏览器,万维网的概念
相应的web技术开始发展
1983年开始
NSFNET开始逐渐被商用ISP代替
因特网逐渐形成了多级网络,覆盖全球的超复杂大型网络
1.2. 网络基本概念¶
协议:
网络协议为计算机网络中进行数据交换而建立的规则、标准或约定的集合。通俗的讲 就是一份计算机和别的网络设备签署的合同,规定了一些如何找到对方, 如何交换信息之类的条款。IP地址:
全球设备都希望加入到互联网的汪洋大海中,在茫茫机海中,如何正确的标识自己的身份 或者如何让另一个机器找到另一个自己想到交流的机器, 就需要给每台机器分配一个统一的且唯一的编码,类似与计算机的身份证号码
全称互联网协议地址, 意思是分配给用户上网使用的网际协议(英语:InternetProtocol,IP)的设备的数字标签 ,分为IPv4和IPv6两个版本
IPv4
即IP协议的第4号版本
形如231.78.93.167,由四个0-255之间的数字用英文点号隔开
数量少,最多最多最多有256的四次方个地址,实际使用中因为需要分类使用,不可能全部使用
随着接入网络设备的数量急剧增加,明显不够用呀
IPv6
即IP协议的第6号版本
形如2001:0DB8:0000:0023:0008:0800:200C:417A→ 2001:DB8:0:23:8:800:200C:417A
可以预见的未来,我们的设备随便用可劲儿造也够用
超文本(HypterText):
包含有超链接(Link)和各种多媒体元素标记(Markup)的文本。 这些超文本文件彼此链接,形成网状(Web), 因此又被称为网页(Web Page)。这些链接使用URL表示。 最常见的超文本格式是超文本标记语言HTML。
说人话就是比普通文本更复杂更强悍的一种牛逼的文本。URL(UniformResourceLocator, 统一资源定位符):
用来唯一地标识万维网中的某一个文档
如果把IP地址理解成某一个家庭的门牌号,则URL就是这个家庭的某一件 家具的地址,比如冰箱,通常我需要找到这个家庭的冰箱的话我需要先知道这家的 地址,比如我家的冰箱的地址是”北京市石景山区模式口南里社区18号楼3单元306室厨房进门左手边”, 这个精确地址的前半部分其实是我家的地址,后半部分主要是我家具体的某个地方。
URL由协议、主机和端口(默认为80)以及文件名三部分构成
主机地址,即IP地址,负责找到互联网上的某一台电脑
端口号,负责指明你需要跟电脑上的哪一个软件通信, 网页访问默认端口80,可省略
文件名负责告诉主机,你想找哪个文件
协议族:
互联网的协议众多,为了方便管理,我们把相关或者相似的协议归入到一个族中,这个族就叫协议族。七层协议:
为了更好的对互联网协议进行管理和操作,我们想根据不同的内容和功能把整个互联网协议分成了七层, 即我们常说的七层协议,每层协议专注于本层的内容和功能, 这样形成的网络逻辑结不仅结构清晰而且方便灵活。在计算机网络的传输过程中,需要一层一层的传输,如果是从上往下传输,则需要下层处理完毕后把处理结果输入 上层才可以,可以用Python代码中的函数表示:
data1 = "需要处理的最最底层的信号" data2 = func_class1(data1) #func_class1就是第一层处理函数,或者功能模块 data3 = func_class2(data2) #func_class2就是第二层处理函数,或者功能模块 data4 = func_class3(data3) #func_class3就是第三层处理函数,或者功能模块 data5 = func_class4(data4) #func_class4就是第四层处理函数,或者功能模块 ... ... data8 = "我们需要的能直接理解的明文信息,图片,音频视频等"
下图展示的是,刘大拿发一条信息给王晓静,信息是“王晓静,俺想你 ”, 从发送方来讲,信息是从顶层向下传输,最终通过网线传输的是电信号, 接收端王晓静从底层开始,把接受的电信号一层一层转换到最上层,变成了 对方发送的信息。
通常人们所说的七层结构包括:
- 应用层
- 表示层
- 会话层
- 传输层
- 网络层
- 数据链路层
- 物理层
七层协议只是理论模型,实际使用中,使用的是四层模型,这两个一个理论上标准,一个是事实标准:
四层模型是:
- 应用层
- 传输层
- 网络层
- 数据链路层
每一层协议都不是简单的单个协议组成,是由很多不同的协议共同构成了一个协议层。 常见的 七层协议和四层协议的对应以及相应的主要协议由图所示: