从独立模式到网络互联模式。
独立模式:计算机之间相互独立;
随着计算机的不断发展,人们不在局限于单机模式,而是将一个个计算机连接在一起,形成一个计算机网络。连接多台计算机可以实现信息共享,同时还能在两台位置较远的机器之间即使传递信息。
网络互连:将多台计算机连接在一起,完成数据共享。
数据共享本质是网络数据传输,即计算机之间通过网络来传输数据,也称为网络通信。
根据网络互连的规模不同,可以划分为局域网和广域网。
计算机网络可根据其规模分为WAN(Wide Area NetWork,广域网)和LAN(Local Area NetWork,局域网)。
局域网:指一个楼层、一栋楼或一个校园等相对较小的区域内的网络。
局域网内的主机之间能方便的进行网络通信,又称为内网;局域网和局域网之间在没有连接的情况下,是无法通信的。
一栋大楼或校园中有限的、狭小的、区域内网络
局域网组建网络的几种方式如下:
(1)基于网线直连
当主机数目很少的时候,我们可以基于网线实现将所有主机相连组建成局域网,但当主机数量较多的时候,通过网线的方式组建局域网就不太现实了,于是就有了后面的集线器、交换机和路由器
(2)基于集线器组建
(3)基于交换机组建
(4)基于交换机和路由器组建
【集线器和交换机的区别】:
交换机工作在数据链路层,通过MAC地址转发数据;
集线器工作在物理层,通过广播的形式转发数据。
集线器内部采用了总线型拓扑,在同一时间内必须是单向的,只能维持在半双工模式下;
交换机上的两个端口之间的通道是相互独立的,可以实现全双工通信
由于集线器的功能有限,组建局域网的时候现在很少使用了
【交换机和路由器】
交换机:是将多个机器连接到一个局域网中,工作在数据链路层
路由器:连接了多个局域网,工作在网络层
在交换机和路由器,反复的连接下,就可以把很多的设备都连接到一起,使他们之间可以直接进行通信
但是实际上,当下交换机和路由器的功能都越来越强大,彼此之间有很多功能的重叠,例如三层交换机(带有路由器的功能),路由器,也有桥接模式,也相当于交换机一样,甚至有些设备也有可能有一些传输层和应用层的功能。
通过路由器,将多个局域网连接起来,在物理上组成很大范围的网络,就形成了广域网。广域网内部的局域网都属于其子网
跨接相距较远的计算机或LAN网络如果有北、中、南等分公司,甚至海外分公司,把这些分公司以专线方式连接起来,即称为“广域网”。
如果属于全球化的公共型广域网,则称为互联网(又称公网,外网),属于广域网的一个子集。
有时在不严格的环境下说的广域网,其实是指互联网。
所谓 “局域网” 和 “广域网” 只是一个相对的概念。比如,我们有 “天朝特色” 的广域网,也可以看做一个比较大的局域网。
协议,网络协议的简称,网络协议是网络通信(即网络数据传输)经过的所有网络设备都必须共同遵从的一组约定、规则。如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。通常由三要素组成:
- 语法:数据与控制信息的结构或格式
类似打电话时,双方要使用同样的语言:普通话- 语义:即需要发出何种控制信息,完成何种动作以及做出何种响应 语义主要用来说明通信双方应当怎么做。
用于协调与差错处理的控制信息。 类似打电话时,说话的内容。一方道:你瞅啥?另一方就得有对应的响应:瞅你咋的!- 时序:即事件实现顺序的详细说明
时序定义了何时进行通信,先讲什么,后讲什么,讲话的速度等。比如是采用同步传输还是 异步传输。 女生和男生的通话,总是由男生主动发起通话,而总是在男生恋恋不舍的时候,由女生要求 结束通话。
简单来说,协议就是计算机与计算机之间通过网络实现通信事先达成的一种"约定"。这种"约定"使那些有不同厂商的设备、不同CPU以及不同的操作系统组成的计算机之间,只要能够遵循相同的协议就能实现通信,反之,如果所使用的协议不同,就无法进行通信。就好比两个人使用不同国家的语言是无法进行交流的。
同时,协议分很多种,每一种协议都明确的界定了它的行为规范
协议所起到的作用就好比见网友,彼此协商胸口插支玫瑰花见面,这就是一种提前的约定,也可以称之为协议
计算机之间的传输媒介是光信号和电信号。通过 “频率” 和 “强弱” 来表示 0 和 1 这样的信息。要想传递各种不同的信息,就需要约定好双方的数据格式
- 计算机生产厂商有很多;
- 计算机操作系统,也有很多;
- 计算机网络硬件设备,还是有很多;
- 如何让这些不同厂商之间生产的计算机能够相互顺畅的通信? 就需要有人站出来,约定一个共同的标准,大家都来遵守,这就是网络协议;
网络通信是一个非常复杂的过程,有很多的问题和细节需要处理,如果只使用一个协议去解决所有的问题,就会造成这个协议很复杂。
协议拆分:把一个协议拆分成多个协议,这也类似于我们平时写代码,如果一个类写的太复杂,就把拆成多个类,一个方法写的太复杂就把他分成多个方法
在协议拆分的过程中,程序员就发现,有些拆出来的协议其实解决的问题都差不多,因此程序员就把这些协议分成了很多类,也可以称为协议分层,类似于我们开发中将功能相似的类放在同一包下。
关于协议分层,我们以A和C的对话举例简单说明,此处只考虑了语言层和通信设备层这两个分层的情况
A和C正通过电话(通信设备)用汉语(语言协议)进行聊天。
- 当我们该变通信设备层的时候,用无线电代替电话机之后,由于通信设备层改用了无线电,就需要学会使用无线电的方法,而语言层仍使用汉语协议,因此可以向往常一样进行聊天
- 当我们将语言层改为英语的时候,由于电话记本身不受限于使用者使用的语言,因此仍可以实现通话
这都是协议分层的优点
OSI:即Open System Interconnection,开放系统互连
- OSI 七层网络模型是一个逻辑上的定义和规范:把网络从逻辑上分为了7层。
- OSI 七层模型是一种框架性的设计方法,其最主要的功能使就是帮助不同类型的主机实现数据传输;
- 它的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整。通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯。
OSI七层模型的划分以及各个分层的作用:
OSI 七层模型既复杂又不实用:所以 OSI 七层模型没有落地、实现。
实际组建网络时,只是以 OSI 七层模型设计中的部分分层,也即是以下 TCP/IP 五层(或四层)模型来实现。
TCP/IP分层模型与OSI参考模型
【说明】:
观察上面的TCP/IP模型我们发现,只有应用层是程序员写代码处理的,下面的四层都是操作系统和硬件处理好了的,因此网络编程的主要工作,也就是写应用层的代码,来处理应用层的协议数据
- 应用层:负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。我们的网络编程主要就是针对应用层。
- 传输层:负责两台主机之间的数据传输。如传输控制协议 (TCP),能够确保数据可靠的从源主机发送到目标主机。
- 网络层:负责地址管理和路由选择。例如在IP协议中,通过IP地址来标识一台主机,并通过路由表的方式规划出两台主机之间的数据传输的线路(路由)。路由器(Router)工作在网路层。
- 数据链路层:负责设备之间的数据帧的传送和识别。例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作。有以太网、令牌环网,无线LAN等标准。交换机(Switch)工作在数据链路层。
- 物理层:负责光/电信号的传递方式。比如现在以太网通用的网线(双绞 线)、早期以太网采用的同轴电缆(现在主要用于有线电视)、光纤,现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等。集线器(Hub)工作在物理层。
【举例理解各层的作用】:
将我在tb上买了一台电脑,卖家给我发货到我收到快递使用电脑这个过程类比于通信,下面是各层所起到的作用
- 物理层:运快递的高速公路
- 数据链路层:两个集散点之间的传输
- 网络层: 物流公司规划的路径
- 传输层:卖家发货时,只需考虑发件人和收件人
- 应用层:我收到电脑后具体用来做什么
【举例区分网络层和数据链路层】:
假设我从广州放假回家的路线有很多条:
(1)广州->北京->哈尔滨->齐齐哈尔->甘南
(2)广州->哈尔被->大庆->齐齐哈尔->甘南
…
网络层的作用是路径规划,也就是选择一条路线,假设选择的路线是(1)
数据链路层的作用是,两个相邻节点之间的传输(也就是两个相邻节点之间乘坐什么交通工具)
广州->北京 (飞机)
北京->哈尔滨(高铁)
哈尔滨->齐齐哈尔 (大巴)
齐齐哈尔-> 甘南 (轿车)
【举例理解封装和分用】
当我使用QQ向好友发送一个hello的信息
上述的封装分用,不仅仅出现在主机上,也出现在传输过程中,包括路由器和交换机上。