网络协议

来源:互联网 发布:js移除节点 编辑:程序博客网 时间:2024/06/01 15:02

网络协议




一、基本概念

1PPP协议由一个将IP 数据报封装到串行链路的方法、链路控制协议LCP和网络控制协议 NCP等三个部分组成。

2、封装了PPPoE发现阶段和终止阶段报文的以太网帧的帧类型字段的取值为0x8863。封装PPPoE会话阶段报文的以太网帧的帧类型字段取值为0x8864。

3、在使用TCP/IP协议的互联网中,有三个等级的地址:物理(链路)地址、IP(网络)地址和端口地址。它们分别用于数据链路层、网络层和传输层中对主机或进程进行寻址。

4、地址解析问题是要实现将IP地址映射为物理地址,或者是相反的映射。完成地址解析的方法主要有:静态映射或动态映射。

5、源路由是指信源机所规定的本数据报穿越网间网的路径。其作用是:可以用于测试某特定网络的吞吐率,可使数据报绕过出错或危险的网络等等。源路由分为严格源路由和宽松源路由两类。

6IP协议是一种不可靠的数据报传输协议,它不提供差错检验或跟踪,并不能保证一个IP数据报可以成功地到达目的主机。

7ICMP协议并不能提高IP协议的可靠性,它只是报告IP数据报处理时产生的错误信息,却无法报告ICMP数据单元本身的错误。

8、如果路由器或目的主机发生阻塞,则需要发送源主机消亡的ICMP报文到源主机;若需要确定某个节点是否可达,则需要发送回送请求的ICMP报文

9UDP-Lite把报文的数据区分为两部分,其中:敏感区域参与校验和的计算,当这个区域的数据发生差错时,报文将被丢弃。非敏感区域不参与校验,即便这个区域的数据发生差错,报文也不会被丢弃。

10TCP 的确认是对接收到的数据的最高序号表示确认。接收端返回的确认号是已收到的数据的最高序号加 1。因此确认号表示接收端期望下次收到的数据中的第一个数据字节的序号。

11、域名解析通常是指将域名转换为相应IP地址的过程,但它实际也包括将IP地址转换为相应域名的过程。通常情况下,域名解析采用UDP协议来作为传输层的协议。

12TFTP使用不可靠的UDP协议来作为运输层协议进行数据传输,并采用超时与重传机制来解决分组丢失问题。

13TELNET远程登录协议的建立基于三个基本原理,分别是网络虚拟终端、协商原理和终端与进程的对称观。

14HTTP响应报文的状态行由三个部分组成:HTTP版本、状态码和描述文本。

15SMTP命令、响应以及邮件内容,均使用NVT ASCII格式的文本,SMTP的命令和响应都以双字符序列 <CR-LF>为行结束符。电子邮件主要由邮件头和邮件正文组成。

二、简答

1、简述PPPoE发现阶段的工作步骤。

答:发现阶段工作步骤如下:

1)发起:主机发送PADI分组,其目的地址为广播地址,会话ID0(未分配);至少有一个0x0101的标签。

2)提供:任一接入服务器收到PADI并提供所需的服务时,就回送PADO分组,会话ID0

3)请求:主机可能收到多个PADO,根据服务及其提供的服务选定一个服务器,然后向该服务器发送PADR分组,其目的地址为该服务器的单播地址。会话ID0(未分配)

4)确认:该服务器收到PADR后生成一个唯一的会话ID,向主机回送PADS分组,准备启动PPP

通过以上四步,主机从接入服务器获取一个Session ID。进入PPP会话阶段。

 

2、请回答ARP协议对地址进行解析的操作过程。

答:ARP协议的操作过程如下:

1)在ARP Cache中查找从目的IP地址到对应物理地址的映射,若找到,则将该物理地址返回给发送端,否则转下一步; 

2ARP模块向网络中广播ARP请求报文,其中包含请求方的IP地址、物理地址,以及需要查询的目标IP地址; 

3)与被查询IP相符的主机以单播的形式发送一个ARP应答报文给请求方; 

4)请求方将得到的IP地址与物理地址映射关系存入ARP Cache中。

 

3、多播通信有哪些特征?

答:多播通信具有如下特征:

1)消息只需要发送一次,即可以交付给组中的所有成员。而消息的发送者并不一定要加入到组播组中;群组成员只用于确定站点是否接收发往群组的IP分组。

2)组成员可以跨越多个物理网络。

3)每个多播组共享一个组播地址(D类的IP地址),并将该地址作为群组的标识;

4)组成员是动态的。即组员可以动态的加入或退出某个多播组,而一个节点也可以同时加入多个多播组。

5IP多播与其它IP分组交付使用同样的尽最大努力交付机制。

