计算机网络结构与协议

第一章

1.1

三网:电信网络、有线电视网络、计算机网络

计算机网络:用户能够迅速传送数据文件,以及从网络中查找并获取各种有用的资料,包括图像和视频文件。

计算机网络向用户提供的最重要的功能有两个:1、连通性  2、共享(资源共享)

1.2

网络由若干结点和连接这些结点的链路组成。网络的结点可以是计算机、集线器、交换器、路由器等等。

网络把许多计算机连接在一起,而因特网则把许多网络连接在一起。

Internet(互联网或互连网)   Internet(因特网):采用TCP/IP协议族作为通信的规则。

网络接入点NAP用来交换因特网上流量。NAP(对等点)

1.3

因特网的组成:

1、边缘部分:由所有连接在因特网上的主机组成。这部分是用户直接使用,用来进行通信和资源分享。

2、核心部分:由大量网络和连接这些网络的路由器组成。这部分为边缘部分提供服务的(提供连通性和交换)。

客户程序:被用户调用后运行,在通信主动向远地服务器发起通信(请求服务)。因此客户程序必须知道服务器程序的地址。不需要特殊的硬件和复杂的操作系统。

服务器程序:是一种专门用来提供某种服务的程序,可同时处理多个远地或本地客户的请求。系统启动后即自动调用并一直不断地运行着,被动地等待并接受来自各地的客户的通信请求。因此,服务器程序不需要知道客户程序的地址。

1.5

几种不同类别的网络:

(作用范围)广域网wAN  城域网MAN  局域网LAN  个人区域网PAN  ;

(不同使用者)公用网  专用网;

用来把用户接入到因特网的网络就是接入网AN(本地接入网或居民接入网)。

1.6

计算机网络的性能指标:

速率(比特是计算机中数据量的单位,也是信息论中使用地信息量的单位,单位是b/s)

宽带(宽带本来是指某个信号具有的频带宽度。信号的宽带是指该信号所包含的各种不同频率成分所占据的频率范围,单位是赫)

吞吐量(在单位时间内通过某个网络(或信道、接口)的数据量)

时延(数据从网络的一端转送到另一端所需的时间):发送时延  传播时延  处理时延

时延宽带积(时延宽带积=传播时延x宽带)

往返时间RTT(从发送方发送数据开始,到发送方收到来自接收方的确总共经历的时间)

利用率(信道利用率和网络利用率)

计算机网络的非性能特征:

费用

质量

标准化

可靠性

可扩展性和可升级性

易于管理和维护

1.7

计算机网络体系结构的形成

(1)      发起通信的计算机必须将数据通信的通路进行激活,所谓激活就是要发出一些信令,保证要传送的计算机数据能在这条通路上正确发送和接收。

(2)      要告诉网络如何识别接收数据的计算机。

(3)      发起通信的计算机必须查明对方计算机是否已经开机,并且与网络连接正常。

(4)      发起通信的计算机中的应用程序必须弄清楚在对方的计算机中的文件管理程序是否已做好文件的接收和存储文件的准备工作。

(5)      若计算机的文件不兼容,则至少其中的一个计算机应完成格式转换功能。

(6)      对出现的各种差错和意外事故,如数据传送、重复或丢失,网络中某个结点交换机出故障等等,应有可靠的措施保证对方计算机最终能够收到正确的文件。

协议与划分层次:

为进行网络中的数据交换而建立的规则、标准或约定称为网络协议。

网络协议主要由三个要素组成:语法  语义  同步。

我们把计算机网络的各层及其协议的集合称为网络的体系结构。体系结构是抽象的,而实现则是具体的,是真正在运行的计算机硬件和软件。

TCP/IP是一个四层体系结构:应用层、运输层、网际层、网络接口层。

应用层:是体系结构的最高层。应用层直接为用户的进程提供服务。这里的进程是指正在运行的程序。

运输层:负责向两个主机中进程之间的通信提供服务。

         运输层主要使用两协议:

         传输控制协议TCP----面向连接的,数据传输的单位是报文段,能够提供可靠的交付。     用户数据报协议UDP---无连接的,数据传输的单位是用户数据报,不保证提供可靠的支       付,只能提供“尽最大努力交付”。

网络层:负责为分组交换网上不同主机提供通信服务。

数据链路层:(链路层)在两个相邻结点之间传送数据时,数据链路层将网络层交下来的IP数据报组装成帧,在两个相邻结点间的链路上“透明”地传帧中的数据。

物理层:物理层的任务就是透明地传送比特流。

 

因特网主要的网络层协议是无法连接的网际协议IP和许多种路由选择协议,因此因特网的网络层也叫做网际层或IP层。

 

