学计算机网络究竟在学些什么东西?

  计算机网络这门课程有一个特点,就是知识点特别多,而且这些知识点之间的联系好像也不是很强,初学者刚刚接触这门课程的时候,很容易被知识点搞得晕头转向,比如说我在大学里第一次上这门课的时候,就觉得今天在讲这个,明天又在讲那个,到期末的时候,明明上了一个学期的课,却好像什么也没学到。我觉得这可能也是很多人学习计算机基础的一个通病吧,我们不断的学习知识点,却没有把他们联系起来,最终就在浩如烟海的知识点中迷失了方向。知乎上有一个高赞回答写道,学习计算机知识,一定要把握主线,如果一开始就一头扎进那些技术细节中,那样就很可能事倍功半。所以我在复习计算机网络的时候就在思考一个问题,到底什么是计算机网络这门课程的主线呢,我们在学习计算机网络的时候,究竟应该把重心放在哪一部分上呢?我想,还是先从计算机网络的用途入手, 计算机网络到底为我们带来了哪些好处呢?总结一下,计算机网络能带来如下的便利:

1. 使计算机之间的交互成为可能。有了计算机网络,用户可以通过计算机网络实现交流,这促进了各种信息在计算机用户之间的流动。

2. 使数据可以共享。在网络发明之前,数据只能通过磁盘等移动设备在不同的机器上传递。计算机网络出现以后,一些数据量很大的数据被放置在专门的服务器上,用户要获取这些数据,只需要对服务器发出请求即可。

3. 远程操作。网络可以跨越时空的距离,将一台计算机将命令发送给另一台计算机,使用户在本机上控制远程的计算机。


 

 

从这些用途我们可以看出来,计算机网络的基本用途,说到底是为了实现计算机之间的通信。虽然从上面两张图来看,这个过程好像很简单,但是实际上它有很多的问题要解决:

1. 一般来说,我们把请求服务的一端叫做客户端,把为客户端服务的一端叫做服务端。那么第一个问题,客户端想把请求发送给服务端,必须知道服务的位置,客户端要怎么找到服务端的位置呢?

2. 数据在传递过程中的形式。数据在计算机中以二进制保存的字节,那要怎么把这些二进制的数据传递给对方计算机呢?

3. 怎么保证数据在网络中传输的可靠性和安全性?

4. 不同用户对于计算机通信的需求是不同的,而针对每一种需求提出一种交互方式肯定是不现实的,那我们怎么来解决这些需求间的差异?

  可以说,我们学习的大部分关于计算机网络的知识,都是为了解决计算机通信中的问题,使这个过程变得更完美高效提出的。从计算机网络诞生以来,科学家提出了很多相关的规则,算法和设备来规范它,完善通信过程。这些规则,算法和设备,构成了我们今天的计算机网络体系。学习计算机网络,就要一边记忆知识点,一边体会这个不断完善的过程。这样我们学习起来,可能更有方向性一点。