开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 9 天,点击查看活动详情
一、引发思考
当了这么久的程序员,我们都知道把项目部署在服务器,提供对应的服务器地址和接口调用文档给别人,别人通过网络请求我们的接口就能拿到对应的数据。但不知道你们有没有好奇过自己写的程序或接口究竟是如何通过网络被别人成功调用的。即接口请求的整个网络链路究竟是经过怎样的运转实现数据交互的。如果你也感兴趣的话,那么请接着往下看。
二、计算机网络
1、由来
计算机诞生之初,每台计算机都只在“自己范围”内处理数据,如果需要在不同的计算机之间进行数据交换或分享,则只能通过存储介质诸如磁盘等设备。随着科学技术的发展,计算机之间的信息交换需求越来越重要,为了实现计算机之间能进行快速、大量的数据交互,人们便将计算机技术与网络技术进行整合,从而诞生了计算机网络。
2、计算机网络定义
计算机网络是利用通信设备与通信链路或通信网络,将处于不同地理位置、独立运行的计算机进行互连的。并遵循一定的规则实现计算机系统之间的信息交换。
tips:
通信链路包含:双绞线(Twisted Pair)、光纤、微波、通信卫星等
不同链路传输速率不同,在计算机网络中也称带宽,单位bit/s或bps或b/s
Internet是最大、应用最广的计算机网络。我们的手机、电脑、服务器等都是通过有线或无线方式连接Internet服务提供商(Internet Service Provider,ISP)网络,进而接入Internet。只要连接到Internet上,都称为主机或端系统。
主机或端系统通过接入区域或本地ISP,然后本地或区域ISP再与更大规模的国家级ISP互联,最后国家级ISP再与其他国家的ISP互联,实现了全球ISP互联,从而实现全球性端系统互联。
ISP网络由许多有线或无线通信链路互连分组交换设备构成,分组交换设备可实现数据的分组的接受和转发,是Internet的重要基础设备。典型设备有路由器和交换机。
三、协议
1、网络协议
Internet中互连的端系统、分组交换设备或其他网络设备在进行信息传输、接收或转发过程中,都要遵循一些规定和约束,即网络协议。这是保证计算机网络有序运行的基石。
协议约定了实体间交换的信息类型、信息各部分含义、信息交换顺序以及特定信息或异常时应采取的措施。
2、协议三要素
任何一个协议都会显式或隐式的定义这三个基本要素
- 语法(syntax):定义实体间交换信息的格式与结构。
- 语义(semantics):定义实体之间交换信息中需要发送哪些控制信息,这些信息的具体含义,以及针对不同含义的控制信息,接收端应该如何响应。
- 时序(timing):也称同步,即定义实体间交换信息的顺序以及如何匹配或适应彼此的速度。
四、网络拓扑结构
日常生活中常见的网络拓扑结构如下:
1、星型拓扑
星型拓扑网络是通过点到点的链路与中心节点连接,这种类型的网络拓扑结构
- 优点:是新增站点容易,易于控制数据的安全性和优先级。
- 缺点:显而易见即中心节点压力大,一旦出现故障则会导致整个网络瘫痪。
2、树型拓扑
树型拓扑的各节点形成一个层次化结构,树中各节点都为计算机。这种类型的结构中低层计算机的功能一般和应用有关,具有明确的定义和专业性的任务,例如:数据的采集和变换。而高层计算机具备通用的功能,以便协调系统工作,例如:数据处理、命令执行、综合处理等。一般来说层级不宜太高,因为会导致较大的开销和高层节点的负荷加重。
3、总线型拓扑
总线型拓扑网络中所有节点共享一条数据通道,一个节点发出的信息可以被网络上多个节点接收。总线型网络结构
- 优点:简单,安装方便,需要铺设线路最短,成本低。
- 缺点:实时性较差,总线任何一点故障都会导致网络瘫痪,且扩展性差
总线型虽然结构简单,但是当节点过多的时候,为了保证公用信道正常工作,必须采取某种方法分配信道来决定哪个节点可以发送数据。
4、环型拓扑
在环形网络这,节点通过点到点通信线路连接形成闭合环路。环中数据沿着一个方向逐站发送。
- 优点:网络结构简单,传输延时确定
- 缺点:网络节点的加入、退出、环路维护和管理都比较复杂
5、网状型拓扑
网状型拓扑网络中,各节点可以随意连接,没有规律
- 优点:任意两个节点间有多条链路,可靠性高
- 缺点:结构复杂,必须采用路由选择算法和流量控制方法来保证数据的高效传输