计算机网络面试网络编程基础

计算机与互联网——网络技术基础

2017-01-23  本文已影响153人  行走的苹果哥

作者: MA806P
地址: http://www.jianshu.com/p/fc45e0ff73f4

前言

本篇文章将全面介绍计算机网络技术基础知识,对计算机网络运作流程进行简单介绍。阅读本篇文章你将会对计算机网络的发展、组成、性能指、计算机网络体系结构,等,这些计算机网络基础知识,有大概的了解。
概述
从上世纪90年代以后,以因特网为代表的计算机网络得到了飞速的发展,网络改变了我的工作生活的各个方面,加速了全球信息革命的进程。

1994年4月20日我国用64kb/s专线正式连入互联网,从此我国被国际正式承认为接入因特网的国家。想象一下短短二十多年,互联网在我国迅速的发展,直到今天我们的生活已经离不开了网络,大大小小的互联网公司迅速发展,时时刻刻都在改变着我们的生活方式。

网络起源

了解一项技术首先你得知道它是怎样被发明、因为什么被发明、又是怎么被发展壮大起来的呢?多去了解事物的发展历史、发展规律,你将会看到别人看不到的东西抓住先机,说不定一不小心就改变了世界。好了不扯淡了,直奔主题。
internet(互联网)是一个通用名词,泛指由多个计算机网络互连而成的网络。
Internet(因特网)是一个专用名词,是指当前全球最大的、开放的、由众多网络相互连接而成的特定计算机网络,它采用TCP/IP协议族作为通信的规则,其前身是美国的ARPANET。

网络把许多计算机连接在一起,而因特网则把许多网络连接在一起。
1969年美国国防部创建的第一个分组交换网ARPANET最初只是一个单个的分组交换网,所有要连接在ARPANET上的主机都直接与就近的结点交换机相连,这显然是不能满足通信需求的,于是就开始研究多种网络互连的技术,这就导致后来的互联网的出现,一步步发展成现在的因特网。
1983年,TCP/IP协议成为ARPANET上的标准协议,这个使得所有使用TCP/IP协议的计算机都能利用互联网互相通信,因而人们就把1983年作为因特网的诞生时间。
1985年起,美国国家科学基金会NSF(National Science Foundation)围绕大型计算机中心建设计算机网络,即国家科学基金网络NSFNET。这种计算机网络覆盖了全美的主要大学和研究所。
1991年,NSF意识到因特网必将扩大其使用范围,不用仅仅限于大学和研究机构。世界上许多公式纷纷接入因特网,网络上的通信量急剧增大,使因特网的容量以满足不了需要,于是美国政府决定将因特网的主干网转交给私人公司来经营,并开始对接入英特网的单位收费。
从1993年开始,由美国政府资助的NSFNET逐渐被若干商用的因特网主干网替代,政府机构不在负责因特网的运营,这样就出现了因特网服务提供者ISP(Internet Service Provider)又被译为因特网服务提供商。

我国最有名的ISP,中国电信、中国移动、中国联通。ISP可以从因特网管理机构申请到很多IP地址,同时拥有通信线路以及路由器等联网设备,向ISP缴纳费用,就可以从该ISP获取所需IP地址的使用权,并可通过该ISP接入到因特网。
因特网的标准化工作
任何事物发展大了,就得有特定的标准,不然就乱了套,有了好的游戏规则,才能玩的好、玩的转。
制定因特网标准的是因特网协会ISOC(Internet Society),ISOC下面有个技术组织叫因特网体系结构委员会IAB(Internet Architecture Board),负责管理因特网有关协议的开发。
IAB下面有两个工程部:1.因特网工程部IETF(Internet Engineering Task Force)2.因特网研究部IRTF(Internet Research Task Force)。
所有的因特网标准都是以RFC(Request For Comments请求评论)的形式在网上发表,所有的RFC文档都可以在网上免费下载,并非所有的RFC文档都是因特网标准,只有一小部分RFC文档才能变成因特网标准。

因特网的组成

从工作方式上看,可以划分为两大块:


因特网边缘部分
1.边缘部分
1>客户服务器方式(C/S 方式):客户(client)和服务器(server)都是指
通信中所涉及的两个应用进程。
2>客户服务器方式所描述的是进程之间服务和被服务的关系。
客户是服务的请求方,服务器是服务的提供方。

如下图:

2.核心部分

计算机网络的性能

1.速率

比特(bit)是计算机中数据量的单位,也是信息论中使用的信息量的单位。Bit 来源于 binary digit,意思是一个“二进制数字”,因此一个比特就是二进制数字中的一个 1 或 0。
速率即数据率(data rate)或比特率(bit rate)是计算机网络中最重要的一个性能指标。速率的单位是 b/s,或kb/s, Mb/s, Gb/s 等。速率往往是指额定速率或标称速率。

2.带宽