6)如果底层网络支持硬件多播,则可以使用硬件多播发送IP多播。如果硬件不支持多播,则使用广播或单播来实现IP多播

7)转发IP多播分组需要特殊的多播路由器。

4、简述移动IP的工作机制。

答:移动IP的工作机制如下:

1HA(Home Agent,家乡代理)FA(Foreign Agent,外地代理)周期性地组播或广播代理通告消息,宣告它们与网络的连接关系。

2MH(Mobile Host,移动主机)收到代理通告后,确定自己是在家乡还是在外地。若在家乡,则不再使用移动IP。在外地的MH则需要一个转交地址。该转交地址可以是:FACD(外地代理转交地址)或者CLCD(合作定位转交地址)

3MHHA注册它的转交地址。

4)发送给MH的数据包会路由到MH的注册网络,在被HA截获后,再由HA通过隧道把数据包发送到转交地址。在转交地址处,原数据包从隧道中取出交给MH

5MH外出的包直接路由到目的地。

 

5IP组播地址(D类地址)是如何映射到以太网的MAC地址的?请给出与IP地址224.1.1.1对应的以太网MAC组播地址。

答:IP组播地址到MAC地址的映射方法是:将IP组播地址的低23bit映射到以太组播地址的低位23bit。而以太网组播MAC地址的前25个比特固定为:00000001  00000000  01011110 0

IP地址224.1.1.1转换为二进制形式后为: 

11100000 00000001 00000001 00000001

把其中低23bits和以太网组MAC中固定25bits组合后,二进制形式的结果如下: 

00000001  00000000  01011110 00000001 00000001 00000001

因此与224.1.1.1对应的以太网组播地址为:01-00-5e-01-01-01

 

6、若IP数据报出现了差错,那么在什么情况下不发送ICMP报文?

答:在以下情况下,即使IP数据报出现差错也不会发送ICMP差错报文。

1ICMP差错报文(ICMP查询报文可能会产生ICMP差错报文) 

2)目的地址是广播地址或多播地址的IP数据报 

3)作为链路层广播的数据报 

4)不是IP分片的第一片 

5)源地址不是单个主机的数据报 

6)具有特殊地址(如127.0.0.00.0.0.0)的数据报

 

7UDP协议有什么特点?

答:UDP协议有如下特点:

1UDP传送数据前并不与对方建立连接,即UDP是无连接的。

2UDP不对收到的数据进行排序。

3UDP对接收到的数据报不发送确认信号,发送端不知道数据是否被正确接收,也不会重发数据。

4UDP传送数据较TCP快速,系统开销也少。

 

8UDP校验和校验的内容有哪些?伪首部包含哪些内容?Udp-lite是如何指出参与校验和计算的数据范围的?

答:UDP校验和校验的内容有:UDP 首部、数据区和伪首部。

伪首部的内容有:源IP地址(4字节)、目标IP地址(4字节)、保留字段(1字节)、协议字段(1字节)、UDP数据报长度(2字节)。

UDP-Lite(Lightweight User Datagram Protocol,轻量级udp协议)通过首部的校验和覆盖字段(Checksum Coverage)来指出UDP数据报中参与校验和计算的输入的字节数 。其中UDP首部和伪首部均必须参与校验和计算。 若校验和覆盖字段的限值为:

l ‘0’:整个UDP报文都参与校验;

l ‘>=8’:对数据包前面Checksum Coverage个字节进行校验。 

l 超过了UDP-Lite数据包大小以及[1,7]的取值为非法。

 

9、客户端和服务器端的TCP连接是如何建立的?

答: TCP连接的建立过程:

第一次握手:客户端发送一个TCP报文段至服务器端请求建立连接。在该报文段中,客户端选择一个初始序号(假设为x),并且将SYN标志位置1

第二次握手:服务器端向客户端发送确认报文段,其中,服务器端选择了自己的初始序号(假设为y),并对客户端选择的初始序号进行确认(确认号为x+1)。该报文段的SYNACK标志位均置1

第三次握手:客户端向服务器端发送应答报文段,对服务器选择的初始序号进行确认,确认号为y+1,序号为x+1。该报文段的ACK标志位置为1

经过上述三次握手过程,建立起客户端与服务器端的TCP连接。

 

10TCP协议中,在发送端和接收端是如何解决糊涂窗口问题的?

答:发送端可以使用Nagle 算法解决糊涂窗口问题,方法如下:

1)当应用程序产生第一个数据块时,TCP马上发送出去,即使只有一个字节。

2)发送端在输出缓存中累积数据,直到收到接收端的一个确认,或者缓存中的数据已超过一个MSS大小时,才把缓存中的数据打包发送出去。

3)重复以上第2步,直到通信结束。

接收方的应对策略有两种:

1)延迟发送确认。当一个报文到达接收方时,接收端并不会马上予以确认,直到接收缓冲区有相当数量的存储空间后,才发送确认报文。

2Clark方法 :接收缓冲区满后,发送0窗口通知;只要有数据到达就发送确认,但宣布的窗口大小为零。当可用接收缓存大小达到MSS大小或者是总缓存大小的一半时,才更新通知窗口的大小。

 

11、简述域名解析过程。

答:当客户端应用程序需要用到域名对应的IP地址时,它会向解析器发出查询请求:

(1) 解析器首先会检查本地DNS缓存,看看是否有匹配的项目。

a) 如果有,解析器立即将结果返回给应用程序;

b) 否则解析器会产生DNS查询报文,并将其发送到本地域名服务器。

(2) 本地域名服务器收到查询请求后:

a) 若被查询的是本域中的主机,则直接作出回答。

b) 否则,从缓存中查找,看该域名是否最近被解析过,如果找到了相应的记录,服务器会把从缓存中获取的IP地址信息返回给客户端,并标记为“非权威”。

c) 若在缓存中也无法找到匹配的记录项,则向其它域名服务器发送域名解析请求。

 

12、简述使用SMTP协议发送电子邮件的过程。假设SMTP服务器不需要对客户的身份进行认证。

答:客户端使用SMTP协议发送电子邮件的过程如下: 

(1) 客户端主动连接到服务器的25端口,建立TCP连接。

(2) 客户端向服务器发送HELO命令,用以标识发送方的身份。HELO命令的参数必须是一个合法的主机名。

(3) 客户端发送MAIL命令标识邮件的发送方,通过FROM参数指定发送方的电子邮件地址。

(4) 客户端发送RCPT命令标识邮件的接收方,通过TO参数指定接收方的电子邮件地址,如果有多个接收人,可以发送多个RCPT命令。

(5) 客户端与服务器之间的协商结束,客户端发送DATA命令指示将要发送邮件数据

(6) 客户端将邮件内容按行发送,邮件的末尾是只有一个小数点的一行

(7) 客户端发送QUIT命令终止连接。

 

13FTP建立数据连接的模式有哪两种?试举例说明使用这两种模式建立数据连接的过程。

答:FTP协议中规定了建立数据连接的两种连接模式:PORT(端口模式)和PASV(被动模式)

(1) PORT模式的数据连接由服务器初始化完成,其连接的建立过程如下:

a) 客户端选择一个大于1024的端口连接服务器的21端口,建立起控制连接

b) 需传输数据时,客户端会送出PORT命令告诉服务器连接到自己的某一端口来建立数据连接,同时侦听该端口。比如:

PORT 123, 44,5,6,14,100 

即:IP=123.44.5.6 端口=14*256+100=3684

c) 服务器收到PORT命令时,会使用20端口连接客户端在PORT命令中指定的IP地址和端口号,然后传输数据。

(2)PASV模式的数据连接由客户端初始化,其工作过程如下: 

a) 客户端选择一个大于1024的端口连接服务器的21端口,建立起控制连接

b) 需传输数据时,客户端向服务器发送PASV命令,通知服务器自己希望连接到服务器的某一个端口。

c) 服务器通过应答码为227的响应返回一个IP地址和端口号,通知客户端可以连接到指定的地址,以进行数据传输。

比如:

客户端发送:PASV

服务器端响应:227 Entering Passive Mode (139,57,76,45,123,173) 

即:服务器在139.57.76.45:31661(123*256+173)等待客户端数据连接请求的到达。

 

14、简述Base64编码算法。若有一个ASCII字符串:“Abcdxyz”,请给出其BASE64编码结果。提示:大写英文字母A-ZASCII值为:0x41-0x5a,小写英文字母的ASCII值为:0x61-0x7a

答:在进行Base64的编码时,首先要将被编码的数据看成一个字节序列,不分行。然后按照以下三个步骤反复进行编码。

(1) 顺次从要编码的字节序列数据中,取出3个字节作为一组,该组包含24bit。

(2) 将一组的24个bit,再顺次分为四个6bit的小组。并在每小组的前面补两个零,形成四个字节。

(3) 根据小组的每个字节的数值,将它们分别转换为对应的可打印ASCII字符。其转换的方法为:

l 0~25转换为:'A' ~ 'Z'

l 26~51转换为:'a' ~ 'z'

l 52~61转换为:'0' ~ '9'

l 62转换为:'+'

l 63转换为:'/'

(4) 若最后一组只剩一个数据字节,则将4个编码数据的后两个字节都替换成等号。 若最后一组剩下两个数据字节,则将将4个编码数据的最后一个字节替换成等号。 

Abcdxyz对应的ASCII编码序列为:0x41 0x62 0x63 0x64 0x78 0x79 0x7a