网络层:

 

1)宽带猫

ADSL(宽带)的猫准确的名称叫做“调制解调器”。它是在发送端通过调制将数字信号转换为模拟信号,而在接收端通过解调再将模拟信号转换为数字信号的一种装置。现在的光纤网络,大多都不再需要调制解调器。

2)集线器

集线器的英文称为“Hub”。“Hub”是“中心”的意思,集线器的主要功能是对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上。

3)路由器

路由器大家都知道,插进去网线,设定好拨号,可以给多台电脑共享网络了,一般路由器有两个部分组成,WAN和LAN,WAN是用来拨号的,是让路由自身能上网的一个部分,LAN是用来局域网内交换数据的,跟交换机的作用一样,我们的电脑插在LAN口才能上网。

4)交换机

是不能拨号的路由器,也就是说他只有LAN,没有WAN。

5)集线器和交换机区别

集线器采用的是共享带宽的工作方式,简单打个比如,集线器就好比一条单行道,“10M”的带宽分多个端口使用,当一个端口占用了大部分带宽后,另外的端口就会显得很慢。相反,交换机是一个独享的通道,它能确保每个端口使用的带宽,如百兆的交换机,它能确保每个端口都有百兆的带宽。正因为交换机比集线器有着明显的优势,目前的集线器可说绝迹市场了。

网络传输过程:

1)ISP(internet serviceprovider)通过电话线将数据连接到猫;

2)猫经过调制解调将数据转换为计算机能识别的数据;

3)将转换出来的数据连接到路由器,路由器的WAN口用来实现拨号功能,LAN口用来扩展接口,以方便连接到多个计算机;

4)但是路由器的可扩展接口往往不够用,需要交换机来扩展更多的接口,交换机只有LAN口;

(ISP——>猫——>路由器)

互联网五大模型:

链接层

什么叫做“帧”:以太网规定,一组电信号构成一个数据包,叫做“帧”。每一帧分成两部分:标头(head)和数据(data)。

“标头”包含数据包的一些说明项,比如发送者,接收者,数据类型等等;“数据”则是数据包的具体内容。“标头”的长度,固定为18字节。“数据”的长度,最短为46字节,最长为1500字节。因此整个“帧”最短为64字节,最长为1518字节,如果数据很长,就必须分割成多个帧进行发送。

 

广播:计算机发送一个数据包,多个计算机接收到这个数据包后,它们读取读取这个包的“标头”,找到接收方的MAC地址,然后已自身的MAC地址比较,如果两者相同,就接收这个包,做进一步的处理,否则丢弃这个包。这种发送方式就叫做“广播”。

有了数据包的定义,网卡的MAC地址、广播的方式、“链接层”就可以在多台计算机之间传送数据了。

 

网络层:

能够区分哪些MAC地址属于同一个子网络,哪些不是。如果是同一个子网络,就采用广播的方式发送,否则就采用“路由”方式发送。(“路由”的意思,就是指如何向不同的子网络分发数据包)这就导致了“网络层”的诞生。

它的作用就是引进一套新的地址,使得我们能够区分不同的计算机是属于同一个子网络。这套地址就叫做“网络地址”,简称“地址”。

于是每台计算机有了两种地址,一种是MAC地址,另一种是网络地址。两种地址之间没有任何联系,MAC地址就是绑定在网卡上的,网络地址就是管理员分配的,它们只是随机组合在一起。

网络地址:帮助我们确定计算机所在的子网络。

MAC地址:将数据包送到该子网络中的目标网卡。

因此从逻辑上推断,必定是先处理网络地址,然后再处理MAC地址。

IP协议:

规定网络地址的协议,叫做IP协议。它所定义的地址,就被称为IP地址。

目前采用的是IP协议第四版,简称IPv4.这个版本规定,网络地址由32个二进制组成。

如何判断两个网络是否属于同个子网络?

答:根据将两个IP地址和子网掩码分别进行and运算(两个数位都为1,运算结果为1,否则为0),然后比较结果是否相同,如果是的话,就表明它们在同一个子网络中,否则就不是。

 

IP数据包:根据IP协议发送的数据,就叫做IP数据包。不难想象,其中必定包括IP地址信息。

 

以太网数据包只包含MAC地址,并没有IP地址的栏位。那么是否需要修改数据定义,在添加一个栏位呢?

答:不需要。我们可以把IP数据包直接放进以太网数据包的“数据”部分,因此完全不用修改以太网的规格。这就是互联网分层结构的好处:上层的变动完全不涉及下层的结构。

 

IP数据包也分为“标头”和“数据”两个部分:

“标头”:主要包括版本、长度、IP地址等信息

“数据”:IP数据包的具体内容。

 

ARP协议:

因为IP数据包是放在以太网数据包中发送的,所以我们必须同时知道两个地址,一个是MAC地址,另一个是对方的IP地址。对方的IP地址是已知的,但是我们不知道他的MAC地址。所以我们需要一种机制,能够从IP地址得到MAC地址。

两种情况:1、两台主机不在同一个子网络,那么事实上就没有方法得到对方的MAC地址,只能把数据包传送到两个子网络连接处的“网关”,让网关去处理。

2、两台主句在同一个子网络,那么我们可以用ARP协议得到对方的MAC地址。ARP协议也是发出一个数据包(包含在以太网数据包中),其中包含它所要查询主机的IP地址 ,在对方的MAC地址这一栏,填的是FF:FF:FF:FF,表示这是一个“广播”地址。他所在的子网络的每一台主机,都会收到这个数据包,从中取出IP地址,与自身的IP地址进行比较。如果两者相同,都做出回复,向对方报告自己的MAC地址,否则就丢弃这个包。

总之,有了ARP协议之后,我们就可以得到同一个子网络的主机MAC地址,可以把数据包发送到任意一台主机之上。

 

传输层:

有了MAC地址和IP地址,我们已经可以在互联网上任意两台主机上建立通信。

端口:它其实就是每个使用网卡的程序的编号。每个数据包都发到主机的特定端口,所以不同的程序就能取到自己所需要的数据。

传输层的功能,就是建立“端口到端口”的通信。相比之下,网络层的功能就是建立“主机到主机”的通信。只要确定主机和端口,我们就能实现程序之间的交流。因此,Unix系统就把主机+端口,叫做“套接字”。

 

UDP协议:

在数据包中加入端口信息,这就需要新的协议。最简单的实现叫做UDP协议,它的格式就是在数据前面,加上端口号。

UDP数据包,也是有“标头”和“数据”两部分组成。

标头:主要定义了发出端口和接收端口

数据:具体的内容

然后把整个UDP数据包放进IP数据包的“数据”部分,而前面说过,IP数据包又是放在以太网数据包之中,所以整个以太网数据包现在变成了下面这样:

UDP协议的优点是比较简单,容易实现。缺点是可靠性差,一旦数据包发出,无法知道对方是否收到。

 

TCP协议:

TCP协议能够确保数据不会遗失。缺点是过程复杂,实现困难,消耗较多的资源。

TCP数据包和UDP数据包一样,都是內嵌在数据包的“数据”部分。

 

应用层:

应用程序收到传输层的数据,接下来就要进行解读,由于互联网是开放架构,数据来源五花八门,必须事先规定好格式,否则根本无法解读。

应用层的作用,就是规定应用程序的数据格式。

举例来说,TCP协议可以为各种各样的程序传递数据,比如Email、www、FTP等等。那么必须有不同协议规定电子邮件、网页、FTP数据的格式,这些应用程序协议就构成了“应用层”。

这是最高的一层,直接面对用户。它的数据就放在TCP数据包的“数据”部分。因此现在的以太网的数据包就变成下面这样:

数据包的目标地址实际分成两种情况:

同一个子网络中,知道对方的MAC地址,对方的IP地址即可发送数据包

非同一个子网络中,知道网关的MAC地址,对方的IP地址即可发送数据包

所以在发送数据包之前,电脑必须先判断对方是否在同一个子网络中,然后选择相应的MAC地址。

 

上网这四个参数缺一不可。

由于它们是给定的,计算机每次开机都会分到同样的IP地址,所以这种情况被称作“静态IP地址上网”。

动态IP地址:指计算机开机后,会自动分配到一个IP地址,不用人为设定,它使用地协议叫做“DHCP协议”。

这个协议规定,每一个子网络中,有一台计算机负责管理本网络的所有IP地址,它叫做“DHCP服务器”。新的计算机加入网络,必须向“DHCP服务器”发送“DHCP请求”数据包,申请IP地址和相关的网络参数。

 

如果两台计算机在同一个子网络,必须知道对方的MAC地址和IP地址,才能发送数据包。但是,新加入的计算机不知道两个地址,怎么发送数据包呢?

答:DHCP协议做了一些规定:

  DHCP协议:

DHCP协议是一种应用层协议,建立在UDP协议之上,所以整个数据包是这样的:

(1)  最前面的“以太网标头”:设置发出方(本机)的MAC地址和接收方(DHCP服务器)的MAC地址。前者就是本机网卡的MAC地址,后者这时不知道,就填入广播地址:FF-FF-FF-FF-FF-FF

