0x01 What is network
硬件方面:由若干结点和连接这些结点的链路组成。网络中的结点可以是计算机、集线器、交换机、路由器等。(点到点)
软件方面:应用软件、应用程序等服务通过端口建立连接从而完成交互,最终实现资源共享、信息传递。(端到端)
WAN(广域网)
- 范围:几十到几千km
- 作用:用于连接远距离的计算机网络
- 典型应用:internet
LAN(局域网)
- 范围:1km左右
- 作用:用于连接较短距离内的计算机
- 典型应用:校园网、企业网
0x02 互联网基础结构的发展
- 1946年2月14日,世界上第一台数字计算机ENIAC在宾夕法尼亚大学诞生。
- 1954年,收发器终端诞生。
- 上世纪60年代初,由多重线路控制器参与组成的网络被称为第一代计算机网络。
- 1964年,Baran提出存储转发概念:暂存,查找转发表,转发到相应的端口。
- 1966年:David提出分组概念:类似于现在的快递,对数据进行封装及标识。
- 1969年,DARPA的计算机分组交换网ARPANET投入运行。
第四阶段:物联网
0x03 中国互联网连接图
中国公用计算机互联网骨干网——ChinaNet是中国第一个由国人自己设计、建设及运营管理的大型公用计算机互联网,是以TCP/IP
Intemetworkillg技术覆盖全中国所有省份,以提供公共服务为主要目的,在全国范围内实现用户全透明漫游和统一的中英文用户界面的大型数据通讯网络。整个网络具有充足的高速路径来保证网络的高度可靠性,并采用了先进的安全技术来保证全网的安全性。ChinaNet 是中国最大的 Internet 服务提供商。ChinaNet 是 Internet 在中国的一部分,它采用 TCP/IP
协议结构,通过高速数字专线与国际 Internet 相连。ChinaNet 是国内计算机互联网名副其实的骨干网。ChinaNet
骨干网的拓扑结构分为核心层和大区层。核心层由北京、上海、广州、沈阳、南京、武汉、成都和西安8个城市的核心节点组成,提供与国际Internet互联,以及大区之间的信息交换通路。其中北京、上海、广州三个核心层节点各设两台国际出口路由器与国际互联网相联。
在互联网最初在国内发展的时候,几大运营商(ISP,Internet Service Provider)发展的都比较野蛮,如同现在的腾讯、阿里、字节等经常彼此掐架,他们互相不给互相带宽资源,导致不同运营商的用户之间通信很慢。正如同世界上最遥远的距离不是你在天涯我在海角,而是你在联通我在电信。所以国家出手在北上广建立了数据交换中心,将几大运营商强行连入数据中心。
0x04 协议和标准
为了使数据可以在网络上从源传递到目的地,网络上所有设备需要"讲"相同的"语言",描述网络通信中"语言"规范的一组规则就是协议,例如IEEE系列、HTTP、TCP/IP、DNS等。类似于现在快递中的标签,规范地标记了发件人是谁(源),收件人是谁(目的地)等。
- 协议包:一组协议作用于同一层从而完成某任务。如IPsec协议,其工作在网络层,由多个协议协同完成建立安全网络的任务。
- 协议栈:一组协议分别作用于不同层从而完成某任务(先应用哪个协议,再应用哪个协议)。如TCP/IP协议,该协议应用于物理层、数据链路层、网络层、传输层、应用层,各层协作完成通信任务。
当协议被国际社会广泛认可后就被称为标准。具体来说,标准就是国际间或国内或行业间委托某组织制定的共同遵守的协议、制度、指标。
0x05 OSI的七层框架
为了降低网络设计的复杂性,我们将协议进行了分层设计。分层后用户服务层的模块设计可相对独立于具体的的通信线路和通信硬件接口的差别,而通信服务层的模块设计又可相对独立于具体用户应用要求的不同。例如,文件传输或电子邮件服务模块的设计不必关心底层通信线路是光纤还是无线WIFI。OSI的七层框架,对应解决七个问题。
名称 | 数据单元 | 解决的问题 | 功能 | 实例 |
---|---|---|---|---|
应用层 | 用这个语言(编码)具体完成什么任务 | 用户接口 | HTTP、Telnet | |
表示层 | 会话时使用什么语言(编码) | 数据的表现形式、加密等特定功能的实现 | ACSII、EBCDIC、JPEG | |
会话层 | 和谁会话 | 对应用会话的管理、同步 | 操作系统/应用读取 | |
传输层 | 数据段 | 从传输层开始解决到达目的地后干什么的问题,该层提供可靠或不可靠的传输 | 可靠与不可靠的传输、传输前的错误检测、流控 | TCP、UDP |
网络层 | 数据包 | 决定如何构建复杂的链路网。链路网类似于现实生活中的交通网 | 提供逻辑地址、选路 | IP |
数据链路层 | 数据帧 | 组织需要传递的信号,如何链接各个网段,如何一站一站地走,最终辗转到目的地。链路类似于现实生活中的路段 | 成帧、用MAC地址访问媒介、错误检测与修正 | 802.3/802.2 HDLC |
物理层 | 比特流 | 信号的传递问题,如数字信号、电信号等,如何传播 | 设备间比特流的传输、物理接口、电器特性等 | EIA/TIA-232 V3.5 |
其中物理层、数据链路层、网络层用来建立点到点的连接(主机定位),传输层、会话层、表示层、应用层用来建立端到端的连接(事务性连接)。
OSI标准失败的原因:
1.OSI制定专家缺乏实际经验,完成OSI标准时没有商业驱动力。
2.OSI标准实现起来过于复杂,且运行效率很低。
3.OSI标准的制定周期太长,因而使得按OSI标准生成的设备无法及时进入市场。
4.OSI的层次划分不太合理,有些功能在多个层次中重复出现。
假设你是一名程序员,要编程解决实现计算机网络所面临的所有软件问题,你是愿意将这些问题放在一个模块中编程实现,还是愿意将它们划分到不同的模块中,逐模块编程实现?
数据的封装与解封:
其实这就类似现实生活中的网购。假设你在网上买了一个花瓶,商家不可能直接把花瓶寄发给你,它会先用塑料薄膜、报纸、泡沫等物品对其进行保护,然后再用胶布层层缠绕以确保牢固,最后交给快递公司用快递盒进行包装。等你拿到这个快递盒时,你需要一层一层地剥去这些包装才能拿到花瓶。
0x06 常见网络设备
- 交换路由设备
- 网络安全设备:防火墙、VPN设备、IDS/IPS
- 无线网络设备
- 网络设备生产厂商:华为、H3C、Cisco…
设备 | 名称 |
---|---|
计算机 | 应用层 |
防火墙 | 传输层 |
路由器 | 网络层 |
交换机 | 数据链路层 |
网卡 | 物理层 |