计算机网络原理

目录

第一章  计算机网络和因特

1.ISP(因特网服务提供商) 

2.速率相关性能指标

2.1 速率

2.2 带宽

2.3 吞吐量

3.时延

3.1时延

3.2时延带宽积

3.3往返时延RTT

3.4 利用率

4.协议层次和服务模型

4.1为什么要分层,分层要做什么

4.2正式认识分层结构

4.3五层参考模型传输过程

 第一章章节检测

第二章  应用层

1.应用程序体系结构

2.因特网提供的运输服务

3.应用层协议

3.1 HTTP(超文本传输协议)

3.2 FTP(文件传输协议)

3.3 电子邮件协议

3.4 DNS(域名系统)

3.5 P2P应用

第二章章节检测

第三章  传输层

1.端口号与套接字

1.1 端口号

1.2 套接字

2.多路复用与多路分解

3.UDP

3.1 UDP报文段结构

4.可靠数据传输原理

4.1 完全可靠信道上的可靠数据传输(rdt1.0)

4.2 具有比特差错信道上的可靠数据传输(rdt2.0、rdt2.1、rdt2.2) 

4.3 具有比特差错的丢包信道上的可靠数据传输(rdt3.0)

4.4 流水线可靠数据传输


第一章  计算机网络和因特

端系统通过通信链路和分组交换机连接到一起,组成网络。网络和网络之间通过路由器相连,组成了因特网。因此,因特网是“网络的网络”

计算机网络原理_第1张图片

1.ISP(因特网服务提供商) 

 

端系统通过ISP接入因特网。每个ISP是一个由多个分组交换机和多段通信链路组成的网络。不同的ISP为端系统提供了各种不同类型的网络接入

为了允许因特网用户之间互相通信,允许用户访问世界范围的因特网内容,这些低层ISP通过国家的、国际的高层ISP互联起来。高层ISP是由通过高速光纤链路互联的高速路由器组成。每个ISP都是独立管理的,运行IP协议,遵从一定的命名和地址习惯

计算机网络原理_第2张图片

  • 第一层ISP(主干ISP)
    • 覆盖国际区域(十几个)
    • 与其它低层次的ISP构成“客户-提供商”的关系
    • 不向任何人付费,可以向区域ISP和接入ISP出售因特网接入 
  • (第一层外)的其它ISP
    • 可以与两个或更多ISP连接,因此,即使它的ISP之一故障,它仍能继续发送和接收分组
    • 相同等级结构层次的邻近一对ISP能够对等,对等ISP不向其对等付费,对等ISP之间的流量直接连接
  • IXP(因特网交换点)
    • 汇合点,多个ISP能够在此共同对等

2.速率相关性能指标

2.1 速率

定义:连接在计算机网络上的主机在数字信道上传送数据位数的速率
单位:b/s,Kb/s,Mb/s,Tb/s,
如果用字节表示,则是B/s,KB/s,MB/s,TB/s
1Byte=8Bit

2.2 带宽

在计算机网络中,指的是网络设备所支持的最高速度,单位同速率,是理想条件下最高速率

2.3 吞吐量

指的是单位时间内通过某个网络的数据总量

速率就是实际网速,带宽是理论网速(长城宽带警告),吞吐量是一个或多个设备的综合速率,比如说1000m宽带的路由器连着三部手机,每部手机都是10mb/s看电影,那么速率就是10mb/s,带宽是宽带的1000m,路由器吞吐量是30mb/s,即三者之和

3.时延

计算机网络原理_第3张图片

3.1时延

  • 处理时延:检查分组首部,决定将分组导向何处所需的时延
  • 排队时延:分组在链路上等待传输时,经受的排队时间
  • 传输时延:将分组的所有比特推向链路所需的时间
  • 传播时延:分组在链路中传播所需的时间
名称 描述 计算公式
发送时延 数据从主机到信道上所用的时间 发送的数据长度/发送速率
传播时延 数据在信道上传播所花费的时间 信道长度/电磁波在信道上传播的速率
排队时延 数据在路由器前等待前面数据处理的时间 无计算方式
处理时延 数据在路由器中处理需求的时间 无计算方式

 使用高速链路(提高网速),只能减小发送时延,无法减少其他三个时延

3.2时延带宽积

公式:时延带宽积=传播时延x带宽
意思是链路上有多少比特的数据

3.3往返时延RTT

发送端发送数据开始,到发送端收到来自接收端的确认(接收端收到数据后便立即发送确认),总共经历的时延
RTT=传播时延x2+处理时间(有时可能直接忽略)

3.4 利用率

1.信道利用率

信道利用率=有数据通过时间/有+无数据通过时间

2.网络利用率

网络利用率=所有信道利用率加权求平均值

3.时延和利用率的关系图

利用率越高,延迟越大
20200626203643244.png

4.协议层次和服务模型

