计算机网络(期末复习5、6章)

第五章 运输层

可靠传输的实现机制:

  • 面向连接、流量控制、拥塞控制
  • 差错检测、确认、编号、定时器
    一、 运输层两个主要协议的特点,提供的功能

TCP协议这种逻辑通信信道就相当于一条全双工的可靠信道,UDP协议这种逻辑通信信道是一条不可靠信道。

UDP:一种无连接协议

主要特点:

  1. UDP是无连接的,发送数据之前不需要建立连接
  2. UDP使用尽最大努力交付,不保证可靠交付
  3. UDP是面向报文的,UDP一次交付一个完整的报文
  4. UDP没有拥塞控制,网络出现拥塞不会使源主机的发送速率降低
  5. UDP支持一对一、一对多、多对一和多对多的交互通信
  6. UDP的首部开销小,只有8个字节,比TCP的20个字节的首部要短。

主要功能:只在IP的数据报服务之上增加了复用、分用和差错检测的功能。

计算校验和的例子:

TCP:一种面向连接的协议

主要特点:

  1. TCP是面向连接的运输层协议
  2. 每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的
  3. TCP提供可靠交付的服务
  4. TCP提供全双工通信
  5. 面向字节流

TCP协议主要功能:

  1. 完成对数据报的确认、流量控制和网络拥塞
  2. 自动检测数据报,并提供错误重发的功能
  3. 将多条路径传送的数据报按照原来的顺序进行排列
  4. 控制超时重发,自动调整超时值

注意:

  • TCP连接时一条虚连接而不是一条真正的物理连接
  • TCP对应用进程一次把多长的报文发送到TCP的缓存中是不关心的
  • TCP根据对方给出的窗口只和当前网络拥塞的程度来决定一个报文段应包含多少个字节
  • TCP可把太长的数据块划分短一些再传送
  • TCP也可等待积累有足够多的字节后再构成报文段发送出去

TCP的连接:
          TCP连接的端点叫做套接字或插口。端口号拼接到IP地址即构成了套接字。
          套接字socket = (IP地址 :端口号)

二、 TCP发送窗口机制
TCP连接的每一端都必须设有两个窗口(发送窗口和接收窗口),TCP两端的四个窗口经常处于动态变化之中。

具体的内容可以看书本的221~224页,图太多,我就不截了

超时重传时间设置:
TCP采用了一种自适应算法,它记录一个报文段发出的时间,以及收到相应的确认的时间,这两个时间之差就是报文段的往返时间RTT。

新的RTTs(加权平均往返时间) = (1-α) x (旧的RTTs) + α x (新的RTT样本)

注意:0 ≤ α < 1,若接近于零,表示RTT值更新较慢;若接近于1,表示RTT值更新较快。

三、 TCP建立连接

运输连接有三个阶段:

  • 连接建立
  • 数据传送
  • 连接释放

建立连接过程解决的三个问题:

  1. 要使每一方都能够确知对方的存在
  2. 要允许双方协商一些参数
  3. 能够对运输实体资源进行分配

TCP连接的建立采用客户服务器方式。主动发起连接建立的应用进程叫做客户,被动等待连接建立的应用进程叫做服务器。

TCP建立连接的过程叫做握手,握手需要在客户和服务器之间交换三个TCP报文段,称之为三报文握手。采用三报文握手主要是为了防止已失效的连接请求报文段突然又传送到了,因而产生错误。

四、 TCP的拥塞算法及应用

拥塞:某段时间,若对网络中某资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏。

拥塞引起的重传并不会缓解网络的拥塞,反而会加剧网络的拥塞。

TCP采用基于窗口的方法进行拥塞控制,这种方法属于闭环控制方法。

TCP拥塞控制流程图

