美文网首页
计算机网络复习整理(二)

计算机网络复习整理(二)

作者: BEYOND黄 | 来源:发表于2017-06-27 00:55 被阅读139次

    协议的定义:在两个或多个通信实体间所交换消息的格式和顺序,及发出/或收到一个消息或者其他事件时应该采取的行动。

    协议的分层:应用层,运输层,网络层,链路层,物理层。

    osi模型分层:应用层,表示层,会话层,运输层,网络层,数据链路层,物理层。

    应用层:报文。运输层,报文段;网络层:数据报;链路层:帧。

    应用层

    进程通信

    客户端进程与服务器进程进行通信

    进程与计算机网络之间的接口socket套接字:进程通过一个套接字的软件接口向网络发送报文和从网络接受报文。进程好比是一个房子,而套接字则是大门。因此,套接字被称为应用程序和网络之间的应用程序编程接口。(api)

    应用程序开发者可以控制套接字在应用层端的一切,但是对套接字的运输层端几乎没有控制权,仅限于:

    选择运输层协议

    也许能设定几个运输参数,如最大缓存和最大报文段长度。(传输层详细解释)。

    进程寻址:源主机的进程为了向目的进程发送主机。接受集成需要一个地址。为了标识接受进程,需要定义两种信息:1. 主机的地址2. 定义在目的主机中的接受进程的标识符。在因特网中,主机由其ip地址标识。(ip在网络层详细讲)。除了目的主机地址,还需要目的主机的接受进程。目的地端口号(port number)用于这个目的。利于web服务器用端口号80来标识。

    可供应用程序使用的运输服务:

    前面说过,套接字是应用层和运输层的接口。那么运输层协议能为应用程序提供什么服务呢?应用程序服务要求大体分为四类:

    可靠数据运输

    吞吐量:可用吞吐量就是发送进程能够向接受进程交付比特的速率。具有吞吐量要求的应用程序被称为带宽敏感的应用。而弹性应用能够根据情况利用可供使用的吞吐量。

    定时:提供定时保证(游戏实时性)

    安全性:

    因特网提供的运输服务:tcp,udp。文件传输,电子邮件,web文档等等对需要可靠数据传输,对带宽的要求是弹性。不需要实时性。而网上语音或视频对数据丢失是容忍的,对吞吐量有一定要求,需要实时性。存储音频视频,对数据是容忍丢失的,对吞吐量有要求,需要实时性,但要求没有视频通话高。

    tcp服务是面向连接服务和可靠数据传输服务。具有拥塞控制服务,这不一定能为通信进程带来好处,但能为因特网带来整体好处。当发送方和接受房之间的网络出现拥塞时,tcp会抑制发送进程(客户或服务器)。也会试图限制每个tcp连接,使它们达到公平共享网络宽带的目的。

    无论tcp还是udp都没有提供任何加密机制,所以因特网届研发了tcp的加强版,ssl,安全套接字层。用ssl对tcp进行加强,提供了安全性服务,包括加密等等。tcp,udp服务不提供定时和带宽保证。

    udp是一种不提供不必要服务的轻量级运输协议,他仅提供最小服务。不可靠数据传送服务,到达接受进程的报文也可能乱序到达的。

    电子邮件 - SMTP - TCP

    远程终端访问 - Telnet - TCP

    Web - HTTP -TCP

    文件传输 -FTP - TCP

    流媒体 -HTTP/RTP - TCP或UDP

    远程文件传输 - NFS -UDP或TCP

    因特网电话 -SIP,RTP或专用 -通畅UDP。

    HTTP概述

    Web的应用层协议是Http。它是web的核心。

    Http由两个程序实现,客户端程序,服务器程序。客户端和服务器端程序运行在不同的端系统中,通过交换Http报文进行会话。Http定义了这些报文的结构以及客户和服务器进行报文交换的方式。

    Http使用TCP作为她的支撑运输协议,Http客户先发起一个与服务器的TCP连接。一但连接建立,浏览器和服务器进程就可以通过套接字接口访问TCP。

    因为HTTP服务器并不保存关于客户的任何信息,所以我们说Http是无状态协议。

    持续连接连接,非持续性连接

    非持续连接:每个请求经过一个单独的Tcp进行的

    持续性连接:所有请求及其响应经相同的tcp链接发送。

    采用非持续连接的http:

    往返时间:指一个短分组从客户端到服务器然后再返回客户所花费的时间。

    总的响应时间:2个RTT(三次握和请求接受对象)加上服务器传输HTML文件的时间。这里tcp第三次握手即客户端向服务器发送确认时,同时发送请求报文。

    非持续连接的缺点:必须为每一个请求的对象建立和维护一个全新的连接,对于每个这样的连接,在客户机和服务器都要分配TCP的缓冲区和变量,给服务器带来严重负担。其次,每一个对象传输时延为两个RTT,一个用来建立TCP,另一个用于请求接受对象。

    采用持续连接得http:

    非持续连接必须为每个请求的对象建立和维护一个全新得连接。这给web服务器带来严重的负担。而且每一个对象经受两倍RTT的交付时延。

    采用持续连接得情况下,服务器在发送响应后保持该tcp连接打开。在相同的客户与服务器之间的后续请求和响应报文能够通过相同的连接进行传送。如果一个连接经过一定的时间间隔(可配置)仍未被使用,这个http连接就会关闭。

    Http报文格式

    http请求报文第一行是请求行(方法字段,url字段,http版本),下一行是首部行。。P70

    http响应报文:1.初始状态行2.6个首部行,实体体p71。

    200 OK,301

    Moved Permanently:请求的对象被永久转移了。

    400 Bad request

    404 Not Found

    505 Http Version Not Supported.

    cookie:http是无状态的,为了能够识别用户,使用cookie。cookie允许站点对用户进行跟踪。可以在无状态的HTTP上建立一个用户会话层。

    web缓存器(web cache):代理服务器,能够代表初始Web服务器来满足HTTP请求得网络实体。可以大大减少客户请求得响应时间。

    FTP

    和http一样,运行在tcp上,ftp使用了两个并行的tcp连接来传输文件,一个是控制连接,一个是数据连接。

    控制连接用于在两主机之间传输控制信息,如用户标识,口令,改变远程目录的命令以及存放获取文件的命令。

    数据连接主要用于用于实际发送一个文件。因为ftp使用一个独立的控制连接,所以我们称ftp为带外传送。因此http是带内传送。

    ftp必须在整个会话期间保留用户的状态。

    SMTP

    用于从发送方的邮件服务器发送报文到接收方的邮件服务器。一般不使用中间服务器发送邮件,即使这两个邮件服务器在地球的两端。基于tcp连接。

    Http主要是一个拉协议,从服务器拉数据。而SMTP是一个推协议。把邮件推到服务器。

    DNS(域名系统)

    识别主机的方式:通过主机名或者IP地址。DNS的任务就是进行主机名到ip地址得转换的目录服务,将用户提供的主机名解析为ip地址。

    DNS是1.一个由分层得DNS服务器实现的分布式数据库2.一个使得主机能够查询分布式数据库的应用层协议。DNS协议运行在UDP之上,使用53号端口。

    小例子:P88

    除了进行主机名到ip地址得转化外,DNS还提供一些重要得服务。

    主机别名

    邮件服务器别名

    负载分配

    如果采用集中式设计,会导致

    单点故障:一个服务器崩溃,整个网崩。

    通信容量:处理多有DNS查询。

    远距离的集中式数据库

    维护:数据太多。

    所以我们采用分布式,层次数据库。

    DNS使用大量的服务器,以层次方式组织,并且分布在全世界范围内。没有一台DNS具有因特网上所有主机的映射。

    DNS服务器的类型:

    根DNS服务器

    顶级域(TLD)服务器

    权威DNS服务器

    本地DNS

    DNS缓存:当DNs服务器接收到一个DNS回答,(包含主机名到ip地址)她将该回答中的信息缓存在本地存储器中。由于主机和主机名与ip地址之间的映射不是永久的,所以DNS服务器在一段时间后将丢弃缓存信息。

    运输层

    网络层提供了主机之间得逻辑通信,而运输层为运行在不同主机上的进程之间提供了逻辑通信。运输层协议只工作在端系统中。在端系统中,运输层协议将来字应用进程的报文移动到网络边缘(网络层),但对有关这些报文在网络核心如何移动并不做任何规定。例如,中间路由器记不处理也不识别运输层加在应用报文的任何信息。运输层协议一种是udp(用户数据报协议),他为调用她的应用程序提供了一种不可靠,无连接得服务。另一种是tcp(传输控制协议),他为调用她的应用程序提供了一种可靠得,面向连接得服务。

    多路复用和多路分解:将主机间交付扩展到进程间交付被称为多路复用和多路分解。一个进程有一个或多个套接字(socket),他相当于从网络向进程传递数据和从进程向网络传递数据得门户。将运输层报文度段中的数据交付到正确得套接字得工作称为多路分解。在源主机从不同套接字中收集数据块,并为每个数据块封装上首部信息(这将在以后用于分解)从而生成报文段,然后将报文段传递到网络层,所有这些工作称为多路复用。

    无连接运输:UDP

    udp从进程获得数据,附加上用于多路复用/分解服务得源和目的端口号字段,以及两个其他得小字段,然后将报文段交给网络层。网络层将该运输层报文段封装到一个ip数据报中,然后将形成得报文段交付给接受主机。如果该报文段到达接受主机,UDP使用目的得端口号将报文端得数据交付给正确得应用进程。在使用udp时,在发送报文段之前,发送方和接受方得运输层实体之间没有握手。所以,udp是无连接的。DNS运行在udp上。

    udp的优点:

    关于何时,发送什么数据得应用层控制更为精细。只要应用进程数据传递给udp,udp就会将此数据打包进udp报文段并将其立即传递给网络层。

    无需连接建立。无连接时得时延。这是dns运行在udp上的主要原因

    无连接状态。tcp需要在端系统维护连接状态。

    分组首部开销小。tcp有20字节,udp有8字节。

    电子邮件(SMPT)远程终端访问(TELNET)Web(HTTP)文件传输(FTP)通常采用TCP。远程文件服务器(NFS)名字转换(DNS)路由器选择协议(RIP)网络管理(SNMP)用UDP。流失多媒体,因特网电话(UDP或TCP),目前这两个多用udp,因为tcp得拥塞控制会导致视频通话的实时应用性能变得差。但当多人都启动高清视频通话,路由器会有大量分组溢出,以至于导致没有分组到达目的。

    udp提供了差错检测功能。udp检验和用于确定当udp报文段从源到达目的移动时,其中的比特是否发生改变。

    可靠数据传输原理

    reliable data transfer protocol(可靠传输协议)

    构造可靠数据传输协议。

    经完全可靠信道的可靠数据传输:rdt1.0

    径具有比特差错信道的可靠数据传输:rdt2.0

    经具有比特差错的丢包信道的可靠数据传输:rdt3.0

    流水线可靠数据传输协议。允许发送方发送多个分组而无需等待确认。流水线技术对可靠数据传输协议带来如下影响:

    必须增加序号范围

    协议的发送方和接受端也许必须缓存多个分组。发送方最低限度应当能缓存那些已发送但没有确认的分组。接收方也需要缓存那些以正确接受的分组。

    流水线的差错恢复有两种基本方法:回退N步(GBN),选择重传(SR)

    回退N步协议(GBN),允许发送方发送多个数组而不需等待确认,但他也受限于在流水线中未确认的分组数不能超过某个最大允许数N。在GBN协议中,接收方丢弃所有失序分组。

    选择重传协议:GBN存在性能问题,但个分组的差错就能引起GBN重传大量分组,许多分组根本没有必要重传。而选择重传协议通过让发送方仅重传那些它怀疑在接收方出错的分组而避免比不必要的重传。

    面向连接得运输:TCP

    tcp被称为面向连接,因为一个应用程序可以开始向另一个进程发送数据前,两个进程必须进行三次握手。

    tcp连接提供的是全双工服务(full-duplex service):数据可以从进程A流向B,也可以从B到A。tcp连接也是点对点的,不存在所谓的多播。

    客户端进程想与服务器进程建立一条连接。客户首先发送一个特殊的tcp报文段,服务器用另一个特殊的tcp报文段来响应。最后客户在用第三个特殊报文段作为响应。----三次握手

    四次挥手:1.假设客户端主动断开连接,向服务器发送fin报文,这个报文主要告诉服务器客户端已经没有数据想要传给服务器,但是服务器你如果有数据没传输完的话,先不用断开socket连接,可以继续发你的数据,先给客户端发ack报文。2.服务器收到报文,看了fin的报文,给客户端发了ack报文,告诉客户端服务器已经收到了消息,但我还有事没做完,让客户端等会。3.这时候客户端进入FIN_WAIT状态,即等待服务器给他发fin报文。当服务器确定传输的数据都发完了,再向客户端发送fin报文。告诉客户端我已经传输完所有数据了,可以关闭socket连接。4.客户端收到fin报文,就知道socket要断开连接了,向服务器发送ack报文,但客户端不确定这个报文是否传到服务器了,于是进入Time_wait状态,如果服务器没有收到ack报文则进行重传,如果等待30s没有收到消息说明连接服务器端已经关闭了,客户端可以安心关闭了。这样tcp就断开了。

    可靠数据传输:因特网的网络层服务(IP)是不可靠的,不能保证数据报的交付,和数据包的按序交付和数据完整性。

    TCP拥塞控制 congestion control:让每一个发送方根据所感知的网络拥塞程度来限制其能向连接发送流量速率。

    tcp拥塞算法3个主要部分:

    慢启动

    拥塞避免

    快速恢复

    回顾

    网络层

    网络层的主要功能就是将分组从一台发送主机移动到一台接受主机。

    转发与路由选择:

    转发。当一个分组到达路由器的一条输入链路时,路由器必须将该分组移动到适当得输出链路。每台路由器都有一张转发表。

    路由选择。当分组从发送方流向接收方时,网络层必须决定这些分组所采用的路由货路径。计算这些路径得算法被称为路由选择算法。

    网络层除了转发和路由选择还有连接建立这个功能,

    网络层提供了单一的服务,称为尽力而为服务(best-effort service)。

    网络层也能提供无连接服务或连接服务,与运输层的相似。

    在网络层,这些服务是由网络层向运输层提供的主机到主机的服务。在运输层中,这些服务则是运输层向应用层提供的进程到进程的服务。

    在运输层实现面向连接的服务和网络层上的是不同的。运输层面向连接时位于网络边缘的端系统中实现的,网络层连接服务除了端系统中,也位于网络核心的路由器中实现。

    虚电路网络(virtual-circuit):仅在网络层提供连接服务的计算机网络

    数据包网络(datagram network)仅在网络层提供无连接服务的计算机网络

    网络服务模型:

    确保交付

    具有时延上界的确保交付

    有序分组交付

    确保最小带宽

    确保最大时延抖动

    安全性服务

    因特网的网络层有三个组件:

    ip协议。

    路由选择部分,决定了数据包路径

    报告数据报中的差错和对某些网络层信息请求进行响应的措施。

    ipv4编址:主机和物理链路层之间的边界叫做接口。总共可能有2^32 个IP地址。每个主机和路由器上的每个接口必须有一个全球唯一的ip地址。一个接口的ip地址的一部分由其连接的子网决定。

    子网(subnet),p226互联网多个主机与路由器接口的网络形成一个子网

    子网掩码(network mask),例如 223.1.1.0/24 其中/24记法有时称为子网掩码,指示32比特中最左侧24比特定义了子网地址。任何要连接这个网络的主机都要其地址具有223.1.1.xxx的形式

    因特网的地址分配策略被称为无类别域间路由选择(Classes Interdomain Routing,DIDR)

    在CIDR被采用前,ip地址的网络部分被限制为8,16,24比特,这是一种称为分类编址的编址方案(classful addressing),因为具有8,16,24比特子网地址的子网被称为A,B,C累网络。由于大小固定所以采用CIDR,比如C类只能容纳254台主机,256-2。

    获得ip地址过程:

    网络管理员与isp联系,isp从分给他的更大地址块中提供一些地址。

    获取主机地址:动态主机配置协议:某组织一旦获得一块地址,他就可以为组织内主机和路由器接口逐个分配ip地址。系统管理员通常手动配置路由器接口ip地址。主机地址一般使用动态主机配置协议。(DHCP)来完成。网络管理员可以配置DHCP,以使某给定主机每次与网络链接时能获得一个相同的ip,或者株距将被分配一个临时的ip地址,这个地址也许每次连接都会不同。DHCP还允许主机知道其他信息如子网掩码,默认网关,本地DNS服务器地址。由于DHCP具有将主机链接到一个网络的网络相关方面的自动能力,固有称为即插即用协议(plug-and-play protocol)。

    DCPH的步骤:1.DCPH服务器发现。2.DCPH服务器提供3.DCPH请求4.DCPH ACK。

    网络地址转换:(NAT)

    UPnP:(即插即用)

    路由器选择算法:

    主机通常直接与一台路由器相连接,即该主机的默认路由器(default router)又称第一跳路由器。路由器选择算法的目的是简单的:给定一组路由器以及连接路由器的链路,路由选择算法要找到一条从源路由器到目的路由器好的路径。即最低费用路径。

    路由器选择算法分为:

    全局式:用完整、全局性的网络知识计算出源到目的之间的最低费用路径。也就是说,该算法以所有节点之间的连通性及所有链路的费用为输入。用LS

    分散式:以迭代,分布式的方法计算出最低费用路径。用DV

    也可以分为静态(人工干预)和动态(当网络流量负载货拓扑发生变化时改变路由选择路径,容易受到路由器选择循环影响)。

    或负载敏感(链路费用会动态地变化以反应出底层链路的当前拥塞水平)和负载迟钝(相反)。

    链路状态路由选择算法(Link state LS):D(v):到算法的本次迭代,从源节点到目的节点v的最低费用路径的费用。p(v):从源到v沿着当前最低费用路径的前一个节点(v的邻居)。N’:节点子集;在所有迭代中需要搜寻的节点总数为n(n+1)/2,最差复杂性O(n^2)

    距离向量陆游选择算法(DV):

    比较:

    报文复杂性,Ls要求每个节点都知道网络中每天链路的费用。

    收敛速度:DV慢,在收敛时会遇到无穷计数的问题。

    健壮性。Ls有一定的健壮性,DV算法中一个不正确的结点计算值会扩散到整个网络。

    层次路由选择

    链路层

    链路层提供的服务:

    成帧:在每个网络层数据报经链路传送之前,几乎所有的链路层协议都要将其用链路层帧封装起来。

    链路接入:媒体访问控制协议规定了帧在链路上传输的规则。

    可靠交付:当链路层协议提供可靠交付服务时,他保证无差错地经过链路层移动每个网络层数据报。

    差错检测和纠正

    链路层的主体是网络适配器(network adapter)中实现的。

    差错检测和纠正技术:

    奇偶检验(用来描述差错检测和纠正背后隐含的基本思想)

    检验和方法(通常用于运输层)

    循环冗余检测(通常用于适配器中的链路层)。

    多路访问链路和协议:。。。

    相关文章

      网友评论

          本文标题:计算机网络复习整理(二)

          本文链接:https://www.haomeiwen.com/subject/lbihqxtx.html