计算机网络原理_第4张图片

  • 五层因特网协议栈
    • 应用层:任务是通过应用进程间的交互来完成特定网络应用
    • 运输层:负责向两台主机中进程之间的通信提供数据传输服务
    • 网络层:负责为分组交换网上的不同主机提供通信服务、选择合适的路由
    • 链路层:将网络层的数据报封装成帧,使用链路层协议在相邻节点间的链路上传输帧
    • 物理层:将帧中一个个比特从一个节点移动到下一个节点 
  • 七层OSI参考模型
    • 表示层:使通信的应用程序能够解释交换数据的含义,提供数据压缩、数据加密等服务
    • 会话层:提供了数据交换的定界和同步功能,包括建立检查点和恢复方案的方法

4.1为什么要分层,分层要做什么

(1)发起通信的计算机必须将数据通信的通路进行激活。
(2)要告诉网络如何识别目的主机。
(3)发起通信的计算机要查明目的主机是否开机,并且与网络连接正常。
(4)发起通信的计算机要弄清楚,对方计算机中文件管理程序是否已经做好准备工作。
(5)确保差错和意外可以解决。

4.2正式认识分层结构

20200626204724293.png?shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTA2NzYwMw==,size_16,color_FFFFFF,t_70

4.3五层参考模型传输过程

 20200626210125977.png?shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTA2NzYwMw==,size_16,color_FFFFFF,t_70

20200626210211625.png?shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTA2NzYwMw==,size_16,color_FFFFFF,t_70

 第一章章节检测

1【单选题】下图描述的网络协议要素是

计算机网络原理_第5张图片

  • A、

    语法

  • B、

    语义

  • C、

    时序

  • D、

    格式

我的答案:C

2【单选题】在下图所示的采用“存储-转发”方式的数据报网络中,所有链路的数据传输速率为100 Mbps,分组大小为1 000 B,其中分组头大小为20 B。若主机H1向主机H2发送一个大小为980 000 B的文件,则在不考虑分组拆装时间和传播延迟的情况下,从H1发送开始到H2接收完为止,需要的时间至少是

 

e0822cfb9c7168dd3e80a8737a1fe32b.png

  • A、80ms
  • B、80.08ms
  • C、80.16ms
  • D、80.24ms

我的答案:C

3【单选题】与大多数其他接入网络相比,拨号接入网络通常具有较高时延的是【 】。

  • A、排队时延
  • B、传播时延
  • C、传输时延
  • D、处理时延

我的答案:

4【单选题】与大多数其他接入网络相比,卫星接入网络通常具有高时延是【 】?

  • A、排队时延
  • B、传播时延
  • C、传输时延
  • D、处理时延

我的答案:

5【单选题】以下哪项通常不是电路交换的特征?

  • A、呼叫设置
  • B、资源预留
  • C、存储转发
  • D、资源闲置

我的答案:C

6【单选题】下列选项中,不属于协议要素的是

  • A、层次
  • B、语法
  • C、语义
  • D、时序

我的答案:A

7【单选题】
在分组交换网络中,主要取决于网络拥塞程度的时间延迟是

  • A、 排队延迟
  • B、节点处理延迟
  • C、传输延迟
  • D、传播延迟

我的答案:A

8【单选题】在一个CDMA网络中,某站点正接收另一码序列为(-1,1,1,-1,-1,-1,1,-1)的站点发送的数据,若该站点收到(-111-1-1-11-1 1-1-1111-11 1-1-1111-11 -111-1-1-11-1),则该站点收到的数据是

  • A、1001
  • B、0001
  • C、0110
  • D、1000

我的答案:A

9【单选题】在下图所示的采用“存储-转发”方式的分组交换网络中,所有链路的数据传输速率为100 Mbps,分组大小为1 000 B,其中分组头大小为20 B。若主机H1向主机H2发送一个大小为980 000 B的文件,则在不考虑分组拆装时间和传播延迟的情况下,从H1发送开始到H2接收完为止,需要的时间至少是

计算机网络原理_第6张图片

  • A、 80.24 ms
  • B、80 ms
  • C、80.08 ms
  • D、80.16 ms

我的答案:D

10【多选题】各用户可以使用相同频率载波发送信息的多路复用技术是

  • A、TDM
  • B、CDM
  • C、FDM
  • D、WDM

我的答案:AB

11【填空题】实现网络互连的传输媒介(如光纤、双绞线、微波等)称为_____

12【填空题】约定计算机网络通信实体间如何通信的是 协议

13【填空题】计算机网络向用户可以提供那些服务?                                    

14【填空题】因特网的协议栈自上向下5个层次依次为: 应用层、运输层、网络层、链路层、物理层

15【填空题】应用层的信息分组称为报文(message); 传输层 的分组称为报文段(segment);网络层的分组称为数据报(datagram);链路层分组称为 

16【填空题】  路由器  处理网络、链路和物理层(第1层到第3层)。链路层交换机处理链路层和物理层(第1层到第2层)。主机处理所有五个层协议。

17【填空题】因特网的协议栈自上向下5个层次依次为:应用层、运输层、网络层、链路层、物理层。

18【填空题】传输层 的分组名字是报文段,数据链路层的分组名字是。网络层分组的名字是  数据报  

19【判断题】“主机”和“端系统”没有区别。

