计算机网络浅谈(一)总括

计算机网络浅谈系列

前言

最近本人由于保研需要所以再次重温了一下谢仁希的《计算机网络》书目,虽然本书不适合想要深入了解计算机网络的大佬们品读,但是对于我这样一个学习机器学习的大三党来说,对计算机网络有一个入门级了解的人确实足够了,当然本书对HTTP等应用层的讲解确实过于水,所以我就又拜读了《图解HTTP》这本比较有意思的协议书籍,以下内容为我自己通过理解书籍抽象出来的知识点以及自己的一些思考,一方面帮助我进行记忆,一方面希望对各位有所帮助。

正文

计算机网络入门

计算机网络前世今生

了解计算机网络,就要从计算机网络的历史开始说起,当然并不需要深究。
计算机网络起初是由美国国防部创立了第一个分组交换网APPANET,这个网络开始时只是由军事部门掌控,但是随着APPANET不断扩张,人们发现不可能只是扩展一个网络,这样的网络规模毕竟是有限的,于是互连网络的概念逐渐流行起来。
而当1983年TCP/IP协议用于APPANET后,所有使用TCP/IP网络的计算机都可以进行网络互连传输,此时互联网发展的速度空前,之后美国国防部终于无力管理APPANET,于1990年关停。
APPANET虽然现在并不存在了,但是它绝对是互联网成型的基石,通过APPANET的基本网络架构,从而发展处主干网、地区网、校园网三级架构,再到继续普及的多层次ISP结构网络,互联网的发展从起初简单的几台计算机组成的网络到现在覆盖全球的Internet,属实震惊。

网络的基本概念
三网

提起网络,当然不只是计算机网络,还有电信网络以及有线电视网络。
电信网络主要为用户提供电话、电报传真等服务,有线电视网络自然是传送各种电视节目,计算机网络就是计算机与计算机之间进行数据传送。
三网融合的概念一直在推进,从目前来看,有线电视网络其实可以与计算机网络进行融合,因为计算机网络对于多播的支持确实越来越好,但是电信网络与计算机网络由于工作方式确实差距有些大,所以融合似乎还有些时日。

互联网

这个概念没有人会陌生,Internet是当今覆盖全球的、最大的、开放的由众多互连网络连接而成的网络
,其主要的特点是连通性以及共享性

ISP与IXP

ISP这一概念很多人会忽略,但是却十分重要。ISP指的是互联网服务提供者(Internet Service Provider),可以说是在APPANET解散后互联网的真正掌控者和协调者,他们手中控制着大量的IP地址,只有从ISP获取上网所需IP,才可以进行联网,并且ISP掌握着大量的计算机网络线路,是他们花重资建设了当今的互联网络。
IXP则是互联网交换点,是因为三层网络架构存在着一个比较难以解决的问题:如果一个地区网络或者校园网访问另一地区的网络,就必须经过主干ISP,而这样的请求多了,势必会影响到主干ISP的速度,所以如果就在地区ISP之间架设了IXP,这样校园网或者某些地区网之间访问就无须通过主干ISP,使得主干ISP的网络延迟大大降低

分组交换

这个概念可以说是计算机网络中最为重要的概念之一。因为IP协议可以说是整个计算机网络的核心,而分组交换的概念正是源于这一协议。

我们可以从最原始的电路交换开始,这种传输方式如果说网络十分稳定,没有阻塞的情况下,延迟是最小,并且速度是最快的,但是它的致命缺点就是受到信道通信状况影响非常大,如果报文丢失,将必须从头再来
而到了报文交换,似乎就好了一些,人们开始有了存储转发这样的概念,其实存储转发通俗来讲就是设置缓存,在传输介质之间设置一级缓存,进行暂时存储,要是真的发生丢失的状况,不必从源点重新传输,而是从丢失的位置的上一个节点重传即可。
当然这种方式已经比上面要处理的好一些了,但是对于一个路由器来说,存储一整个报文的存储开销是在太大,并且丢失后还是要整段重传,并没有真正解决问题。
那么分组交换就是重头戏了,它是IP协议的灵魂,也真正解决了以上问题,分组交换是将报文分成多个小的数据报,并且报文之间在路由过程中毫无关联,可以自由的选择路由的路径,并且这样一来对于网络中特定路由器,存储队列中也就不是整个报文段,而是一个短的IP数据报,不仅为网络分担了数据流量,并且使得路由更加灵活,丢失时也无需重传整个数据报,只需要重传丢失的分组即可

C/S模式以及P2P模式