(2)  后面的IP地址标头:设置发出方的IP地址和接收方的IP地址。这是对于这两者,本机都不知道。于是发出方的IP地址就设为0.0.0.0,接收方的IP地址设为255.255.255.255。

(3)  最后的UDP标头:设置发出方的端口和接收方的端口。这一部分是DHCP协议规定好的,发出方是68端口,接收方式67端口。

 

DNS协议:

DNS协议可以帮助我们将输入的网址转换成IP地址。

 

子网掩码:判断IP地址是不是在同一个子网络中,就要用到子网掩码。

 

应用层协议:

浏览网页用的是HTTP协议,它的整个数据包构造是这样的:

TCP协议:

TCP数据包需要设置端口,接收方的HTTP端口默认是80,发送方(本机)的端口是一个随机生成的整数。

TCP数据包的标头长度为20个字节,加上嵌入HTTP的数据包,总长度变为4980字节。

 

IP协议:

然后,TCP数据包再IP数据包中。IP数据包需要设置双方的IP地址么这是已知的。

IP数据包的标头长度为20字节,加上犬儒的TCP数据包,总长度为5000字节。

 

以太网协议:

然后,IP数据包嵌入以太网数据包中。以太网数据包需要设置双方的MAC地址,发送方为本机的网卡MAC地址,接收方为网卡的MAC地址(通过ARP协议得到)。

 

服务器端响应:

经过多个网关的转发,服务器收到这四个以太网数据包。

根据IP标头的序号,浏览器将四个包拼起来,取出完整的TCP数据包,然后读出里面的“HTTP请求”,接着做出“HTTP响应”,再用TCP协议发回来。

本机收到HTTP响应以后,就可以将网页显示出来,完成一次网络通信。

 

 

 

路由协议:

1. 静态路由和默认路由

2. RIP路由协议

3. WSPF路由协议

4. EIGRP路由协议

 

1. 静态路由和默认路由

路由技术属于OSI模型的第三层(网络层),路由技术是把数据包从信源穿过中间网络设备(路由器)转发到信宿的行为。

 

 

路由技术的分类

1. 通过构建路由表的实施行为分类

从维护与管理的角度可分为静态路由和动态路由,静态路由是手动配置路由,不会产生额外的网络开销,适用于小型网络或为链路做测试用。动态路由是适用动态路由协议(RIP,OSPF,EIGRP等)使路由器动态的公告自己的路由表,并学习邻居路由器的路由表,这种方式会产生额外的网络链路开销,但维护成本低,不易出错,适用大型网络。

 

计算机网络之路由协议详解:

路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务就是转发分组。

路由选择部分的核心是路由处理器,路由处理器可以根据选定的路由协议构造出路由表,同时经常或定期和相邻路由器转换路由信息来更新和维护自身的路由表。

分组转发部分包括一组输入端口、交换结构和一组输出端口。交换结构又称交换组织,它的作用就是根据转发表把收到的IP数据包从路由器合适的端口转发出去。交换结构可看成一个在路由器中的网络。

DSDV协议:

DSDV协议的基本原理是:每一个阶段维持一个到其他阶段的路由表,表的内容为路由的“下一跳”节点。DSDV创新之处就是为每一条路由设置一个序列号,系列号大的路由为优选路由,序列号相同时,跳数少的路由为优先路由。

 

使用分层次的路由选择方法,可将因特网的路由协议划分为:

内部网关协议IGPI:具体的协议有多种,如RIP和OSPF等

外部网关协议EGP:目前使用的协议就是BGP

 

路由信息协议RIP:RIP采用距离向量算法,最大优点是简单。在实际使用中已经较少使用。RIP协议允许一条路径最多只能包含15个路由器。因此“距离”等于16时即相当于不可达。可见RIP使用小型互联网。对于规模较大的网络应当使用OSPF协议。RIP不能在两个网络之间同时使用多条路由。RIP选择一条具有最少路由器的路由(即最短路由),哪怕还存在另一条高速(低时延)但路由器较多的路由。RIP进程使用UDP的520端口来发送和接收RIP分组。RIP分组每隔30s一已广播的形式发送一次,为了防止出现“广播风暴”,其后续的分组将做随机延时后发送。

RIP分组分为两种:请求分组和响应分组

RIP协议的特点是:

仅和相邻路由器交换信息

路由器交换的信息是当前本路由器所知道的全部信息,即自己的路由表

按照固定的时间间隔交换路由信息

RIP协议存在一个问题是:当网络出现故障时,要经过比较长的时间才能将此信息传送到所有的路由器。

 

开放最短路径优先OSPF:

OSPF原理简单,实现复杂,使用了Dijkstra提出的最短路径算法SPF。

OSPF最主要特征是使用分布式链路状态协议,而不是项RIP那样的距离向量协议。和RIP协议相比,OSPF的单个要点和RIP都不一样。

1. 向本自治系统中所有路由器发送信息。这里使用的方法是洪泛法。

洪泛法

在OSPF协议中,当链路状态发生变化时要用Flooding向所有路由器发送信息。

2. 发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息,“链路状态”包括本路由器和哪些路由器相邻,以及链路的一些度量信息,而RIP协议发送的是到所有连路由器的距离和下一跳路由器。

3. 只有当链路状态发生变化时,路由器猜想所有路由器用洪泛法发送信息。

 

 

找出各层中有哪些协议?他们的作用分别是什么?

 

 

物理层:

现有的计算机网络中的硬件设备和传输媒体的种类非常繁多,而通信手段也有许多不同的差异。物理层的作用正是尽可能的屏蔽掉这些差异,使物理层上面的数据链路层感觉不到这些差异,这样就可使数据链路层只需要考虑如何完成本层的协议和服务,而不必考虑网络具体的传输媒体是什么。用于物理层的协议也常称为物理层规程。其实物理层规程就是物理层协议。

    物理层的主要任务描述为确定与传输媒体的接口有关的一些特性:

        1、机械特性 指明接口所用接线器的形状和尺寸、引脚数目和排列、固定和锁定装置等等。

        2、电气特性  指明在接口电缆的各条线上出现电压的范围

        3、功能特性  指明某条线上出现的某一点平的电压表示何种意义

        4、过程特性  指明对于不同功能的各种可能事件出现的顺序

    大家知道,数据在计算机中多采用并行传输方式。但数据在通信线路上的传输方式一般都是串行传输,即逐个比特按照时间顺序传输。因此物理层还要完成传输方式的转换。

具体的物理层协议种类较多,这是因为物理连接的方式很多(例如,可以是点对点的,也可以是采用多点连接或广播连接),而传输媒体的种类也非常之多(如架空明线、双绞线)

 

 

 

 

 

计算机网络协议

网络协议简称协议,是为进行网络中数据交换而建立的规则,标准或约定

协议三要素:

1、语法

数据与控制信息的结构或格式

信号电平

2、语义

需要发出何种控制信息

完成何种动作以及做出何种响应

差错控制

3、时序

事件顺序

速度匹配

 

网络边缘:

主机(端系统)

运行网络应用程序,如web、email

客户/服务器应用模型:

    客户发送请求,接收服务器响应

对等(P2P)应用模型:

    无专用服务器

   

网络应用

 

接入网络、物理介质:

有线或无线通信链路

(接入网络:数字用户线路(DSL)、电缆网络)

 

 

 

网络核心:

互联的路由(或分组转发)

网络的网络

 

网络核心关键功能:路由+转发

 

如何实现数据从源主机发送到目的主机?

答:数据交换

数据交换的类型:电路交换   报文交换     分组交换

 

电路交换

最典型的电路交换网络:电话网络

电路交换的三个阶段:

    建立连接

    通信

    释放连接

特点:独占资源

链路共享问题:如何共享中继线:多路复用

多路复用,简称复用,是通信技术中的基本概念:共享信道

1、频分多路复用,如电视信号

2、时分多路复用

3、波分多路复用

4、码分多路复用(广泛应用于无线链路共享,如蜂窝网,卫星通信等)

 

报文交换

报文:源(应用)发送信息整体

 

分组交换

分组:报文分拆出来的一系列相对较小的数据包

分组交换需要报文的拆分与重组

存储——转发

报文交换和分组交换均采用存储——转发交换方式

 

分组交换VS电路交换

分组交换允许更多用户同时使用网络,网络资源充分共享

电路交换独占资源

 

分组交换适用于突发数据传输网络

    资源充分共享

    简单、无需呼叫建立

分组交换的缺点:可能产生拥塞,分组延迟和丢失

需要协议处理可靠数据传输和拥塞控制

 

 

 

计算机网络性能:

1、速率

速率即数据率,比特率,单位时间传输信息量,是计算机网络中最重要的一个性能指标

    速率往往是指额定速率或标称速率

2、带宽

原本指信号具有的频带宽度,即最高频率与最低频率之差,单位:赫兹(Hz)

网络的“带宽”通常是数字信道所能传送的“最高数据率”,单位:b/s(bps)

3、时延

分组交换会发生丢包和时延

(1)、结点处理延迟:差错检测,确定输出链路

(2)、排队延迟:等待输出链路可用,取决于路由器拥塞程度