20【判断题】电路交换更适合实时数据流传输。

21【判断题】FDM和TDM是电路交换网络中常用的资源分配机制。√

22【判断题】分组交换网络更容易出现拥塞和排队延迟。

23【判断题】电路交换网络具有统计复用的优势。

24【判断题】分组交换网络更容易出现拥塞和排队延迟。

25【判断题】电路交换技术更适合突发数据传输的网络。×

26【判断题】采用10Mbps的HFC接入Internet可能比2Mbps的ADSL接入还慢。×

第二章  应用层

20200702215803534.png?shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTA2NzYwMw==,size_16,color_FFFFFF,t_70

1.应用程序体系结构

  1. 客户机/服务器(C/S)体系结构
  2. P2P体系结构

20200702220439646.png?shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTA2NzYwMw==,size_16,color_FFFFFF,t_70

 网络健壮性指的是P2P模型不容易坏掉,即使一个节点坏了也没问题,可以有其他节点代替20200702220544850.png?shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTA2NzYwMw==,size_16,color_FFFFFF,t_70

2.因特网提供的运输服务

当创建一个新的因特网应用时,首先要做出的决定是选择UDP还是TCP,它们能为应用程序提供下列服务:

  • TCP
    • 面向连接的服务
    • 可靠数据传输服务
  • UDP
    • 无连接的服务
    • 不可靠数据传输服务(不保证到达,也不保证有序到达)

除此之外,TCP具有拥塞控制机制,拥塞控制不一定能为应用程序带来直接好处,但能对整个网络带来好处。UDP没有拥塞控制

3.应用层协议

计算机网络原理_第7张图片

3.1 HTTP(超文本传输协议)

使用TCP作为运输层协议

无状态协议:服务器向客户机发送被请求的文件时,并不存储任何关于该客户机的状态信息。假如某个特定的客户机在短短的几秒钟内两次请求同一个对象,服务器并不会因为刚刚为该用户提供了该对象就不再做出反应,而是重新发送该对象

  • HTTP客户机:web浏览器
  • HTTP服务器:web服务器,包含web对象(HTML文件、JPEG文件、java小程序、视频片段等)

连接类型:

  • 非持久连接:每个请求/响应对是经一个单独的TCP连接发送
  • 持久连接:所有请求/响应对使用同一个TCP连接发送

20200703010043691.png?shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTA2NzYwMw==,size_16,color_FFFFFF,t_70

如果使用非持久连接,将TCP握手第三步与一个HTTP请求报文结合起来发送,服务器接收请求后响应一个对象。因此,传输一个对象消耗2个RTT。(可以同时建立多个连接并行传输)但是,由于TCP连接会分配缓冲区和变量,大量使用非持久连接会给服务器造成压力

如果使用持久连接,则客户机接收到请求对象后服务器不会发送一个TCP连接关闭请求。这个连接服务于所有web对象的传输(流水线发送),如果经过一个时间间隔仍未被使用,则HTTP服务器关闭连接

  • http1.0使用非持久连接
  • http1.1使用持久连接

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTA2NzYwMw==,size_16,color_FFFFFF,t_70

1)HTTP报文格式(请求报文)

72fa463101800b40025620a1149dbe00.png

“Host”:请求的目标主机
“Connection:close”:浏览器告诉服务器不希望麻烦地使用持久连接,而是要求服务器在发送完请求后关闭连接
“User-agent”:用户代理,即向服务器发送请求的浏览器的类型(服务器可以正确地为不同类型的用户代理发送相同对象的不同版本)

“Accept-language”:用户想得到该对象的语法版本

计算机网络原理_第8张图片

方法字段: 

  • GET:绝大部分HTTP请求报文使用GET方法
  • POST:用户提交表单时(如向搜索引擎提供关键字),但提交表单不一定要用POST方法
  • HEAD:类似于GET,区别在于服务器返回的响应报文中不包含请求对象(常用于故障跟踪)
  • PUT:用于向服务器上传对象
  • DELETE:用于删除服务器上的对象

GET与POST的区别与联系:

计算机网络总结(1)——GET和POST 的区别_计算机get_想当厨子的程序媛的博客-CSDN博客

2)HTTP报文格式(响应报文)

计算机网络原理_第9张图片

“Connection:close”:告诉客户机在报文发送完后关闭了TCP连接
“Date”:报文生成、发送时的日期
“Last-Modified”:web对象最后修改的日期

计算机网络原理_第10张图片

状态信息:

  • 200 OK:请求成功,信息包含在返回的响应报文中
  • 301 Moved Permanently:请求的对象已经被永久转移了,新的URL定义在响应报文的Location首部中。客户机软件自动用新的URL获取对象
  • 304 Not Modified:条件GET的响应报文中的状态码,web服务器告诉web缓存相应对象未被修改
  • 400 Bad Request:请求不能被服务器理解
  • 403 Forbidden:服务器收到请求,但是拒绝提供服务。服务器通常会在响应报文中给出不提供服务的原因
  • 404 Not Found:被请求的文档不在服务器上
  • 505 HTTP Version Not Supported:服务器不支持请求报文使用的HTTP协议版本