相信接触过开发相关的同道中人都不陌生,C/S模式就是最最普遍的Client/Server(客户端/服务端)模式,在互联网上客户端和服务端有着明确的分工,客户端用于请求网络资源,而服务端用于提供服务,提供网络资源,这样的方式有利于计算资源的集中化、高效化,云计算的基础网络架构其实也是C/S模式,为了对计算资源的进一步集中管理,才会有当今云计算。
P2P模式相对C/S模式确实比较少见,因为P2P模式实现的基础就是你的主机不仅能够获取资源,还可以提供相应的资源给其他人,相当于客户服务端一体机,如果说有哪种计算机适合,我当然会说工作站!

网络架构

从我的思路来讲,我第一眼看到网络的5层或者7层协议架构,当然会问,为什么会有协议,为什么要分层,那么请继续跟着我的思路进行分析。
为什么会有协议?
我想这个问题并不难,就我来说,我做开发的时间长了,当然会发现每当你写后台接口要与前台进行对接时,大家约定相关参数,相关数据类型,以及返回结果的类型,内容,这是每个项目都要重新去做的事情,但是如果有人想一劳永逸呢?那么协议就由此而生,它是某个机构为了方便网络互连、进行信息交换而必须做的一件事——进行传输约定。如果没有协议,那么互联网大概不会那么容易成型,毕竟,谁知道每次你传给他的数据长啥样,连你自己都不太确定。
为什么要分层?
这个问题我理解了比较长时间,因为我发现分层这件事真的有的说。

  1. 层间融合是非常困难的。了解问题当然要从反方面去想。我一开始认为传输层和应用层融合是可能的,但是发现是困难的。主要是由于TCP这样的协议,为了保证传输的可靠性以及有效性,它需要进行大量差错检验、计算检验和的操作,并且它是所有层中唯一能够完成可靠传输的层次,如果这个层次和应用层进行融合,那么所有应用在进行传输过程中不再是如HTTPS那样只是需要单纯考虑内容的安全性,而是需要考虑数据报丢失的状况,而数据报丢失在传输过程中原因是复杂多样的,我想没有一个人会想要这样做。
  2. 下层透明的机制。平常应用开发过程中,对我自己来说,我项目开发了2年左右,但是第一次接触到计算机网络时发现自己对他还是如此陌生,原因就是计算机网络对于下层屏蔽的实在是太好了,这种层与层之间的接口式调用方式让你无需知道下层实现细节,而是真正关心本层开发,使得开发真的便捷了许多。
  3. 安全性考虑。层与层之间这样的接口式连接,屏蔽下层实现细节,让系统运行更加安全。如果对操作系统有所了解,真正操作系统传输层及以下层次都是屏蔽细节的,并且是在内核态进行相关处理调用的,真正应用进程调用的只有操作系统提供的系统调用接口。
  4. 各层实现简单。一个协议如果过于复杂,对于开发者和编写者都是灾难,虽然分层的机制会减缓一定传输的速度(毕竟层与层之间需要不断加减首部封装),使得传输效率可能下降,但是协议的相对灵活与简单,牺牲一定的性能也是可以理解的。
协议分层

那么下面真正要开始讲解协议层次了
(1)OSI的7层协议
物理层
数据链路层
网络层
传输层
会话层
表示层
应用层
(2)TCP/IP的4层协议
网络接口层
网际层
运输层
应用层
(3)5层协议体系
物理层
数据链路层
网络层
运输层
应用层

相信没学过计算机网络的也应该知道这些层次,我们就先简单了解一下这些层次。

物理层

物理层就是提供网络的物理线路的铺设、以及网络的物理结构的规划的层次,对于计算机网络而言是最为低级的层次,所以这一层次的铺设可以说并不需要多高的技术水平,只需要对铺设地区有一定的拓扑结构规划即可。

数据链路层

这一层次比较模糊的人很多,因为这一层次接触真正使用到的人为极少数。数据链路层的功能是在物理层的基础上解决比特流数据接收问题以及传输目标如何标识、如何到达的问题。
这一层似乎与网络层有几分相似,不过实际上IP地址确实最终会翻译成MAC(物理地址),最终交给数据链路层进行传输。

网络层

网络层定义来讲是为网络上的不同主机提供通信服务。实际上即主要进行分组转发的功能,数据链路层能够做到的知识数据沿着链路进行传输,以及最后的数据能被主机正确的接收,它并不关心中间是如何传输的,那么网络层则主要解决这个问题。

运输层

运输层定义是为了两个主机之间的进程提供通用的数据传输服务。那么进程的概念在这一层才有所体现,因为究其本质,应用之间的数据交换必定是进程之间的数据交换,运输层主要解决进程的数据传输、如何将数据送到指定进程以及TCP协议这样解决相应的可靠传输这样的问题。

应用层

应用层则是我们接触到最多的层次,它通过网络之间的数据交换来完成特定的应用功能,如增删改查操作等;通过应用层的相关协议,可以不断精进人们对于某些业务或者任务的需求,增加用户对网络的使用体验。

之后的续集会不断介绍计算机网络的各种知识,谢谢!
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值