TCP的四种拥塞控制算法:

  • 慢开始
    拥塞窗口cwnd控制方法:在每收到一个对新的报文段的确认后,可以把拥塞窗口增加最多一个SMSS的数值。拥塞窗口cwnd每次的增加量 = min(N,SMSS)
    一个传输轮次所经历的时间其实就是往返时间

    慢开始门限ssthresh的用法:

    • 当cwnd < ssthresh时,使用慢开始算法
    • 当cwnd > ssthresh时,停止使用慢开始算法而该用拥塞避免算法
    • 当cwnd = ssthresh时,都可以使用
  • 拥塞避免
    思路:让拥塞窗口cwnd缓慢增大,即每经过一个往返时间RTT就把发送放的拥塞窗口cwnd加1,而不是加倍,使拥塞窗口cwnd按线性规律缓慢增长

    “拥塞避免”并非指完全能够避免了拥塞,只是说在拥塞避免阶段把拥塞窗口控制为按线性规律增长,使网络比较不容易出现拥塞。
  • 快重传
    采用快重传算法可以让发送方尽早知道发生了个别报文段的丢失。

    快重传算法首先要求接收方不要等待自己发送数据时才进行捎带确认,而是要立即发送确认,即使收到了失序的报文段也要立即发出对已收到的报文段的重复确认。

    发送方只要一连接收到三个重复确认,就知道接收方确实没有收到报文段,因而应该立即进行重传。

  • 快恢复
    当发送端收到连续三个重复的确认时,由于发送方现在认为网络很可能没有发生拥塞,因此现在不执行慢开始算法,而是执行快恢复算法。

详细版本

探研:


  1. 若一个应用进程使用运输层的用户数据报UDP,但继续向下交给IP层后,又封装成IP数据报。既然都是数据报,是否可以跳过UDP直接交给IP层?哪些功能UDP提供但IP没有提供?

    答:IP数据报只能找到目的主机而无法找到目的进程。UDP提供对应用进程的复用和分用功能,并提供对数据部分的差错检验。

  2. 在停止等待协议中如果不使用编号是否可行

    答:在现实的数据传输中,很难保证数据的传输既不丢失也不出现差错,所以在停止等待协议中应当使用序号。

  3. 在使用TCP传送数据时,如果有一个确认报文段丢失了,也不一定会引起与该确认报文段对应的数据的重传。试说明理由。

    答:因为发送方还未超时重传,就收到了接收方对更高序号的确认。在采用tcp进行数据传输时,接收端发送的确认报文段是对前面收到的正确无误数据的确认,同时告诉发送端自己欲接收的下一个报文段序号值。

  4. 若收到的报文段无差错,只是未按序号,中间还缺少一些序号的数据,那么能否设法只传送缺少的数据而不重传已经正确到达接收方的数据?

    答:选择确认SACK就是一种可行的处理方法。

  5. tcp在进行拥塞控制时是以分组的丢失作为产生拥塞的标志,有没有不是因为拥塞而引起的分组丢失的情况?举例

    答:有。一是信道误码导致中间结点将分组丢弃;二是路由错误导致分组在网络中兜圈子最后被路由器丢弃;三是中间路由器在接收了分组还没有转发出去时故障,导致分组丢失。这些情况发生的概率都比较小。

  6. 为什么在TCP首部中有一个首部长度字段,而UDP的首部中就没有这个字段?

    答:TCP首部除固定长度部分外,还有选项,因此TCP首部长度是可变的。UDP首部长度是固定的

习题:


  1. 运输层在协议栈中的地位和作用。运输层的通信和网络的通信有什么重要的区别?为什么运输层是必不可少的?

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

    运输层为应用进程之间提供端到端的逻辑通信,但网络层是为主机之间提供逻辑通信(面向主机,承担路由功能,即主机寻址及有效的分组交换)。

    各种应用进程之间通信需要“可靠或尽力而为”的两类服务质量,必须由运输层以复用和分用的形式加载到网络层。

  2. 一个UDP用户数据报的数据字段为8192字节。在链路层要使用以太网来传送,试问应当划分为几个IP数据报片?说明每一个IP数据报片的数据字段长度和偏移字段的值

    答:

  3. 主机A和B使用TCP通信。在B发送过的报文段中,有这样两个先后到达的报文段:ACK=120和ACK=100,即前一个报文段的确认序号大于后一个。请解释原因。

    答:ACK=120 的报文 比 ACK=100的先到。
    虽然ACK=100 是先发出来的,但是路径开销比ACK=120 的报文要大。
    就好像两辆车从A地出发到B低去,A车先走,B车其次。A车走国道,B车走高速。所以B先到了。

  4. 设TCP的ssthresh的初始值为8.当拥塞窗口上升到12时网络发生了超时,TCP使用慢开始和拥塞避免,试分别求出第1~15次传输的各拥塞窗口大小

    答:1、2、4、8、9、10、11、12、1、2、4、6、7、8、9

  5. 一个UDP用户数据报的首部的十六进制表示是06 32 00 45 00 1C E2 17。求源端口、目的端口、用户数据报总长度、数据部分长度。

    解:

  6. 主机A向主机B发送一个很长的文件,其长度为L字节。假定TCP使用的MSS有1460字节。在TCP的序号不重复使用的条件下,L的最大值是多少?假定使用上面计算出文件长度,而运输层、网络层和数据链路层所使用的首部开销共66字节,链路的数据率为10Mb/s,试求这个文件所需的最短发送时间。

    解:
    (1) L_max的最大值是2^32=4GB,G=2^30.
    (2) 满载分片数Q={L_max/MSS}取整=2941758,发送的总报文数N=Q*(MSS+66)+{(L_max-Q*MSS)+66}=4489122708+682=4489123390字节,发送字节需时间为:N*8/(10*10^6)=3591.3秒,即59.85分,约1小时。

    计算总报文数的另一种方法:L_max + (Q+1)*66

  7. 通信信道带宽为1Gbit/s,端到端时延为10ms。TCP的发送窗口为65535字节。试问: 可能达到的最大吞吐量是多少?信道的利用率是多少?

    解:发送时延 = 数据长度 / 信道带宽,信道利用率 = 最大吞吐量 / 信道带宽