Telnet:HTTP响应报文查看工具

20200703011608294.png?shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTA2NzYwMw==,size_16,color_FFFFFF,t_70

20200703012144697.png?shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTA2NzYwMw==,size_16,color_FFFFFF,t_70

3)cookie

用于识别用户,可能出于下列意图:

  • 服务器想限制用户的访问
  • 服务器想把内容与用户身份关联起来

cookie包含4个组成部分:

  1. 在HTTP响应报文中有一个Set-cookie首部行
  2. 在HTTP请求报文中有一个Cookie首部行
  3. 在用户端系统中保留有一个cookie文件,由用户的浏览器管理
  4. 在web站点有一个后端数据库

计算机网络原理_第11张图片

4)web缓存

web缓存器也叫代理服务器,用于缓存web对象。用户可以配置其浏览器,使得所有HTTP请求首先指向web缓存器

计算机网络原理_第12张图片

如果web缓存器没有请求的对象,会与初始服务器直接建立一条TCP连接,web缓存器进一步发送HTTP请求,获取对象,当接收到对象后,首先在本地缓存,然后生成一个HTTP响应报文,发送给客户机(因此,web缓存器既是客户机,又是服务器

web缓存器类似于内存与处理器之间的cache,它能从整体上大大降低因特网上的web流量,从而改善所有应用的性能

条件GET:web缓存器使用条件GET向web服务器确认某个对象是否已经被修改(不是最新的对象)。如果1)请求报文使用GET方法,2)并且包含一个If-modified-since:首部行,那么这个HTTP请求报文就是一个条件GET

如果相应对象未被修改,web服务器返回一个实体为空的响应报文(也就是说并没有包含请求对象),状态码为“304 Not Modified”

3.2 FTP(文件传输协议)

FTP使用两个并行的TCP连接来传输文件:

  1. 控制连接(持久):传输控制信息,如用户标识、口令、改变远程目录命令、文件获取上传的命令
  2. 数据连接(非持久):传输实际文件

计算机网络原理_第13张图片

FTP客户机发起向FTP服务器的控制连接,然后在该连接上发送用户标识和口令、改变远程目录的命令。FTP服务器收到命令后,发起一个到客户机的数据连接,在该连接上准确地传送一个文件并关闭连接

有状态的协议:FTP服务器在整个会话期间保留用户的状态信息。服务器必须把特定的用户账号和控制连接联系起来

3.3 电子邮件协议

电子邮件系统有3个主要组成部分:用户代理、邮件服务器、简单邮件传输协议(SMTP)

计算机网络原理_第14张图片

  • 每个用户在邮件服务器上有一个邮箱,保存该用户发送和接收的邮件
  • 如果邮件未发送成功,会保存在邮件服务器上,通常30分钟左右再进行尝试,几天后仍不成功则删除,并以邮件形式通知发送方
  • SMTP传输邮件之前,需要将报文主体编码为ASCII码,传输后需要解码(HTTP传输不需要)
  • SMTP一般不使用中间邮件服务器发送邮件,即使两个邮件服务器位于地球的两端
  • SMTP会把邮件中所有对象封装在一个报文中,而HTTP则是每个报文封装一个web对象

1)多用途因特网邮件扩展(MIME)

普通的邮件报文主体为ASCII编码的数据,报文首部适合于发送普通的ASCII文本,但是不能充分满足多媒体报文或携带非ASCII文本格式(非英文字符)的报文需求。需要额外的首部行提供对发送这些文件的支持

MIME中包含2个支持发送上述文件的首部:

  • Content-Transfer-Encoding:指出所用编码类型,接收方可以根据这个字段还原
  • Content-Type:文件类型,接收方可以根据这个首部采取一些适当动作(如解压)

2)接收方邮件拉取

计算机网络原理_第15张图片

SMTP是一个”推协议“,不能用于接收方代理从邮件服务器上拉取邮件,拉取邮件需要使用POP3(第三版的邮局协议)IMAP(因特网邮件访问协议)HTTP 

POP3(第三版的邮局协议):当用户打开一个到邮件服务器端口110上的TCP连接后,POP3就开始工作了,包含3个阶段

  • 特许:用户发送用户名和口令鉴别身份
  • 事务处理:用户代理取回报文(还能标记报文、获取邮件统计信息)
  • 更新:客户机发出了quit命令后,结束了POP3会话,邮件服务器会删除被标记为删除的报文

使用POP3拉取时,可以设置为”拉取并删除“或”拉取并保留“

IMAP(因特网邮件访问协议):POP3不能提供远程文件夹功能,IMAP可以,IMAP服务器把每个报文与一个文件夹联系起来,IMAP为用户提供了创建文件夹以及在文件夹之间移动邮件的命令。除此之外,还提供在远程文件夹中查询邮件、按指定条件查询匹配文件的命令。与POP3不同,IMAP服务器维护了IMAP会话的用户状态信息