(3)、传输延迟:分组长度,链路带宽

(4)、传播延迟:物理链路长度,信号传播速度

时延=(1)+(2)+(3)+(4)

4、时延带宽积

时延带宽积=传输时延x带宽,又称为以比特为单位的链路长度

5、分组丢失(丢包)

队列缓存容量有限

队列满后将被丢包

丢弃分组可能会重发(也可能不重发)

6、吞吐量/率

表示在发送端与接收端之间传送数据速率

即时吞吐量:给定时刻的速率

平均吞吐量:一段时间的平均速率

 

 

 

 

计算机网络体系结构(分层结构)

每一层遵循某些网络协议完成本层功能

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

体系结构是计算机网络的功能层次及其关系的定义

体系结构是抽象的

 

分层网络体系结构基本概念

实体:表示任何可发送或接收信息的硬件或软件进程

协议:控制两个对等实体进行通信的规则的集合,协议是“‘水平的’”

任一师徒需要使用服务,遵循本层协议,实现本层功能,向上层提供服务,服务是“垂直的”

下层协议的实现对上层的服务用户是透明的

服务访问点SAP

 

 

 

OSI参考模型

协议数据单元

用户数据+标头

 

为什么需要数据分装?

增加控制信息

构造协议数据单元(PDU)

    控制信息包括:

        地址:标识发送端/接收端

        差错检测编码:用于差错检测或纠正

        协议控制:实现协议功能的附加信息,如优先级,服务质量,和安全控制等等

 

 

 

物理层功能

接口特性

    机械特性、电气特性、功能特性、规程特性

比特编码

数据率

比特同步

传输模式

    单工

    半双工,如对讲机

    全双工

 

数据链路层功能

负责结点—结点数据传输(以帧为单元)

组帧

物理寻址

    在帧头中增加发送端和/或接收端的物理物理地址标识数据帧的发送端和/或接收端

流量控制

    避免淹没接收端

差错控制

    检测并重传损坏或丢失帧,并避免重复帧

访问(接入)控制

    在任一给定时刻决定那个设备拥有链路(物理介质)控制使用权

 

网络层功能

负责源主机到目的主机数据分组交付

    可能穿越多个网络

逻辑寻址

    全局唯一逻辑地址,确保数据分组被送达到目的主机,如IP地址

路由

    路由器(或网关)互连网络,并路由分组到最终目的主机

    路径选择

分组转发

   

 

传输层功能

负责源—目的(端—端)(进程间)完整报文传输

分段与重组

SAP寻址

    确保将完整报文交给正确进程,如端口号

连接控制(逻辑连接)

流量控制

差错控制

 

会话层功能

对话控制

    建立,维护

同步

    在数据流中插入“同步点”

最“薄”的一层

 

表示层功能

处理两个系统间交换信息的语法与语义问题

数据表示转化

    转换为主机独立的编码

加密/解密

压缩/解压缩

 

应用层功能

HTTP(web传输)、FTP(文件传输)、SMTP(电子邮件传输)协议

支持用户通过代理(如浏览器)或网络接口使用网络(服务)

 

TCP/IP参考模型

 

 

 

 

 

5层参考模型:综合OSI和TCP/IP的优点

应用层:支持各种网络应用(报文)

    FTP、SMTP、HTTP

传输层:进程—进程的数据传输(段)

    TCP、UDP

网路层:源主机到目的主机的数据分组路由与转发(数据报)

    IP协议、路由协议等等

链路层:相邻网络元素(主机、交换机、路由器等)的数据传输(帧)

    以太网、802.11(WiFi)、PPP

物理层:比特传输(比特)

 

 

应用层

网络应用体系结构

    客户机/服务器

    P2P

    混合结构

网络应用的服务需求

    可靠性

    带宽

    时延

Internet传输层服务模型

    TCP

    UDP

特定网络应用及协议

    HTTP

    SMTP、POP、IMAP

    DNS

    P2P应用

Socket编程

    TCP

    UDP

 

 

网络应用的体系结构

客户机/服务器结构(C/S结构)——如web

服务器

        7*24小时提供服务

        永久性访问地址/域名

        利用大量服务器实现可扩展性

    客户机

        与服务器通信,使用服务器提供服务

        间歇性接入网络

        可能使用动态的IP地址

        不会与其他客户机直接通信

 

点对点结构(P2P结构)——如文件分享

    没有永远在线的服务器

    任意端系统/结点之间可以直接通讯

    节点间歇性接入网络

    节点可能改变IP地址

    优点:高度可伸缩

    缺点:难于管理

混合结构

Napster

        文件传输使用P2P结构

        文件搜索采用C/S结构——集中式

 