第六章 应用层

一、 DNS的基本概念、作用及解析过程

域名:因特网上主机的名字,体现其逻辑位置

特点:与IP地址对应,更容易记忆。

作用:域名系统DNS是因特网使用的命名系统,用来把便于人们使用的域名转换为IP地址。

域名的解析过程:

  • 主机向本地域名服务器的查询一般都是采用递归查询
  • 本地域名服务器向根域名服务器的查询通常采用迭代查询

二、 FTP的基本概念及两个连接机制

文件传送协议FTP是互联网上使用得最广泛的文件传送协议。FTP提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限。FTP屏蔽了各计算机系统的细节,因而适合于在异构网络中任意计算机之间传送文件。

FTP特点:

  • 只提供文件传送的一些基本的服务,它使用TCP可靠的运输服务
  • 主要功能是减少或消除在不同操作系统下处理文件的不兼容性
  • 使用客户服务器方式。FTP的服务器进程由两部分组成:一个主进程,负责接收新的请求;另外有若干个从属进程,负责处理单个请求。

两个连接:

  • 控制连接在整个会话期间一直保持打开,FTP客户发出的传送请求通过控制连接发送给服务器端的控制进程,但控制连接不用来传送文件
  • 实际用于传输文件的是“数据连接”。服务器端的控制进程在接收到FTP客户发送来的文件传输请求后就创建“数据传送进程”和“数据连接”,用来连接客户端和服务器端的数据传送进程。数据传送进程实际完成文件的传送,在传送完毕后关闭“数据传送连接”并结束运行。

使用两个不同端口号(建立连接请求端口:21、传送数据端口:20)的好处:

  • 使协议更加简单和更容易实现
  • 在传输文件时还可以利用控制连接

三、 万维网的基本概念,URL的格式

万维网是一个大规模的、联机式的信息储藏所。万维网用链接的方法能非常方便地从互联网上的一个站点访问另一个站点,从而主动地按需获取丰富的信息,这种访问方式称为“链接”

统一资源定位符URL:
          是对可以从因特网上得到的资源的位置和访问方法的一种简洁的表示。URL给资源的位置提供一种抽象的识别方法,并用这种方法给资源定位。

URL的一般形式是:

四、 电子邮件系统构成、协议,SMTP通信的三个阶段

电子邮件系统由三部分构成:用户代理、邮件服务器以及邮件发送协议和邮件读取协议。

电子邮件构成:信封和内容

协议

  1. 简单邮件发送协议SMTP:

  2. 邮件读取协议POP3:

    • 邮局协议POP是一个非常简单但是功能有限的邮件都区协议,现在使用的是它的第三个版本POP3。
    • POP也使用客户-服务器的工作方式
    • 在接收邮件的用户pc机中必须运行POP客户程序,而在用户所连接的ISP的邮件服务器中则运行POP服务器程序
  3. 邮件读取协议IMAP:

    • IMAP也是按客户服务器方式工作,现在较新的是版本4
    • 用户在自己的pc机上就可以操纵ISP的邮件服务器的邮箱,就像在本地操纵一样
    • IMSP是一个联机协议。当用户pc机上的IMAP客户程序打开IMAP服务器的邮箱时,用户就可看到邮件的首部。若用户需要打开某个邮件,则该邮件才传到用户的计算机上。