基于web的电子邮件:当使用web浏览器发送接收邮件时,推送到邮件服务器和从邮件服务器拉取邮件使用的是HTTP协议

3.4 DNS(域名系统)

DNS运行于UDP之上,使用53号端口,它提供下列服务:

  1. 主机名到IP地址的转换(主要)
  2. 主机别名:有着复杂主机名的主机可以拥有一个或多个别名,应用程序可以调用DNS来获得主机别名对应的规范主机名以及主机的IP地址
  3. 邮件服务器别名:qq.com与foxmail.com,DNS可以解析邮件服务器别名获得规范名和IP地址
  4. 负载分配:繁忙的站点被冗余分布在多台服务器上,这些服务器有不同IP地址,IP地址集合对应于一个规范主机名,当客户机通过主机名获取IP地址时,DNS服务器用包含全部这些地址的报文进行回答,但在每个回答中选择这些地址排放的顺序,从而将负载分配到不同服务器

1)DNS服务器

集中设计(单一DNS服务器)具有下列问题:

  • 单点故障
  • 通信容量:单个DNS服务器承受所有查询负载
  • 远距离的集中式数据库:单个DNS服务器不可能”邻近“所有查询客户机

所以DNS服务器使用分布式设计方案:

计算机网络原理_第16张图片

  • 根DNS服务器:因特网上有13个根DNS服务器(标号A到M),大部分位于北美洲
  • 顶级域(TLD)DNS服务器
  • 权威DNS服务器 

除此之外,DNS服务器还有本地DNS服务器。严格来说,本地DNS服务器不属于DNS服务器的层次结构,但对DNS层次结构很重要。一台主机具有一台或多台本地DNS服务器的IP地址,本地DNS服务器起着代理的作用,将请求转发到DNS服务器层次结构中

2)DNS查询步骤

计算机网络原理_第17张图片

递归查询:靠别人  根服务器,顶级服务器,权限服务器一样忙
在上图中
主机先是想本地域名服务器发送请求,如果查不到的话,
本地域名服务器向根域名服务器发送请求(找别人),如果还是查不到的话,
根域名域名服务器向顶级域名服务器发送请求(找别人),如果还是查不到的话,
顶级域名服务器向权限域名服务器发送请求(找别人)
可以看到每一次向下一个查询的服务器都变了,不是本地域名系统一个个去问,而是服务器自己一个个问下去

迭代查询:靠自己  本地服务器最忙
在上图中
主机先是想本地域名服务器发送请求,如果查不到的话,
本地域名服务器去向根域名服务器发送请求,如果还是查不到的话,
根域名域名服务器去向对应的顶级域名服务器发送请求(本地服务器去找,根域名给目标顶级域名服务器的IP地址),如果还是查不到的话,
顶级域名服务器让主机去向权限域名服务器发送请求(本地服务器去找,顶级域名给目标权限域名服务器的IP地址)
可以看到这里是根系统服务器一个个挨个问的地址

DNS缓存:在查询链中,当一个DNS服务器接收到一个DNS回答时,DNS服务器能将回答中的信息缓存在本地存储,以便加速后序可能的相同查询。由于主机IP和主机名之间的映射不是永久的,DNS服务器会在一段时间后丢弃缓存(本地DNS服务器可以缓存TLD服务器的IP地址,因而允许直接绕过查询链中的根DNS服务器)

3)DNS记录和报文

所有DNS服务器共同存储着资源记录,资源记录格式如下:

(Name,Value,Type,TTL)

  • Type=A:此时Name是主机名,Value是对应IP地址
  • Type=NS:Name是域(如foo.com),Value是知道如何获取该域中主机IP地址的权威DNS服务器的主机名
  • Type=CNAME:Value是别名为Name的主机对应的规范主机名
  • Type=MX:Value是别名为Name的邮件服务器的规范主机名

如果一台DNS服务器是某个特定主机名的权威DNS服务器,那么会有一条包含该主机名的类型A记录(不是权威服务器,也可能在缓存中包含A记录)
如果DNS服务器不是某个主机名的权威DNS服务器,那么会包含一条类型NS记录,还将包含一条类型A记录,提供了在NS记录的Value字段中DNS服务器的IP地址

DNS报文(查询和响应报文格式相同)

计算机网络原理_第18张图片

nslookup:从主机直接向某些DNS服务器发送DNS查询报文

注册域名

因特网名字和地址分配机构(ICANN)向各种注册登记机构授权,可以向这些机构申请注册域名:

  1. 提供基本权威DNS服务器和辅助权威服务器的域名和IP
  2. 注册登记机构会将NS和A类型的记录输入TLD服务器
  3. 确保自身在提供的权威DNS服务器中输入了相应类型的记录

4)DDos带宽洪泛攻击

如,攻击者向每个DNS根服务器连续不断地发送大量的分组,从而使得大多数合法的DNS请求得不到回答

DNS根服务器配置分组过滤器可以拦截这些分组,本地DNS服务器缓存了顶级域名服务器的IP地址,也能绕过DNS根服务器,防止攻击

3.5 P2P应用