网络应用的基础:网络应用进程通信

进程:主机上运行的程序

同一主机上的进程通信:进程间通信机制,操作系统提供

不同主机上的进程通信:信息(报文)交换

 

套接字:Socket(操作系统提供的抽象的机制),网络的API

进程间通信利用socket发送/接收信息实现

传输基础设施向进程提供API

    传输协议的选择

    参数的设置

 

什么是API?

答:API(applicationprogramming interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组历程的能力,而无需访问源码,或理解内部工作机制的细节。

 

如何寻址进程?

不同主机上的进程通信,那么每个进程必须拥有标识符

如何寻址主机——IP地址

端口号:为主机上每一个需要通信的进程分配一个端口号

        如HTTP server:80端口

          Mail server:25端口

进程的标识符

    IP地址+端口号

 

应用层协议

网络应用需遵循应用层协议

公开协议

    有RFC定义

    允许互操作

    HTTP,SMTP……

私有协议

    多数P2P文件共享应用

 

应用层协议的内容

消息的类型

    请求消息

    响应消息

消息的语法格式

字段的语义

    字段中信息的含义

规则

进程何时发送/响应消息

    进程如何发送/响应消息

 

网络应用的需求与传输层服务

网络应用对传输服务的需求

数据丢失/可靠性

时延

带宽

 

Internet提供的传输服务

TCP服务

    面向连接:客户机/服务器进程间需要建立连接

    可靠的传输

    流量控制:发送方不会发送速度过快,超过接收方的处理能力

    拥塞控制:当网络负载过重时能够限制发送方的发送速度

    不提供时间/延迟保障

    不提供最小带宽保障

UDP服务

    无连接

    不可靠的数据传输

    不提供:

        可靠性保障

        流量控制

        拥塞控制

        延迟保障

        带宽保障

Web应用

网页

网页互相链接

网页包含多个对象

    对象:HTML文件,JPEG图片,视频文件,动态脚本等

    基本HTML文件:包含对其他对象引用的链接

对象的寻址

    URL:统一资源定位器

    Scheme://host:port/path

 

HTTP协议

超文本传输协议

C/S结构

    客户:请求、接收、展示Web对象

    服务器:响应客户的请求,发送对象

使用TCP传输服务

    服务器使用80端口等待客户的请求

    浏览器发起到服务器的TCP连接

    服务器接收来自浏览器的TCP连接

    浏览器(HTTP客户端)与Web服务器(HTTP服务器)交换HTTP消息

    关闭TCP连接

HTTP协议是无状态协议

    无状态:服务器不维护任何有关客户过去所发请求的信息

 

HTTP连接的两种类型

    非持久性连接:每个TCP连接最多允许传输一个对象

        HTTP客户端向服务器进程(端口80)发起TCP连接请求——》HTTP服务器等待TCP连接请求,接收连接并通知客户端——》HTTP客户端将HTTP请求消息通过TCP连接的套接字发出,消息所含的URL表明客户需要对象——》HTTP服务器收到请求消息,解析,产生包含所需对象的响应消息,并通过套接字发送给客户端——》HTTP服务器关闭TCP连接——》HTTP客户点收到响应消息,解析HTML文件,显示HTML文件

 

    持久性连接:每个TCP连接允许传输多个对象

        发送响应后,服务器保持TCP连接的打开

        后续的HTTP消息可以通过这个连接发送

 

 

RTT(从客户端发送一个很小的数据包到服务器并返回所经历的时间)

 

HTTP消息格式

HTTP协议有两种

请求消息

    上传方法:post方法  URL方法(get方法)  put  delete

响应消息

 

Cookie技术

某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常进过加密)

Cookie用途:身份认证、购物车、推荐、Web email

 

Web缓存/代理服务器技术

功能

    在不访问服务器的前提下满足客户端的HTTP请求

优点:缩短客户请求的响应时间 减少机构/组织流量   在大范围内实现有效的内容分发

 

 

Email应用的构成

组成:

邮件客户端

邮件服务器

SMTP协议

    使用TCP进行email消息的可靠传输

    端口25

    传输过程的三个阶段

        握手

        消息的传输

        关闭

命令/响应交互模式

    命令:ASCII文本

    响应:状态代码和语句

 

Email消息格式

    头部行

        To

        From

        Subject

    消息体

        消息本身

        只能是ASCII字符

SMTP:email消息的传输/交换协议

RFC 822:文本消息格式标准

MIME:多媒体邮件扩展RFC 2045,2056

    通过邮件在邮件头部增加额外的行以声明MIME的内容类型

邮件访问协议:从服务器获取邮件

