什么是Internet?
可以从两个不同的方面来理解Internet。(它的构成。它的服务)
1.因特网的主要构成
处在因特网的边缘部分就是在因特网上的所有主机,这些主机又称为端系统(end system),端系统通过因特网服务提供商(Internet Service Provider,ISP)接入因特网,端系统通过通信链路(communication link)和分组交换机(packet switch)连接到一起。不同的链路能以不同的速率传输数据,链路的传输速率(transmission rate)以比特/秒(bit/s,或bps)度量。当一台端系统向另外一台端系统发送数据时,发送端将数据分段,并为每段加上首部字节,由此形成的信息包称为分组,这些分组通过网络发送到目的端系统,在那里被装配成初始数据。
分组交换机从它的一条入通信链路接收到达的分组,并从它的一条出通信链路转发该分组。两种著名的分组交换机类型是路由器(router)和链路层交换机(link-layer switch)。链路层交换机通常用于接入网中,而路由器通常用于网络核心中。从发送端系统到接收端系统,一个分组所经历的一系列通信链路和分组交换机称为通过该网络的路径。
端系统、分组交换机和其他因特网部件都要运行一系列协议(protocol),这些协议控制网络中信息的接收和发送。TCP(Transmission Control Protocol,传输控制协议)和IP(Internet Protocol,网际协议)是因特网中两个最重要的协议。因特网的主要协议统称为TCP/IP协议。
2.因特网服务描述
从另外一个角度——为应用程序提供服务的基础设施,来看互联网,它还包括众多应用程序,而这些应用程序涉及多个相互交换数据的端系统,因此它们被称为分布式应用程序,因特网应用程序运行在端系统上,即它们并不运行在网络核心中的分组交换机中。
与因特网相连的端系统提供一个套接字接口(socket interface),该接口规定了运行在一个端系统上的程序请求因特网基础设施向运行在另一个端系统上的特定目的地程序交付数据的方式,套接字接口是一套发送程序必须遵循的规则集合。(举个例子来说明)Alice使用邮政服务向Bob发一封信,Alice不能只是写了这封信然后丢到窗外。相反邮政服务要求Alice将信放在一个信封中;在信封外面写上Bob的全名、地址、邮政编码;封上信封,贴上邮票;最后将信封放入信箱中。该邮政服务有自己的”邮政服务接口“,同样的因特网也有一个发送数据的程序必须遵循的套接字接口,使得因特网向接收数据的程序交付数据。
什么是网络协议?
协议:在两个或多个通信对等实体之间通信的一系列规则的集合。
什么是网络边缘?
通常把与因特网相连的计算机和其他设备称为端系统,因为它们处于因特网的边缘,所以被称为端系统。
端系统也称为主机(host),因为它们容纳(运行)应用程序,主机有时又被进一步分为:客户端(client)和服务器(server)
什么是接入网?
接入网就是将端系统物理连接到其边缘路由器(edge router)的网络。边缘路由器是端系统到任何其他远程端系统的路径上的第一台路由器。
常见的物理媒体有哪些?
一个比特从一个端系统传送到另外一个端系统,中途会经过一系列链路和路由器,两个路由器就组成了”发射器——接收器“对,对于每个”发射器——接收器“对,通过跨越一种物理媒体传播电磁波或光脉冲来发送该比特。物理媒体分为两种类型:导引型媒体和非导引型媒体。对于导引型媒体,电波沿着固体媒体前行,如光缆、铜线、电缆等;对于非导引型媒体,电波在空气或外层空间中传播,如在无线局域网或数字卫星频道中。
常见的物理媒体有:双绞铜线、同轴电缆、光纤、陆地无线电信道、卫星无线电信道。
什么叫网络核心?
网络核心就是由端系统的分组交换机和链路组成的网状结构。
分组交换: 在各种网络应用中,端系统彼此交换报文(message),报文能够包含协议设计者需要的任何东西。为了从源端系统向的端系统发送一个报文,源端将报文划分为较小的数据块,称之为分组(packet)。在源端和目的端之间,每个分组都经过通信链路和分组交换机(packet switch)传送。(交换机主要有两类:路由器和链路交换机)
存储转发传输:多数分组交换机在链路的输入端使用存储转发传输(store-and-forward transmission)机制。存储转发传输是指在交换机能够开始向输出链路传输该分组的第一个比特之前,必须接收到整个分组。换句话说就是只有当交换机已经完全接收完了该分组的所有比特之后,它才能开始向出链路传输(转发)该分组。
排队延时和分组丢失:每台分组交换机有多条链路与之相连。对于每条相连的链路,该分组交换机具有一个输出缓存(output buffer,也称之为输出队列,output queue),它用于存储路由器准备发往那条链路的分组。输出缓存在分组交换中起着重要的作用,如果到达的分组需要传输到某条链路,但发现该链路正忙于传输其他分组,则该到达分组必须在输出缓存中等待。因此除了存储转发时延外,分组还要承受输出缓存的排队时延(queuing delay)。这些排队时延是变化的,变化的程度取决于网络的拥塞程度。因为缓存空间的大小是有限的,如果缓存空间被等待传输的分组占满了,此时就会出现分组丢失(丢包)(packet loss),到达的分组或已经排队的分组之一将被丢弃。
转发表和路由选择协议:路由器与它相连的一条通信链路得到分组,然后向与它相连的另一条通信链路转发该分组。但是路由器怎样决定它应当向哪条链路转发呢?
在因特网中,每个端系统具有一个称为IP地址的地址。当源主机要向目的端系统发送一个分组时,源在该分组的首部包含了目的地的IP地址,当一个分组到达网络中的路由器时,路由器检查该分组的目的地址的一部分,并向一台相邻路由器转发该分组。每台路由器都有一个转发表(forwarding table),用于将目的地址映射称为输出链路。(当某分组到达一台路由器时,路由器检查该地址,并利用这个目的地址搜索其转发表,以发现适当的输出链路。路由器则将分组导向该输出链路)。
那转发表是如何设置的?
因特网具有一些特殊的路由选择协议(routing protocol),用于自动设置上面提到的转发表。
分组交换网中的时延、丢包和吞吐量
分组从一台主机(源)出发,通过一系列路由器传输,在另一台主机(目的地)中结束它的历程。当分组从一个节点(主机或路由器)沿着这条路径到后继节点(主机或路由器),该分组在沿途的每个节点经受几种不同类型的时延。有节点处理时延、排队时延、传输时延、传播时延。
作为源和目的地之间的端到端路由的一部分,一个分组从上游节点通过路由器A向路由器B发送,路由器A具有通往路由器B的出链路,在该链路前面有一个队列(也称为缓存)。仅当在该链路没有其他分组正在传输并且没有其他分组排在该队列前面时,才能在该队列中传输该分组;如果该链路当前正繁忙或有其他分组已经在该链路上排队,则新到达的分组将加入排队。
(1)处理时延
检查分组首部和决定将该分组导向何处所需的时间是处理时延的一部分。
(2)排队时延
在队列中,当分组在链路上等待传输时,它经受排队时延。一个特定分组的排队时延长度取决于先期到达的正在排队等待向链路传输的分组数量。
(3)传输时延
假定分组以先到先服务方式传输,仅当所有已经到达的分组被传输后,才能传输刚到达的分组。用L比特表示该分组的长度,用Rbps表示从路由器A到路由器B的链路传输速率。传输时延是L/R,这是将所有分组的比特推向链路(即传输)所需要的时间。
(4)传播时延
一旦一个比特被推向链路,该比特需要向路由器B传播。从该链路的起点到路由器B传播所需要的时间是传播时延。传播时延等于两台路由器之间的距离除以传播速率。
(5)传输时延和传播时延的比较
传输时延是路由器推出分组所需要的时间,它是分组长度和链路传输速率的函数,而与两台路由器之间的距离无关。传播时延是一个比特从一台路由器传播到另一台路由器所需要的时间,它是两台路由器之间距离的函数,而与分组长度或链路传输速率无关。
排队时延和丢包
一条链路前的队列只有有限的容量,当到达的分组发现一个满的队列,由于没有地方存储这个分组,路由器将丢弃该分组,即该分组将会丢失。
协议分层
各层的所有协议被称为协议栈。因特网的协议栈由五个层次组成:物理层、链路层、网络层、运输层和应用层
(1)应用层
应用层是网络应用程序及它们的应用层协议留存的地方。应用层包括许多协议,HTTP(它提供Web文档的请求和传送)、SMTP(它提供电子邮件报文的传输)、FTP(它提供两个端系统之间的文件传送)。应用层协议分布在多个端系统上,而一个端系统中的应用程序使用协议与另一个端系统中的应用程序交换信息分组,我们把这种位于应用层的信息分组称为报文(message)。
(2)运输层
因特网的运输层在应用程序端点之间传输应用层报文。有两种运输协议TCP和UDP,利用其中的任一个都能运输应用层报文。TCP向它的应用程序提供了面向连接的服务,这种服务包括了应用层报文向目的地的可靠传递和流量控制,TCP也将长报文划分为短报文,并提供拥塞控制机制。UDP协议向它的应用程序提供无连接服务,没有可靠性、没有流量控制,也没有拥塞控制。把运输层的分组称为报文段(segment)。
(3)网络层
网络层负责将称为数据报(datagram)的网络层分组从一台主机移动到另一台主机。网络层包括著名的网际协议IP,该协议定义了在数据报中的各个字段以及端系统和路由器如何作用于这些字段。
(4)链路层
网络层通过源和目的地之间的一系列路由器路由数据报,为了将分组从一个节点(主机或路由器)移动到路径上的下一个节点,网络层必须依靠该链路层的服务,特别是在每个节点,网络层将数据报下传给链路层,链路层沿着路径将数据报传递给下一个节点,在该下一节点,链路层将数据报上传给网络层。
由链路层提供的服务取决于应用于该链路的特定链路层协议,把链路层分组称为帧(frame)
(5)物理层
虽然链路层的任务是将整个帧从一个网络元素移动到邻近的网络元素,而物理层的任务是将该帧中的一个个比特从一个节点移动到下一个节点。