计算机网络的功能特性

首先我们抛出一个问题:计算机网络如何在两个端用户之间提供访问通信?

对于上述问题,我们可以简单的用下面这种文字链式的方式来进行回答

应用–>编码器–>传输介质–>编码器–>应用

上面是大概的轮廓,现在我们来详细讲讲通信之间的具体方式

传输数据必备的前提

1
2
3
4
5
6
7
1.众所周知,计算机之间的通信是通过电信号去通信的,那么问题来了,电信号是如何传播的。在当前社会其实是有两种方式的,一种是通过地面的有形介质,也就是深埋在地底的各种线路,一种是无形的介质,也就是卫星。
2.其次我们假设一种情况,一匹马从北京到上海马不停蹄,是不是会累死?电信号其实本质也是这样,电信号在传播的时候其实是会有一定的损失的,如果距离过远,损失会更大,因此我们需要我们的“驿站”,也就是途中的部分转发节点
3.不知道大家小时候知不知道“猫”,小时候如果要上网,那必须使用的方式是拨号上网。其实那是在和电话线使用同一个传输的通道,而猫的作用就是将我们电脑的数字信号转成模拟信号,以达到让电脑的数据可以通过电话的通道去进行传输。

ps:数字信号和模拟信号的区别
模拟信号是连续的,不停的,是一段电压
数字信号则是通过0和1的数字串所构成的数字流来传输的、

数据传输的特点

1
2
数据传输其实是有一个很明显的特点的,打个比方,我们在打电话的时候,很明显数据应该是持续的,毕竟沟通嘛,不可能你隔一段时间说一句那个隔一段时间说一句,但是数据传输不一样。他其实是一个数据包一个数据包传输,并且每一个数据包之间的传输会有一定的间隔。
综合上述特点,我们可以考虑到计算机之间的通信我们需要有一个比较合理的架构,毕竟世界上不止有两台计算机在通信,是非常多的计算机在进行通信。但是很多计算机其实是用的同一个信道。所以如何去规划这些数据包的传输是一件很有学问的事情

数据包的传输规划

1
2
3
4
5
6
7
8
针对数字信号的传输,设计者是设计了两种方案去解决这个问题
1.报文交换
2.分组交换(现在常用)

上述两种听名字很高大上,实际上是非常简单的一个概念,报文交换就是将所有的数据一并进行传输,分组交换则是将一整组的数据进行拆分,拆成小的部分进行传输。
至于两者之间的优劣可以去看这个博客:https://blog.csdn.net/suxiaorui/article/details/87099192个人觉得是讲解的比较简单详细的。
这里说个结论,分组交换要优于报文交换。因为将数据进行拆分以后,你可以通过多个路线去进行传输,理论上是可以达到类似并行的效果的,并且个人觉得,这样做可以减少丢包带来的损失,就算丢了其中一部分包,你也只需要传输丢失的一部分包即可,不需要进行全部重传的操作。

多路复用

1
2
多路复用简单的说就是让多个计算机使用同一条通信的信道,这就是多路复用。
多路复用+分组交换是现在最常用的一种传输数据的手段

R-C

​ 多路复用图示详解

分组交换所需要的必备条件(分组的控制信息)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
为了满足上述的功能条件,有下面三点是必须做到的
1.差错控制
2.寻址功能
3.仲裁过程
首先我们来谈谈差错控制,差错控制简单的说就是如何去校验你传输过来的数据是否正确?是否中途被人调过包获少包,你需要有这个校验功能
寻址功能就是我们如何确定要给谁去传这个包?也就是类似的邮件寄件地址
仲裁过程就是在多个计算机同时发包,那么谁先谁后?

对于上述的功能,我们有个统一的名称(数据链路控制功能) Data Link Control

上述几点是最重要的,但是除了上述几点,我们还需要考虑下面几点
网络通信量过多了如何?如何确定计算机网络之间的通信已经结束?
对于上述这两个问题也有一定的功能区解决
流量控制以及拥塞控制是去解决第一个问题的。
对于第二个问题则是牵扯到tcp中四次握手三次挥手的概念