前言
在几年的工作过程中,逐渐发现自己在计算机网络方面的知识很碎片化。所以计划重新学习大学课本《计算机网络·自顶向下方法》。
计算机网络学习系列文章为本人学习此书的总结和理解。后续会逐渐完善此系列学习文章。如有兴趣的可以关注我或者学习此书。
下文为互联网知识的简单介绍,后续文章会逐渐详细介绍文中的一些知识点。
一、什么是互联网
- 什么是互联网?
互联网是一个世界范围内的计算机网络。由端系统通过通信链路和分组交换机连接组成。通俗点说就是由各种能连网的设备、网线和路由器交换机组成。
-
名词解释
1. 端系统: 电脑、平板、手机等各种可以连接网络的终端。
2. 通信链路: 网线(最常见)。还有其他如:光线、电话线、铜线、 无线电、同轴线等等。
3. 分组交换机: 路由器和交换机。
二、数据是如何在互联网中传输的?
互联网中最重要的工作就是数据的存储和传输。
-
数据是如何传输的?
1. 当一台计算机向另一台计算机发送数据时,计算机会按照互联网提前制定好的一系列协议规则把数据分段打包成信息包,然后给每一分组加上一个首部字节(可以理解为一个标识)。这些信息包通过网线经过路由器、交换机选择目的地址发送到另一台接收信息的计算机。
2. 数据传输类比于现实中的货物运输系统。一个仓库会把一批货物通过一定的规律分配给多个汽车、火车等交通工具。这些汽车或者火车通过公路、铁路把货物运送到目的地。在目的地再按照货物信息把货物分类卸车放到仓库中。当然不管是公路或者铁路都会经过一些立交桥或者其他过路车站。
在这个例子中仓库相当于端系统;汽车、火车就是分组或者数数据包;公路或者铁路相当于通信链路即网线;运输过程中经过的立交桥和车站即为路由器和分组交换机。
-
名词解释
1. 信息包:发送端系统将数据分段并为每段加上一个首部字节,由此形成的信息包成为分组。
2.协议规则:即互联网协议。通常是指TCP/IP协议。IP协议定义了端系统和路由器发送和接收分组的格式。
3.选择目的地址:每个路由器中都具有一个转发表,用于将目的地址映射到输出链路。当分组到达一台路由器时,该路由器检查目的地址,并用这个目的地址搜索转发表,以找到合适的输出链路。然后路由器将该分组导向搜索出的输出链路。
三、分组交换
(1)分组交换介绍
通过网络链路和交换机移动传输数据有两种基本的方法:电路交换和分组交换。
-
名词解释
1.电路交换:使用电路交换处理传输数据必须提前预留一条电路供数据传输使用。相当于必须在有限的数据传输线路中当传输某数据时,必须提前专门腾出一条数据电路供传输此数据使用。
2.分组交换:使用分组交换传输数据不需要专门预留和占用一条线路,而是按需分配。但是因为带宽是一定的,所以当数据传输过多,带宽不够用时会需要排队,从而产生时延。
(2)分组交换网中的时延概述
数据在网络中传输是有延时的。而这些延时由很多因数造成。下面总结了主要的一些延时。
-
处理延时
路由器检查分组首部和决定分组将导向哪个输出链路所需要的时间就属于处理时延,当然还有其他方面也属于处理时延,比如检查比特级差错所需要的时间。 -
排队延时
各个分组到达路由器会有一个缓存和排队的概念,以处理数据过多的问题。而在队列中,当分组在队列中等待传输时,就会产生排队时延。这个时延取决于先到达队列中的分组的数量。很好理解,比如你去排队上车,坐上车的时间取决于你前面拍了多少人,而整个这个排队所需要的时间就是排队延时。 -
传输延时
路由器把分组推向链路所需要的时间,是分组长度和链路传输速率的函数关系。 -
传播延时
一个比特从一台路由器想另一台路由器传播所需要的时间。他是两个路由器间距离的函数,与分组的长度和链路的传输速率没有关系。 -
举例说明:
如图中,一条高速公路每100km有一个收费站,你可以认为收费站间的公路即链路。收费站是路由器,假设汽车以每小时100km的速度在公路上行驶,即数据传播。假定有10辆汽车组成车队在行驶,可以将每辆车看成一个比特,该车队即为一个分组。
- 假定收费站每12s处理一辆车通过。那么收费站将10辆车全部推向公路所需要花费的时间为10x12s为2分钟。这个2分钟的时间就是传输时延。
2.对于 一辆车从收费站出口到行驶到下一个收费站所需要的时间是100km/(100km/h) = 1h。这个1h的的时间就是传播时延。
(3)丢包
路由器中的队列是有容量限度的,因为排队容量是有限的,所以当某个时刻到达路由器的分组发现路由器的队列是满的。由于没有地方存储这个分组,路由器将丢弃该分组,即该分组会丢失,即为丢包。
四、协议层次和他们的服务模型
互联网系统是一个极其复杂的系统。它包括很多部分:大量的应用程序和协议、各种类型的端系统、各种交换机和各种类型的链路媒体。为了简化这些构成,设计者采用了协议分层的方式来描绘整个互联网系统。每一层都定义特定的网络协议,每个协议属于每一层,各层的所有协议被称为协议栈。因特网的协议栈由五部分组成:
- 应用层
应用层是各种应用程序所在的地方。该层包括很多协议如:HTTP(为Web文档提供了请求和传送)、SMTP(提供了电子邮件报文的传输)、FTP(提供了两个端系统之间文件的传送)和DNS(域名系统)。该层的信息分组被称为报文。 - 运输层
- 前面说了应用程序中的信息分组称为报文,而运输层提供了给应用程序端点之间传输报文的服务。该层的协议有:TCP(为应用程序提供了面向连接的服务)个UDP(为应用程序提供了无连接的服务)。该层把应用层的报文加上一个首部成为运输层分组,被称为报文段。TCP/UDP向网络层递交运输层报文段的同时会递交目的地址。
- 运输层(传输层),解决的是端到端之间的通信问题。引入传输层的原因:消除网络层的不可靠性、 提供从源端主机到目的端主机的可靠的、与实际使用的网络无关的信息传输。它的作用是在优化网络服务的基础上,为源主机和目标主机之间提供可靠的数据传输,使高层服务用户在相互通信时不必关心通信子网实现的细节。
- 网络成
该层把运输层分组加上一个首部成为网络层分组,在此层称为数据报。网络层负责把数据报从一台主机移动到另一台主机。该层包含著名的IP协议。 - 链路层
- 网络层通过一系列的路由器在源端和目的端之间发送分组。为了将报文段从一个节点(主机或路由器)移动到下一个节点,网络层必须依赖链路层的服务。特别是在每个节点,网络层将数据报下传给链路层,链路层沿着路径将数据报传给下个节点。链路层的最基本的功能是向该层 用户提供可靠的数据传送服务。链路层提供的服务取决于该链路特定的链路层协议。
- 链路层将链路层分组称为帧,以帧为单位传送。每个帧除了包含要传送的数据外,还包校验码,以使接收方能发现传输中的差错。帧的结构必须设计成使接收方能够明确地从物理层收到的比特流中对其进行识别,也即能从比特流中区分出帧的起始与终止。这种传递服务不同于运输层的传递服务,运输层的传递是消除网络层的不可靠性、 提供从源端主机到目的端主机的可靠的、与实际使用的网络无关的信息传输。
- 物理层
链路层的任务是将整个帧从一个网络元素移动到临近的网络元素,儿物理层的任务是将该帧中的一个一个比特从一个节点移动到下一个节点。
五、总结
协议层各层的作用,尤其是运输层、链路层的理解,如果不详细深入的了解在这里是很难理解的。所以不要着急。随着对网络的知识的逐渐掌握,回过头来会有更深的理解。本文只是对因特网进行了一个简单的笼统的介绍。
[参考](美)James F Kurose、Keith W.Ross 著《计算机网络·自定向下方法》机械工业出版社
感谢各位小伙伴的关注。有不足的地方请多多支持和提出建议。转发请标注链接。