不同于C/S架构,P2P架构中,每个主机既是客户机也是服务器,称作对等方,由于文件分布存储在多个对等方中,因此文件分发速度更快

计算机网络原理_第19张图片

  • u:上传速率
  • d:下载速率
  • F:文件(比特)大小

假设服务器需要将文件发送到N个对等方:

1)如果使用C/S架构:

  • 服务器总共需要上传NF比特数据,那么至少需要NF/us的时间
  • dmin为下载速率最小的对等方,那么该对等方不可能在F/dmin内获得文件

那么有:Dcs ≥ max{NF/us,F/dmin},服务器调度传输可使下届作为实际分发时间,即:Dcs = max{NF/us,F/dmin}。当N足够大时,分发时间取决于NF/us,随对等方数量线性增加

2) 如果使用P2P架构:

  • 刚开始只有服务器拥有文件,为了将文件的所有比特传至网络,需要F/us
  • dmin为下载速率最小的对等方,那么该对等方不可能在F/dmin内获得文件
  • utotal = us + u1 + ... + un表示系统总上传速率。由于最终每个对等方会有一个文件,那么总共需要上传NF比特,那么所有数据的上传时间不可能小于NF/utotal

因此又:Dp2p ≥ max{F/us,F/dmin,NF/utotal},如果每个对等方接收到一个比特就重新分发一个比特,可使下届作为实际分发时间,即:Dp2p = max{F/us,F/dmin,NF/utotal}。实际上,重新分发的是文件块而不是一个个比特

下图展示了在两种架构下分发时间与对等方数量的关系,可以看出使用P2P进行文件分发速度快,具有自我扩展性:

计算机网络原理_第20张图片

P2P中文件的搜索方式 

  • 集中式索引:使用一个集中式索引服务器存储索引,是一种P2P和C/S混合的体系结构,文件分发是P2P的,搜索是C/S的
  • 查询洪泛:建立在Gnutella协议基础上,索引全面分布在对等方区域中,对等方向相邻对等方发出文件查询请求,相邻对等方进一步转发查询请求
  • 层次覆盖:结合以上两种,与因特网高速连接并具有高可用性的对等方被指派为超级对等方,新的对等方与超级对等方之一建立TCP连接,将其可供共享的所有文件告诉超级对等方,超级对等方维护着一个索引,超级对等方之间通过TCP连接,可以转发查询

第二章章节检测

1【单选题】在电子邮件系统中,邮件服务器之间进行邮件发送使用的协议是【 】。

  • A、HTTP
  • B、SMTP
  • C、IMAP
  • D、POP3

我的答案:B

2【单选题】在Socket套接字编程中,仅在TCP服务端程序中需要调用的Socket API函数是【 】。

  • A、socket()
  • B、bind() 
  • C、connect()
  • D、accept()

我的答案:D

3【单选题】在电子邮件系统中,邮件服务器之间进行邮件发送使用的协议是【 】。

  • A、HTTP
  • B、SMTP
  • C、IMAP
  • D、POP3

我的答案:B

4【单选题】在Socket套接字编程中,仅在TCP服务端程序中需要调用的Socket API函数是【 】。

  • A、socket()
  • B、bind()
  • C、connect()
  • D、accept()

我的答案:D

5【单选题】假设某公司申请到netutopia.com域名,除其创建和配置对应的权威域名服务器外,还须将其权威域名服务器信息在DNS系统中的哪些服务器上进行设置【 】。

  • A、某个根域名服务器
  • B、所有的顶级域名服务器
  • C、某个权威域名服务器
  • D、仅.com顶级域名服务器

我的答案:D

6【单选题】在Socket套接字编程中,无论是服务端、客服端,还是TCP、UDP中,都会调用的Socket API函数是【 】。

  • A、socket()
  • B、bind()
  • C、accept()
  • D、connect()

我的答案:A

7【单选题】在OSI参考模型中,完成路由选择功能的层次是

  • A、网络层
  • B、传输层
  • C、数据链路层
  • D、物理层

我的答案:A

8【单选题】假设在存储-转发的分组交换网络中,主机A到达主机B的路径上有4段链路,其速率分别是R1=500kbps,R2=2Mbps,R3=1Mbps,R4=100kbps,则主机A向主机B发送信息的理想吞吐量是

  • A、100kbps
  • B、 500kbps
  • C、1Mbps
  • D、 2Mbps

我的答案:A

9【单选题】如果域名服务器无缓存,当采用迭代(iterative)方法解析另一网络某主机域名时,最后一个被查询的域名服务器是

  • A、权威域名服务器
  • B、根域名服务器
  • C、顶级域名服务器
  • D、本地域名服务器

我的答案:A

10【单选题】假设网络无差错、无数据丢失,基于HTTP 1.0,传输一个引用10个JPEG图像的Web页需要的时间为

  • A、22个RTT
  • B、11个RTT
  • C、12个RTT
  • D、21个RTT

我的答案:A