带宽本来是指信号具有的频带宽度,单位是赫(或千赫、兆赫、吉赫等)。现在“带宽”是数字信道所能传送的“最高数据率”的同义语,单位是“比特每秒”,或 b/s (bit/s)。 常用的带宽单位 kb/s、Mb/s、Gb/s。现在人们常用更简单但很不严格的记法来描述网络的速率,如100M以太网。

3.吞吐量

吞吐量(throughput)表示在单位时间内通过某个网络(或信道、接口)的数据量。
吞吐量更经常地用于对现实世界中的网络的一种测量,以便知道实际上到底有多少数据量能够通过网络。
吞吐量受网络的带宽或网络的额定速率的限制。

4.传输时延

发送数据时,数据块从结点进入到传输媒体所需要的时间。也就是从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间。
对于高速网络链路,我们提高的仅仅是数据的发送速率而不是比特在链路上的传播速率。 提高链路带宽减小了数据的发送时延。

5.信道利用率

信道利用率指出某信道有百分之几的时间是被利用的(有数据通过)。完全空闲的信道的利用率是零。
网络利用率则是全网络的信道利用率的加权平均值。
信道利用率并非越高越好。

计算机网络体系结构

计算机网络的体系结构(architecture)是计算机网络的各层及其协议的集合。

OSI的七层协议体系结构的概念清楚,理论也比较完整,但它复杂又不实用。TCP/IP是一个四层的体系结构。在介绍网络的原理时往往采取折中的办法,即综合OSI和TCP/IP的优点采用一种只有五层协议的体系结构,这样既简洁又能将概念阐述清楚。


应用层

应用层是体系结构中的最高层,任务是通过应用进程间的交互来完成特定网络应用,应用层协议定义的是应用进程间通信和交互的规则。这里的进程就是指主机中正在运行的程序。对于不同的网络应用需要有不同的应用层协议。在因特网中的应用层协议很多,如支持万维网应用的HTTP协议,支持电子邮件的SMTP协议,支持文件传送的FTP协议,等等。

运输层

运输层的任务就是负责向两个主机进程之间的通信提供通用的数据传输服务。应用进程利用该服务传送应用层报文。

运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。

运输层主要使用一下两种协议:

网络层

网络层负责为分组交换网上的不同主机提供通信服务。在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组或包(packet)进行传送。


想要在全世界范围内把网络都互连起来,并且能够互相通信,会遇到许多问题需要解决。TCP/IP提示在网络互连上采用的做法是在网络层(即IP层)采用了标准化协议,但相互连接的网络则可以是异构的,计算机网络通过一些路由器进行互连,擦于互连的计算机网络都使用相同的网际协议IP(Internet Protocol),因此可以把互连以后的计算机网络看成一个虚拟互连网络。

数据链路层

数据链路层常简称为链路层。两台主机间的数据传输,总是在一段段的链路上传送的,这就需要使用专门的链路层的协议。

物理层

在物理层上所传数据的单位是比特。因此物理层要考虑用多大的电压代表1或0,以及接收方如何识别出发送方所发送的比特。物理层还要确定连接电缆的插头应当有多少根引脚以及各条引脚应该如何连接。

在因特网所使用的各种协议中,最重要的和最著名的就是TCP/IP连个协议。现在人们经常提到的TCP/IP并不是一定单指TCP和IP这两个具体的协议,而往往是表示因特网所使用的整个TCP/IP协议族。

Paste_Image.png

图中的是应用进程的数据在各层之间的传递过程中所经历的变化。假定主机1的应用进程AP1向主机2的应用进程AP2传送数据。AP1先将其数据交给主机的应用层,应用层加上必要的控制信息H5就变成了下一层的数据单元。运输层收到这个数据单元后,加上本层的控制信息H4,再交给网络层,成为网络层的数据单元。以此类推,到数据链路层后控制信息被分为两部分,分别加到本层数据单元的首部H2和尾部T2,而第1层物理层由于是比特流的传送,所以不再加上控制信息。传送比特流时从搜捕开始传送。当这一串的比特流离开路由器到达目的站主机2时,就从主机2的第1层按照上面的方式,依次上升到第五层。最后把应用进程AP1发送的数据交给目的站的应用进程AP2。虽然要经过复杂过程才能送到终点的应用进程,但这些复杂的过程对用户来说,却都被屏蔽掉了,以至于应用进程AP1觉得好像是直接把数据交给了应用进程AP2.同理,任何两个同样的层次之间,也好像如同直接传递给对方一样。这就是所谓的“对等层”之间通信。

总结

本文介绍了计算机网络的发展、组成、性能指标等。简单介绍了计算机网络体系结构,由于篇幅有限只是简单介绍了一些概念。网络与我们的生活息息相关,掌握计算机网络基础知识、基本原理,能让我们更明白地使用网络,更重要的是能学会一些思考、解决一些问题的方法。

上一篇下一篇

猜你喜欢

热点阅读