转换为6bit组的编码:0x10 0x16 0x09 0x23 0x19 0x07 0x21 0x39 0x1e 0x20 = =

Base64编码: QWJjZHh5eg==

 

三、报文分析及封装

1、请画图说明ARP报文的结构。若有一台连接到以太网的路由器,其IP地址为156.68.100.200,物理地址为12-34-5A-BC-45-FD。其接收到一个目标地址为156.68.111.54IP数据报,请以十六进制形式给出封装了解析该目标主机物理地址的请求报文(ARP请求报文)的以太网帧。

答:ARP报文格式如下图所示:

 

封装了解析该目标主机物理地址的请求报文的以太网帧的内容如下:

FF FF FF FF FF FF 12 34 5A BC 45 FD 08 06 00 01

08 00 06 04 00 01 12 34 5A BC 45 FD 9C 44 64 C8

00 00 00 00 00 00 9C 44 6F 36

2TCP报文段首部选项部分的内容为(十六进制形式):02 04 05 B4 01 03 03 00 01 01 04 02。请解释其含义。

答:第一个选项的内容为:02 04 05 B4。即:选项码为02,代表协商最大报文段长度;选项长度为4字节,选项的取值是05 B4。即最大报文段长度为1460字节。

第二个选项的内容为:03 03 00。即选项码为03,选项为窗口扩大因子。选项长度为3个字节。选项值为00。即:窗口扩大因子为20。

接下来的两个01为填充字节。

第三个选项的内容为:04 02。选项码为04,代表SACK-Permitted,选项长度为2字节。即本机允许选择确认。

 

3、一个PPP帧的内容如下所示,试对该帧进行分析。

 7E FF 03 80 21 02 04 00 0A 03 06 DC C0 00 09 75 D6 7E

答:PPP帧的格式如下图所示:

所以对该帧的分析如下:

首部内容:7E FF 03 80 21

l 标志字段:7E

l A字段:FF

l C字段:03

l 协议字段:8021,信息部分封装的是IPCP报文

信息部分为IPCP报文,其格式如下:

 

因此:

l 类型字段:02,配置请求

l ID字段:04

l 长度字段:00 0A,即IPCP报文长度为10字节,所以IPCP报文内容为:02 04 00 0A 03 06 DC C0 00 09。剩余部分为尾部,即尾部的内容为:75 D6 7E

选项部分的格式为:

类型

长度

因此:

l 选项类型:03,即配置IP地址

l 选项长度:06字节,即选项部分的内容为:03 06 DC C0 00 09

l 选项取值:DC C0 00 09,即设置IP地址为:220.192.0.9

尾部:

l FCS字段:75D6

l 标志字段:7E

 

4、一台IP地址为202.45.33.21IGMP查询路由器,发送了一个IGMP查询报文,请用十六进制形式完整写出封装了该查询报文的IP数据报和IGMP查询报文。其中:IGMP报文中的响应时间字段填充值为0x00IP头部中的标识符字段取值为0x00 01,服务类型、DFMF、校验和等字段的取值均为0。校验和字段需要自己计算产生。

答:IGMP报文的封装如下图:

 

其中IP报头结构为:

 

IGMP查询报文的格式如下:

 

所以IP头部分的封装为:

l 版本号:4

l 首部长度:没有可选部分,头长为20字节,所以首部长度字段取值:20/4=5

l 服务类型:00 00

l 总长度:IP头长20字节,IGMP报文长度8字节,共28字节,即:0x1c

l 标识字段:00 01

l 标志、片偏移:00 00

l 封装IGMP报文的IP报文,其生存时间必须设置为:01

l 协议字段:02,即封装在IP数据报中的报文是IGMP报文

l 首部校验和:00 00

l 源IP地址:发送查询报文的主机的IP地址为:202.45.33.21,即:CA 2D 21 15

l 目的IP地址:224.0.0.1,即:E0 00 00 01

所以得到IP头内容为:45 00 00 1C 00 01 00 00 01 02 00 00 CA 2D 21 15 E0 00 00 01

IGMP报文的封装:

l 版本号:1

l 报文类型:查询报文,取值为1

l 未用字段:00

l 校验和:先设置为00 00

l 群组地址:一般查询设置为00 00 00 00

所以IGMP报文内容为:11 00 00 00 00 00 00 00

计算IGMP报文的校验和,得到结果为EE FF,所以包含校验和结果的IGMP报文内容为:

11 00 EE FF 00 00 00 00

把上述IP头和IGMP报文的内容组合在一起,得到如下所示的完整报文:

45 00 00 1C 00 01 00 00 01 02 00 00 CA 2D 21 15

E0 00 00 01 11 00 EE FF 00 00 00 00

按题目要求,没有对IP头部的校验和字段进行计算和填充

0 0
原创粉丝点击