11【单选题】一个DNS资源记录(RR)为(hi.edu.cn, ml.hi.edu.cn, MX, 250),则hi.edu.cn是

  • A、邮件服务器的别名
  • B、邮件服务器的域名
  • C、本地域名服务器的域名(
  • D、权威域名服务器的域名

我的答案:A

12【单选题】服务器端套接字绑定的IP地址是

  • A、INADDR_ANY
  • B、PF_INET
  • C、AF_INET
  • D、SOCK_STREAM

我的答案:A

13【单选题】通告SMTP服务器端开始发送邮件内容的SMTP命令是

  • A、DATA
  • B、HELO
  • C、MAIL FROM
  • D、RCPT TO

我的答案:A

14【多选题】若用户1与用户2之间发送和接收电子邮件的过程如下图所示,则1、2、3阶段分别使用的应用层协议可以是

 

fd0c12acd529df58846ed4987a9faf52.png

  • A、HTTP、SMTP、POP3
  • B、HTTP、SMTP、HTTP
  • C、SMTP、SMTP、POP3
  • D、SMTP、SMTP、HTTP
  • E、SMTP、SMTP、SMTP
  • F、HTTP、HTTP、POP3
  • G、SMTP、HTTP、HTTP

我的答案:CD

15【多选题】下列Socket API函数中,可以在TCP服务器端调用的是

  • A、socket()
  • B、bind()
  • C、listen()
  • D、accept()
  • E、sendto()
  • F、connect()

我的答案:ABCD

16【填空题】对于两个进行网络通信进程,发起通信的进程是__________;等待连接的进程是服务器端。

我的答案:第一空: 客户端

17【判断题】假设用户请求由一些文本和3幅图像组成的Web页面。对于这个页面,客户将发送1个HTTP请求报文并接收4个HTTP响应报文。

我的答案:×

18【判断题】两个不同的Web页面(例如,www.mit.edu/research.html及www.mit.edu/students.html)可以通过同一个持续连接发送。

我的答案:

19【判断题】HTTP响应报文决不会具有空的报文体。

我的答案:×

20【判断题】在浏览器和初始服务器之间使用非持续连接的话,一个TCP报文段是可能携带两个不同的HTTP服务请求报文的。

我的答案:×

21【判断题】在HTTP响应报文中的Date:首部指出了该响应中对象最后一次修改的时间。

我的答案:×

22【判断题】客户端的UDP套接字不能使用connect()函数。

我的答案:×

23【判断题】P2P方式实现文件分发比C/S方式快。

我的答案:

第三章  传输层

1.端口号与套接字

1.1 端口号

通常在一台主机上能够运行许多网络应用程序。IP地址可以标识一台主机,端口号则是用来标识这台主机上的特定进程

端口号是一个16bit的数字,大小在0~65535之间,0~1023范围的端口号称为周知端口号,保留给周知的应用层协议

应用层协议 端口号 运输层协议
DNS 53 UDP
FTP 21(控制连接),20(数据连接) TCP
TELNET 23 TCP
DHCP 67(服务器),68(客户端) UDP
HTTP 80 TCP
HTTPS 443 TCP
SMTP 25 TCP
POP3 110 TCP
IMAP 143 TCP

1.2 套接字

网络应用由成对进程组成,进程通过一个称为套接字的软件接口在网络上发生和接收报文

9ffc803e8c01ef11172a28dbe66cec07.png

套接字是同一台主机内应用层与运输层之间的接口,也可称为应用程序和网络之间的应用程序编程接口

TCP套接字:(源IP,源端口,目的IP,目的端口)

UDP套接字:(目的IP,目的端口)

2.多路复用与多路分解

  • 多路分解:将运输层报文段中的数据交付到正确的套接字的过程(通过报文段的端口号字段)
  • 多路复用:从源主机不同套接字收集数据,并为数据封装上首部信息从而生成报文段,传递到网络的过程

3.UDP

出于下列原因可能使用UDP:

  1. 应用层能更好地控制要发送的数据和发送时间(TCP拥塞时会遏制发送方发送)
  2. 无需建立连接
  3. 无连接状态(TCP需要维护连接状态,包括接收和发送缓存、拥塞控制参数、序号与确认号的参数)
  4. 分组首部开销小(每个TCP报文段有20字节的首部开销,而UDP仅有8字节的开销

可以在应用程序自身中构建可靠性机制来实现UDP应用的可靠数据传输

UDP能提供运输层最低限度的两个服务:差错检测、数据交付

3.1 UDP报文段结构

计算机网络原理_第21张图片

UDP首部只有4个字段,每个字段2个字节,一共8个字节大小的首部 

校验和:对报文段中的所有16比特字(包括数据部分,不包括校验和本身)的和相加(如有溢出会卷回)的结果取反就是校验和。在接收方,会将所有16比特字的和相加,如果分组无差错,这个和会是“1111-1111-1111-1111”(为了方便阅读,使用'-'分隔)

许多链路层协议提供了差错检测,UDP还需提供校验和的原因在于,不能确保所有链路都提供了差错检测。此外,即使报文段经链路正确地传输,当其存储在某台路由器的内存中时,也可能引入比特差错。既未确保逐段链路的可靠性,也未确保内存中的差错检测,因此UDP必须在端到端基础上在运输层提供差错检测

校验和方法需要相对小的分组开销。例如,TCP和UDP中的校验和只用了16比特。然而与常用于链路层的CRC(循环冗余检测)相比,他们提供相对弱的差错保护。运输层使用校验和而链路层使用CRC的原因是:运输层通常在主机中作为用户操作系统的一部分并用软件实现,因此采用简单而快速(如校验和)的差错检测方案是重要的。另一方面,链路层的差错检测在适配器中用专业硬件实现,它能快速地执行更复杂的CRC操作

4.可靠数据传输原理

  • rdt:可靠数据传输
  • udt:不可靠数据传输

4.1 完全可靠信道上的可靠数据传输(rdt1.0)

假设底层信道是完全可靠的

计算机网络原理_第22张图片

4.2 具有比特差错信道上的可靠数据传输(rdt2.0、rdt2.1、rdt2.2) 

更现实的底层信道模型是分组中的比特可能受损

引入了自动重传请求(ARQ)协议,ARQ还需要另外3种协议来处理存在的比特差错:

  1. 差错检测
  2. 接收方反馈:肯定确认(ACK)和否定确认(NAK)
  3. 重传:接收方收到有差错的分组时,发送方重传

计算机网络原理_第23张图片

对于发送方,在等待ACK或NAK状态时,不能发送更多分组。类似于rdt2.0这种行为的协议被称为停等协议 

rdt2.0的问题在于没有考虑到ACK和NAK分组可能受损的情况

处理受损ACK或NAK的办法是,如果收到受损的ACK或NAK,则重传一次分组,但是这样又无法确认是一次新的分组还是重传的分组。解决办法是在分组中添加一个序号字段,接收方只需检查序号即可确定收到的分组是否是一次重传。对于rdt2.0,只需1比特序号即可,从而得到rdt2.1

计算机网络原理_第24张图片

计算机网络原理_第25张图片

如果收到受损的分组,接收方也可以发送一个对上次正确接收分组的ACK,也能实现与NAK一样的效果,也就是rdt2.2

计算机网络原理_第26张图片

计算机网络原理_第27张图片

计算机网络原理_第28张图片

计算机网络原理_第29张图片

4.3 具有比特差错的丢包信道上的可靠数据传输(rdt3.0)

现在假定除了比特受损外,底层信道还会丢包,因此需要引入时间机制决定何时重传分组

计算机网络原理_第30张图片

计算机网络原理_第31张图片

计算机网络原理_第32张图片

计算机网络原理_第33张图片

计算机网络原理_第34张图片

4.4 流水线可靠数据传输

计算机网络原理_第35张图片

rdt3.0功能正确,但由于是一个停等协议,所以性能很差。如果能在收到确认之前发送多个分组,可以大大提升性能

计算机网络原理_第36张图片

1)回退N步(GBN)

计算机网络原理_第37张图片

也被称为滑动窗口协议

计算机网络原理_第38张图片

  • 发送方
    • 超时重传所有已发送但未确认的分组
  • 接收方
    • 每接收到一个有序分组交付到上层,丢弃无序分组
    • 累积确认收到的有序分组

丢弃无序分组的优点在于接收方缓存简单,需要维护的唯一信息就是下一个按序接收的分组的序号;缺点是对于丢弃的分组,随后重传也许会丢失或出错,因此甚至需要更多的重传

计算机网络原理_第39张图片

下图为窗口长度为4个分组的GBN运行情况:

计算机网络原理_第40张图片

计算机网络原理_第41张图片

2)选择重传(SR) 