POP协议

    认证/授权和下载

        认证过程

            客户端命令:声明用户名 声明密码

            服务器响应: +OK —ERR

        事务阶段

POP3是无状态的

 

IMAP协议

    更多功能

    更多复杂

    能够操作服务器上存储的消息

HTTP协议

    163,QQ等等

 

 

DNS概述

Internet上主机/路由器的识别问题

    IP地址

    域名:www.baidu.com

问题:域名和IP地址之间如何映射?

答:域名解析系统DNS

    多层命名服务器构成的分布式数据库

    应用层协议:完成名字的解析

        Internet核心功能:用应用层协议实现

        网络边界复杂

 

DNS服务

    域名向IP地址的翻译

    主机别名

    邮件服务器别名

    负载均衡:Web服务器

DNS服务采用分布式层次数据库

每个ISP都有一个本地域名服务器

    默认域名解析服务器

当主机进行DNS查询时,查询被发送到本地域名服务器

迭代查询

递归查询

 

DNS记录和消息格式

资源记录(RR):RR format:name  value  type  ttl

Type=A

    Name:主机域名

    Value:IP地址

Type=NS

    Name:域(edu.cn)

    Value:该域权威域名解析服务器的主机域名

Type=CNAME

    Name:某一真实域名的别名

    Value:真实域名

Type=MX

    Value:是与name相对应的邮件服务器

DNS协议与信息

DNS协议:

    查询query和恢复reply

    消息格式相同

    消息头部

    Flags

如何注册域名?

    在域名管理机构注册域名

        向域名管理机构提供你的权威域名解析服务器的名字和IP地址

        域名管理机构向com顶级域名解析服务器中插入两条记录

 

 

P2P应用

纯P2P架构(peer-to-peer)

没有服务器

任何端系统之间直接通信

节点阶段性接入Internet

节点可能更换IP地址

上传速率高,则能找到更好的交易伙伴,从而更好的获取文件

 

 

P2P:索引信息

P2P系统的索引:信息到节点位置(IP地址+端口号)的映射

文件共享(电驴)

即时消息(QQ)

Napster最早采用这种设计

    节点加入时,通知中央服务器:IP地址  内容

    查找主机

    请求文件传输

洪泛式查询

    完全分布式架构

    每个节点对它共享的文件进行索引,且只对它共享的文件进行索引

    GnutElla采用这种架构

 

查询 消息通过已有的TCP连接发送

节点转发查询消息

如果查询命中,则利用反向路径发回查询节点

 

层次式覆盖网络

介于集中式索引和洪泛查询之间的方法

每个节点或者是一个超级节点,或者被分配一个超级节点

节点和超级节点间维持TCP连接

某些超级节点对之间维持TCP连接

超级节点负责跟踪子节点的内容

 

P2P案例应用:Skype

本质上是P2P的:用户/节点对之间直接通信

私有应用层协议

采用层次式覆盖网络架构

索引负责维护用户名与IP地址间的映射

索引分布在超级节点上

 

 

Socket编程-应用编程接口(API)

网络程序设计接口

 

应用编程接口API:就是应用进程的控制权和操作系统的控制权进行转换的一个系统调用接口

典型的应用编程接口(API):

套接字(socket)

WINSOCK

TLI

 

Socket API

    最初设计:

    面向BSD

    面向TCP/IP协议栈接口

通信模型:

    客户/服务器(C/S)

    应用进程间通信的抽象机制

标识通信端点(对外):

    IP地址+端口号

操作系统/进程如何管理套接字(对内)?

    套接字描述符

 

Socket抽象

类似于文件的抽象

    使用TCP/IP协议族的网络应用程序声明断点地址变量时,使用结构sockaddr_in

 

 

 

传输层

传输层服务的基本理论和基本机制

    多路复用

    可靠数据传输机制

    流量控制机制

    拥塞控制机制

Internet的传输层协议

    UDP:无连接传输服务

    TCP:面向连接的传输服务

    TCP拥塞控制

 

传输层服务的概述

传输层协议为运行在不同Host的进程提供一种逻辑通信机制(端—端的通信机制)

端系统运行传输层协议

    发送方:将应用递交的消息分成一个或多个的segment,并向下传给网络层

    接收方:将接收到的segment组装成消息,并向上交给应用层

传输层可以为应用提供多种协议

    Internet上的TCP

    Internet上的UDP

 

Internet传输层协议

TCP(可靠、按序的交付服务)

    拥塞控制

    流量控制

    建立连接

UDP(不可靠的交付服务)

这两种服务均不保证

    延迟

    带宽

多路复用和多路分用

 

UDP

基于Internet IP协议

    复用/分用

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值