SMTP通信三个阶段:

  1. 连接建立:连接实在发送主机的SMTP客户和接收主机的SMTP服务器之间建立的。SMTP不使用中间的邮件服务器
  2. 邮件传送
  3. 连接释放:邮件发送完毕后,SMTP应释放TCP连接

探研:


  1. 设想有一天整个因特网的DNS系统都瘫痪了,试问还有可能给朋友发送电子邮件吗?

    答:能。

  2. 域名系统的主要功能是什么?域名系统中的本地域名服务器、根域名服务器、顶级域名服务器以及权限名服务器有何区别?

    答:域名系统DNS是因特网使用的命名系统,用来把便于人们使用的机器名字(域名)转换为IP地址

    • 本地域名服务器离用户较近,一般不超过几个路由器的距离。当一个主机发出DNS查询请求时,这个查询请求报文就发送给本地域名服务器。当所要查询的主机也属于同一个本地ISP时,该本地域名服务器立即就能将所查询的主机名转换为它的IP地址,而不需要再去询问其他的域名服务器。
    • 根域名服务器是最高层次的域名服务器,也是最重要的域名服务器。所有的根域名服务器都知道所有的顶级域名服务器的域名和IP地址。不管是哪一个本地域名服务器,若要对因特网上任何一个域名进行解析,只要自己无法解析,就首先求助于根域名服务器。
    • 顶级域名服务器负责管理在该顶级域名服务器注册的所有二级域名。当收到DNS查询请求时,就给出相应的回答(可能是最后的结果,也可能是下一步应当找的域名服务器的IP地址)。
    • 权限域名服务器是负责一个区的域名服务器,用来保存该区中的所有主机的域名到IP地址的映射。当一个权限域名服务器还不能给出最后的查询回答时,就会告诉发出查询请求的DNS客户,下一步应当找哪一个权限域名服务器。
  3. 基于万维网的电子邮件系统有什么特点?在传送邮件时使用什么协议?

    答:特点:不管在什么地方,只要能上网,在打开万维网浏览器后,就可以收发电子邮件。这时,邮件系统中的用户代理就是普通的万维网。电子邮件从A发送到网易邮件服务器是使用HTTP协议。两个邮件服务器之间的传送使用SMTP。邮件从新浪邮件服务器传送到B使用HTTP协议。

  4. DHCP 协议用在什么情况下?当一台计算机第一次运行引导程序时,其 ROM 中有没有该主机的 IP 地址、子网掩码或某个域名服务器的 IP 地址?

    答:动态主机配置协议DHCP提供了即插即用连网的机制。这种机制允许一台计算机加入新的网络和获取IP地址而不用手工参与。ROM中当然不可能有IP相关的信息。

  5. 为什么有的应用层协议要使用TCP而有的却要使用UDP?

    答:正确答案:应用层协议根据各自功能的需求,有的需要使用面向连接的TCP服务,提供可靠的数据传输服务,如FTP,HTTP等;有的协议使用无连接的UDP服务,提供比较灵活的服务,如DHCP,SNMP等。

  6. 为什么MIME花在SMTP上面?

    答:MIME协议是扩展了的SMP协议,是基于SMTP的,所以要放在SMTP上面画。

  7. 为什么路由选择协议RIP放在应用层?

    答:由于RIP协议是基于UDP协议而创建的,所以RIP协议应放在UDP协议的上一层。

习题:


  1. 如果本地域名服务器无缓存,当采用递归方法解析另一个网络某主机域名时,用户主机和本地域名服务器发送的域名请求条数分别为 1条、1条

    解析:当采用递归查询的方法解析域名时,如果主机所询问的本地域名服务器不知道被查询域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其他根域名服务器继续发出查询请求报文,这种方法中用户主机和本地域名服务器发送的域名请求条数均为1条。

  2. 当使用鼠标点击一个万维网文档时,若该文档除了有文本外,还有一个本地.gif图像和两个远地.gif图像。试问;需要使用那个应用程序,以及需要建立几次UDP连接和几次TCP连接?

    答:若使用HTTP/1.0,需要建立0次UDP连接,4次TCP连接;若使用HTTP/1.1,需要建立0次UDP连接,1次TCP连接。

-------------本文结束感谢您的阅读-------------