计算机网络原理_第42张图片

一个单个分组的差错就可能引起GBN重传大量分组,许多分组根本没有必要重传。随着信道差错率的增加,流水线可能被这些没有必要重传的分组填满

计算机网络原理_第43张图片

计算机网络原理_第44张图片

  • 发送方
    • 如果收到的ACK对应一个窗口内的分组,则标记为已接收,序号等于send_base则移动窗口至具有最小序号的未确认分组处
    • 如果窗口移动了,并且有序号落在窗口内的未发送分组,则发送这些分组
    • 如果发生超时,只能发送1个分组
  • 接收方
    • 确认(ACK)一个正确接收到的分组(收到滑动窗口前的分组也要再次确认,因为这种情况通常意味着这个分组的前一次确认未被发送方收到)
    • 失序分组会被缓存直到所有丢失分组都被收到,此时将一批分组按序交付给上层

计算机网络原理_第45张图片

计算机网络原理_第46张图片

一个SR运行的例子:

计算机网络原理_第47张图片

对于SR而言,接收方窗口长度必须小于等于序号空间大小的一半,否则可能无法确认一个分组是重传还是初次传送 

计算机网络原理_第48张图片

计算机网络原理_第49张图片 计算机网络原理_第50张图片

计算机网络原理_第51张图片

计算机网络原理_第52张图片

计算机网络原理_第53张图片

计算机网络原理_第54张图片 

 

 

 

 

你可能感兴趣的:(计算机网络,计算机网络)