面试知识点总结——网络

面试知识点总结——网络

1.       OSITCP/IP各层的结构与功能,都有哪些协议。

应用层:HTTP,FTP,DHCP,SMTP(推协议),POP3(拉取协议),DNS

(表示层:数据格式的转换和加密,如FTP协议可以采用二进制形式传输还是ASCII传输,都可以在这儿进行转换,加密算法MD5,SHA1(MD5与SHA1都是Hash算法,MD5输出是128位的,SHA1输出是160位的,MD5比SHA1快,SHA1比MD5强度高。))

(会话层:控制通信是全双工还是半双工,管理用户登录和注销,和session很像)

运输层:TCP,UDP

网络层:IP协议,ICMP协议,ARP协议,RARP。

链路层:以太网,令牌环。

OSI

物理层

数据链路层

网络层

传输层

会话层

表示层

应用层

TCP/IP

网络接口层

网际层

传输层

应用层

常用协议

IP

TCP、UDP

HTTP、SMTP、DNS、RTP…

2.       IP报文格式

0~3位

4~7位

8~15位

16~31位

版本

首部长度

服务类型

总长度

标识

标志

片偏移

生存时间

协议

首部校验和

源地址

目的地址

长度可变的可选字段

填充

数据部分

版本:指IP协议的版本。

首部长度:首部的长度

服务类型包括:

优先级3位

D1位

T1位

R1位

C 1位

未用1位

其中优先级用来区别优先级别不同的IP报文。D表示要求有更低的时延。T表示要求有更高的吞吐量。R表示要求有更高的可靠性。

总长度:报文的长度。

标识:由于数据报长度超过传输网络的MTU(最大传输单元)而必须分片,这个标识字段的值被复制到所有数据报分片的标识字段中,使得这些分片在达到最终的目的地时可以依照标识字段的内容重新组成原先的数据报。

标志:最低位是MF,MF=1时,表示后面还有分片。中间位的DF,DF=1时,表示不能分片。

片偏移: 和前面的数据分片相关,是本分片在原先数据报文中相对首位的偏移位。

生存时间:数据报在网络中存活的时间,所允许通过的路由器的最大数量,没通过一个路由器,该值自动减一,如果数值为0,路由器就可以把该数据报丢弃。

协议: 指出数据报携带的数据是使用何种协议,以便目的主机的IP层能知道次数据报上交到哪一个进程(不同协议有一个专门不同的进程处理)。

首部校验位和:对首部进行校验运算。

校验方法 :在发送端,将IP数据报首部划分为多个16位的二进制序列,并将首部校验和字段置为0,用反码运算将所有16位序列对位相加后,将得到多的

和的反码写入首部校验和字段。接收端接收到数据报后,将数据报首部的所有字段组织成多个16位的二进制序列,再使用反码运算相加一次,将得到的结果取反。如果结果为0代表没出错,否则出错。

源地址:发送数据报的节点地址。

目的地址:接受数据报的节点地址。

3.       传输层介绍

传输层功能:

(1)传输层提供应用进程之间的逻辑通信(即端到端的通信)。与网络层的区别是,网络层提供的是主机之间的逻辑通信。

(2)该层的第二个功能是复用和分用。复用是指发送方不同的应用进程都可以使用同一个传输层协议传输数据;分用指接收方的传输层在剥去报文的首部后能够把这些数据正确交付到目的应用程序。

(3)对收到的报文进行差错检测(首部和数据部分),而网络层只检查IP数据报的首部。

(4)提供两种不同的传输协议,即TCP和UDP(重要)。

端口号

端口:标识目标主机中的应用进程。IP地址和MAC地址标识的是主机。

端口号长度为16bit,一共65536个,其中0~1023为TCP/IP最重要的一些应用程序(如:FTP 80,TELNET 23,SMTP 25,DNS 53,TFTP69 ,HTTP 80,SNMP 161等)。1024~49151为登记端口号。49152~65535为客户端使用的端口号(临时端口号)。

套接字Socket:套接字=IP+端口号,它唯一标识了网络中的一个主机和其上的一个应用(进程)。

4.       TCPUDP的区别。

TCP协议面向连接(三次握手,四次挥手),UDP协议面向非连接;

TCP协议传输速度慢,UDP协议传输速度快

TCP协议可靠的,UDP协议不可靠的;

TCP有丢包重传机制,UDP没有(与无连接无关);

TCP有拥塞控制,UDP没有(与无连接无关)

TCP首部最低20字节,UDP首部8字节

5.       TCP介绍

16位源端口号

16位目的端口号

32位序号

32位确认号

4位首部长度

保留6位

URG

ACK

PSH

RST

SYN

FIN

16位窗口大小

16位检验和

16位紧急指针

选项

数据

TCP协议为面向连接的传输控制协议,当使用该协议传输层向上提供的是一条全双工的可靠逻辑信道。TCP是在不可靠的IP层上实现的可靠的传输协议,它主要解决传输的可靠、有序、无丢失和不重复的问题。

TCP不提供广播或组播服务,每一条TCP连接只能有两个端点(一对一,两个套接字)。

TCP提供全双工通信,连接的两端都设有发送缓存和接收缓存,用来临时存放双向通信的数据。

TCP是面向字节流的,TCP把应用程序交下来的数据看成仅仅是一连串的无结构的字节流。

增加了许多开销,如确认、流量控制、计时器和连接管理等。

TCP主要适用于可靠性更重要的场合,如文件传输协议FTP、超文本传输协议HTTP、远程登录TELNET等。

TCP(Transmission Control Protocol)传输控制协议是一种面向连接的、可靠的、基于字节流的传输层协议。

TCP报文分为报头和数据,报头中主要的字段:源地址和端口号,目的地址和端口号,确认号(syn报文),滑动窗口大小。检验和(目的,计算发送端的报头和数据,然后得出一个数字,报文接受段采用同样的校验方式来计算得出校验和值,如果两个相同,则接受,不相同,则可能才传输过程中发送数据被人修改,不接受,MD5是常被用来校验一个文件是否被改变)。

6.       TCP如何保证可靠传输

数据包校验、超时重传机制、应答机制、对失序数据包重排序、流量控制。

7.       TCP的三次握手与四次挥手过程,各个状态名称与含义

TCP连接有三个阶段:建立连接、数据传送和连接释放。

建立连接时解决:1)知道对方存在。2)双方协商参数(最大窗口值时间戳选项。服务质量等)。3)对运输实体资源(缓存大小、连接表中的项目)进行分配。

TCP连接的端口叫做套接字或插口。主动发起建立连接的应用进程是客户机,被动等待监听建立连接的应用进程为服务器。

三次握手

1、客户机TCP先向服务器TCP发送连接请求报文段,不含应用层数据。SYN=1, seq=x

2、服务器TCP收到连接请求后,如同意建立连接,向客户机发回确认,并为该TCP连接分配TCP缓存和变量。确认报文段不含应用层数据。SYN=1, ACK=1,seq=y, ack=x+1

3、客户机收到确认报文段后,还要向服务器给出确认,并且也要给连接分配缓存和变量。该报文段可以携带数据。ACK=1, seq=x+1,ack=y+1

在成功进行以上三步后,TCP连接就建立了,接下来可以传送应用层的数据了。另外,服务器端的资源是在完成第二次握手时分配的,而客户端的资源是在完成第三次握手时分配的。这就使得服务器易于收到SYN洪泛攻击。

四次挥手

1、客户机向TCP发送一个连接释放报文段,并停止再发送数据。FIN=1, seq=u。这时A进入FIN-WAIT-1(终止等待1)状态,等待B的确认

2、服务器收到即发出确认,此时客户机到服务器这个连接就释放了,TCP处于半关闭状态。服务器可以继续发送数据。ACK=1,seq=v, ack=u+1。A收到B的确认后进入FIN-WAIT-2(终止等待2)状态,等待B发出的连接释放报文段。

3、若服务器已经没有要向客户机发送的数据,就通知TCP释放连接,发送连接释放报文段。FIN=1, ACK=1, seq=w,ack=u+1

4、客户机收到连接释放报文段后,必须发出确认,必须经过时间等待计时器设置的时间2MSL后,才进入到连接关闭状态。ACK=1,seq=u+1,ack=w+1

MSL(最长报文段寿命),为什么A在TIME-WAIT状态必须等待2MSL的时间?第一,为了保证A发送的最后一个ACK报文能够达到B。(若B收不到对已发送的FIN+ACK报文段的确认,B会超时重传,A就能在2MSL时间内收到这个重传的FIN+ACK报文,A再重新启动2MSL计时器)若A直接CLOSED则不会收到B的重传。第二,防止“已失效的连接请求报文段”出现在本连接中。A在发生完最后一个ACK报文段后,再经过2MSL就可以使本连接持续的时间内所产生的所有报文段都从网络中消失。

8.       两次连接的问题

1:服务端有可能发送一次无用连接,占用服务器资源。

当客户端发送一个syn进行连接,由于网络延迟,此时客户端没有收到ack,服务端也没有收到ack,此时客户端再次发送syn进行连接,这次和服务端建立了连接,然后发送完数据,通信完成,此时第一个syn包来了,服务端以为客户端又来了,因为是两次,所以开放资源和客户端建立连接,然后该连接是无效的。

2:发生死循环(建立连接以后服务端主动发送数据的情况);

当服务端接受到客户端的连接请求syn包时,发送ack包,然后建立连接,此时就开始向客户端发送数据,但是由于网络不稳定,服务端的ack并没有被客户端收到,但是客户端却收到了服务端发送的数据,但是此时不是客户端想要的ack,丢弃,然后继续发送syn包,服务端不管该syn包,然后继续发送数据,客户端发现该数据还是不是需要的ack,继续发送syn包。一直持续下去。

9.       TCP拥塞控制。

拥塞控制算法:“慢启动”(SlowStart)、“拥塞避免”(Congestionvoidance)、“快速重传 ”(Fast Retransmit)、“快速恢复”(Fast Recovery)

1. 慢启动:早期开发的TCP应用在启动一个连接时会向网络中发送大量的数据包,这样很容易导致路由器缓存空间耗尽,网络发生拥塞,使得TCP连接的吞吐量急剧下降,一看是先发送一个segment到服务器,服务器正常返回ack以后就发送两个segment,如果服务器正确返回,则继续增减一个发送的segment的数据,也就是逐渐增大拥塞窗口的大小,(2^n)

2. 拥塞避免:如果按上述慢启动的逻辑继续下去而不加任何控制的话,必然会发生拥塞,因此设置一个动态阈值来控制拥塞窗口的大小,当拥塞窗口的大小小于阈值的大小,就属于慢启动阶段,随着拥塞窗口越来越大,甚至超过了阈值,则网络会逐渐发生拥堵状况,这时就会将发送阈值降为原来的一半,并把拥塞窗口的大小设置为初始值(发生第一次拥塞以后变成线性增长的发送)

3. 快速重传,(当接收到冗余ack和长时间接受不到对应的ack的时候就,就会发生重新发送对应序列号的分组),当快速重传的时候则将阈值设置为原来的一半,并发送丢失序号的分组。

4. 快速恢复(是对快速重传的补充):那么,什么是快速恢复呢?我们通常认为client接收到3个重复的ack后,就会开始快速重传,但是,如果还有更多的重复ack呢,如何处理?这就是快速恢复要做的,事实上,我们可以把快速恢复看作是快速重传的后续处理,它不是一种单独存在的形态。快速重传之后吧马上增大下一个发送分组的数量,也就是阈值+3个segment的大小。为什么要增加3个segment呢,这时因为一个发送端收到了3个ack,就确认有三个分组被正确接收,为了最大利用网络,保证在网络中的分组数量一致,就在增加了3个segment。

10.   TCP滑动窗口与回退N针协议。

1.TCP的滑动窗口只在发送端和接收端才有,滑动窗口是用于流量控制的,注意滑动窗口与拥塞窗口的区分,拥塞窗口除了在发送端和接收端有,路由器也是有的。拥塞窗口是用于拥塞控制的(该窗口是试探性窗口,为了最大利用网络,该窗口一直在变动)。

2. 流量控制:用于窗口时接收方的缓存器的大小的窗口才叫滑动窗口。

公式:可以接收窗口大小=缓存器窗口大小-【刚接收到的窗口大小-刚被读取的窗口的大小】,可以接收窗口的大小是要发送到tcp的发送端的。发送方通过接收到大窗口的大小来判断是否可以发送多少数据到接收端才比较合适。

同时在接收端也是有算法的:接收方保证:接收端可接收窗口大小>刚发送的的分组数-刚接受到的分组数的ack,也就是未被确认的分组的大小小于接收方可接受窗口的大小。接收方缓存器窗口大小是固定的。

3. 流控制是一种局部控制机制,其参与者仅仅是发送方和接收方,它只考虑了接收端的接收能力,而没有考虑到网络的传输能力;而拥塞控制则注重于整体,其考虑的是整个网络的传输能力,是一种全局控制机制。正因为流控制的这种局限性,从而导致了拥塞崩溃现象的发生。

4:回退N步和选择重传都是解决流水线的差错恢复的两中基本方法;

回退N步

就是将各个分组编号,假如滑动窗口的大小是4,那么一次传输过去四个分组,如果对方接受到一个分组,且分组序号的大小比上一个提交分组的序号大1,则发送一个ack给发送端并提交分组,如果发送端接收到ack的ack与base序号相同,则滑动窗口向后移动。如果接受到的分组不是比提交的分组大1,则会丢弃该分组,这样发送端如果在定时器超时的时间之内没有接受到ack,则回重新发送分组;

缺点:就是如果有一个分组没有被接收而被丢弃,那么可能同一个窗口发送过来的好多分组都会被丢弃。这样就造成了网络的浪费,同时滑动窗口越大,虽然网络的利用率越大,但是一点一次传输过去的是base序号的分组失序或者丢失,则之后整个窗口分组都会被重新发送。(GBN协议只需要一个定时器)

选择重传

由于GBN协议可能会将失序的分组丢掉,其实失序的分组有时候是没有必要被重新传输的,只需要用一个buffer存存好就可以了。选择重传有在发送方每一个分组都有一个定时器(重点,也是缺点),假如滑动窗口大小是4,如果接受方接收到的分组不比上一个提交的分组序号大1,则会将该分组收分组存入buffer中,等下一个正确的分组到来以后和他一起提交,并将刚接手到;而对于接受方来说:如果一个分组未收到确认,如果超过该分组定时器的时间,则将该分组重新发送,如果ack接受到一个base序号的分组,则滑动窗口向后移动,如果滑动窗口接受到的序号不是base序号的ack,则会将base后面序号的ack先确认,但是此时发送方的滑动窗口并不会向后滑动,只有base序号的ack回来以后滑动窗口才会向后移动。(SR选择重传在没有收到想要的序号的时候返回的是ack中包含的是想要的序号的ack,而不是刚刚接收到的分组的序号)

TCP用于解决流水线的差错恢复方法

使用的协议是GNB协议和SR选择重传的综合:GBN协议是只有一个超时定时器,而SR选择重传每一分组有一个定时器,TCP采用的是设置一个定时器(所有的分组的超时时间就是一样的)。但是在ack确认和接收方序号乱的时候采用的SR协议来实现的。

11.   UDP介绍

16位源端口号

16位目的端口号

16位UDP长度

16位UDP检验和

数据(如果有)

UDP协议是无连接的用户数据报协议,当使用该协议传输层向上提供的是一条不可靠的逻辑信道。

UDP在IP之上仅提供两个基本的服务:复用和分用以及差错检测。

UDP比较简单,执行速度快、实时性好,常用于一次性传输比较少量数据的网络应用,主要适用于小文件传送协议TFTP、DNS、SNMP和实时协议RTP,也常用于多媒体应用(IP电话、视频会议、流媒体等)。UDP是面向报文的。

UDP优点:(1)无需建立连接,延时小。(2)无连接状态,无需维护连接状态。(3)分组首部开销小,TCP为20字节首部,UDP为8字节。(4)应用层更好地控制要发送的数据和发送时间。

12.   Http

URL,统一资源定位符,负责标识万维网上的各种文档,唯一。

URL一般形式:<协议>://<主机>:<端口>/<路径>

HTTP协议定义了浏览器怎样向www服务器请求www文档,以及服务器怎样把文档传送给浏览器。

访问http://cse.seu.edu.cn/CSE/UI/大致流程:

1)浏览器分析URL

2)浏览器向DNS请求解析cse.seu.edu.cn的IP地址

3)DNS返回IP地址

4)浏览器与该服务器建立TCP连接(默认端口80)

5)浏览器发出HTTP请求:GET /CSE/UI

6)服务器通过HTTP响应把HTML文件返回

7)TCP连接释放

8)浏览器解析HTML文件,显示。

HTTP协议是无状态的,通常使用Cookie和session跟踪用户。

HTTP采用TCP作为运输层协议,保证数据可靠传输。

13.   Http的状态码含义。

 

类别

说明

1XX

Informational(信息性状态码)

接收的请求正在处理

2XX

Success(成功状态码)

请求正常处理完毕

3XX

Redirection(重定向状态码)

需要进行附加操作以完成请求

4XX

Client Error(客户端错误状代码)

服务器无法处理请求

5XX

Server Error(服务器错误状态码)

服务器处理请求出错

200 OK,正常处理

204 No Content,请求成功但返回的响应报文不含实体的主体部分。一般是客户端向服务端发信息而服务端不需要返回新信息。

206 Partial Content,客户端进行了范围请求。

301 Moved Permanently,永久性重定向。请求的资源已被分配了新的URI,以后应使用资源现在所指的URI。

302 Found,临时重定向。

303 See Other

304 Not Modified,客户端发送附带条件的请求,服务端允许请求,但未满足条件的情况。

307 Temporary Redirect,临时重定向。

400 Bad Request,请求报文存在语法错误。

401 Unauthorized,

403 Forbidden,被服务器拒绝访问。

404 Not Found,服务器上没有请求的资源。

500 Internal Server Error,服务器故障

503 Service Unavailable,服务器超载或维护。

14.   Http request的几种类型。

HTTP协议中共定义了八种方法或者叫“动作”来表明对Request-URI指定的资源的不同操作方式,具体介绍如下:

OPTIONS:返回服务器针对特定资源所支持的HTTP请求方法。也可以利用向Web服务器发送'*'的请求来测试服务器的功能性。

HEAD:向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息头中的元信息。

GET:向特定的资源发出请求。

POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的创建和/或已有资源的修改。

PUT:向指定资源位置上传其最新内容。

DELETE:请求服务器删除Request-URI所标识的资源。

TRACE:回显服务器收到的请求,主要用于测试或诊断。

CONNECT:HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。

虽然HTTP的请求方式有8种,但是我们在实际应用中常用的也就是get和post,其他请求方式也都可以通过这两种方式间接的来实现。

15.   Http1.1Http1.0的区别

HTTP/1.0协议使用非持久连接,即在非持久连接下,一个tcp连接只传输一个Web对象

HTTP/1.1默认使用持久连接(然而HTTP/1.1协议的客户机和服务器可以配置成使用非持久连接)在持久连接下,不必为每个Web对象的传送建立一个新的连接,一个连接中可以传输多个对象。这里的持久连接和websocket要区别开来。

16.   httphttps区别

http是HTTP协议运行在TCP之上,所有传输的内容都是明文,客户端服务端无法验证对方的身份。https是HTTP协议运行在SSL/TLS之上,SSL/TLS运行在TCP之上。所有传输都经过对称加密,但对称加密的秘钥用服务器方的证书进行了非对称加密。此外客户端可以验证服务器端的身份。如果配置了客户端验证,服务器也可以验证客户端。https默认端口443。

17.   Http怎么处理长连接。

在首部字段中设置Connection:keep-alive和Keep-Alive:timeout=60,表明连接建立之后,空闲时间超过60秒之后,就会失效。如果在空闲第58秒时,再次使用此连接,则连接仍然有效,使用完之后,重新计数,空闲60秒之后过期。

18.   HTTP状态码

19.     

类别

说明

1XX

Informational(信息性状态码)

接收的请求正在处理

2XX

Success(成功状态码)

请求正常处理完毕

3XX

Redirection(重定向状态码)

需要进行附加操作以完成请求

4XX

Client Error(客户端错误状代码)

服务器无法处理请求

5XX

Server Error(服务器错误状态码)

服务器处理请求出错

200 OK,正常处理

204 No Content,请求成功但返回的响应报文不含实体的主体部分。一般是客户端向服务端发信息而服务端不需要返回新信息。

206 Partial Content,客户端进行了范围请求。

301 Moved Permanently,永久性重定向。请求的资源已被分配了新的URI,以后应使用资源现在所指的URI。

302 Found,临时重定向。

303 See Other

304 Not Modified,客户端发送附带条件的请求,服务端允许请求,但未满足条件的情况。

307 Temporary Redirect,临时重定向。

400 Bad Request,请求报文存在语法错误。

401 Unauthorized,

403 Forbidden,被服务器拒绝访问。

404 Not Found,服务器上没有请求的资源。

500 Internal Server Error,服务器故障

503 Service Unavailable,服务器超载或维护。

20.   电脑上访问一个网页,整个过程是怎么样的:DNSHTTPTCPOSPFIPARP

首先http是一个应用层的协议,在这个层的协议,只是一种通讯规范,也就是因为双方要进行通讯,大家要事先约定一个规范。

1.连接:输入这样一个请求时,首先要建立一个socket连接,因socket是通过ip和端口建立的,所以之前还有一个DNS解析过程,把http://www.mytest.com/变成ip,如果url里不包含端口号,则会使用该协议的默认端口号。

DNS过程:首先本地机器上给的DNS,会把这个url发给这个配置的DNS服务器,如果能找到相应的url则返回其ip,否则该DNS将继续将该解析请求发送给上级DNS,整个DNS可以看做是一个树状结构,该请求将一直发送到根直到得到结果。现在拥有了目标ip和端口号,这样我们就可以打开socket连接了。

2.请求:连接成功建立后,开始向web服务器发送请求,这个请求一般是GET或POST命令(POST用于FORM参数的传递)。GET命令的格式为GET 路径/文件名 HTTP/1.1文件名指出所访问的文件,HTTP/1.0指出Web浏览器使用的HTTP版本。现在可以发送GET命令:GET /mytest/index.html HTTP/1.1,

3.应答:web服务器收到这个请求,进行处理。从它的文档空间中搜索子目录mytest的文件index.html。如果找到该文件,Web服务器把该文件内容传送给相应的Web浏览器。为了告知浏览器,,Web服务器首先传送一些HTTP头信息,然后传送具体内容(即HTTP体信息),HTTP头信息和HTTP体信息之间用一个空行分开。

4.关闭连接:当应答结束后,Web浏览器与Web服务器必须断开,以保证其它Web浏览器能够与Web服务器建立连接。

21.   Ping的整个过程。ICMP报文是什么。

为了提高IP数据报交付成功机会,在网络层使用过了网际控制报文协议(ICMP)来允许主机或路由器报告差错和异常情况。ICMP报文作为IP层数据报的数据,加上数据报首部,组成IP数据报发出去。ICMP协议是IP层协议。

Ping的过程如下:

> - `PC1`在应用层发起个目标`IP`为`192.168.1.2`的`Ping`请求。

> - 直接使用网际层的`ICMP`协议,不经过传输层。

> - 网际层接收来处上层的数据后,根据`ICMP`协议进行封装,添加`PC1`的`IP`为源`IP`和`PC2`的`IP`为目标`IP`后封装成数据包。下传到网络接口层。

> - 网络接口层接收数据包后,进行封装,源`MAC`地址为`PC1`的`MAC`地址,目标`MAC`地址则查询自己的`ARP`缓存表获取。如果`PC1`的`ARP`缓存表中没有目标`IP`对应的`MAC`地址,则`PC1`发出一个`ARP`广播报文。`ARP`报文中源`MAC`地址为`PC1`的`MAC`地址,源`IP`地址为`PC1`的`IP`,所要请求的是`PC2`的`IP`对应的`MAC`地址。

> - `PC2`收到`ARP`广播后,进行解封装,发现所请求的`MAC`地址是自己的。则`PC2`将`PC1`的`MAC`地址写入`ARP`缓存表中。然后向`PC1`发送一个 `ARP`应答单播。该单播消息包括目标`IP`为`PC1`的`IP`,目标`MAC`为`PC1`的`MAC`地址,源`IP`为`PC2`的`IP`,源`MAC`为`PC2`的`MAC`。

> - `PC1`接收到`PC2`的`ARP`应答报文后,将`PC2`的`MAC`地址存入`ARP`缓存中,并将`PC2`的`MAC`地址作为目标地址封装到数据帧中。发给下层进行网络传输。

> - `PC2`接收这个帧后,在网络接口层查看目标`MAC`地址是否指向自己。是,`PC2`则将帧头去掉,向上层传输。

> - `PC2`网际层接收到这个信息包,查看包头,发现目标`IP`和自己匹配,则解封装,将数据向上层传输。

> - 传输层接收来自下层的`Ping`请求的`UDP`报文,则去掉`UDP`报头,向应用层传送。

> - 应用层收到`Ping`请求后,发送一个`Ping`回应报文给`PC1`。

22.   常见协议

FTP 是File TransferProtocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application);

DHCP动态主机配置协议,是一个局域网的网络协议,使用UDP协议工作, 主要有两个用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段

Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式;

SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP协议属于TCP/IP协议簇;

DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上;

ICMP是(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息;

23.   DNS系统

DNS(Domain Name System)域名系统,因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上。

DNS采用C/S模型,其协议运行在UDP之上,使用53号端口。

层次域名空间

因特网采用层次树状结构的命名方法。如www.csdn.net分别为三级域名.二级域名.顶级域名。

域名服务器

       域名系统被设计成一个联机分布式的数据库系统,并采用C/S模型。域名到IP地址解析是由运行在域名服务器上的程序完成的。

域名解析过程

当客户端需要域名解析时,通过本机的DNS客户端构造一个DNS请求报文,以UDP数据报方式发送本地域名服务器。过程如下(共使用8个UDP报文):

1)客户机向其本地域名服务器发出DNS请求报文

2)本地域名服务器收到请求,查询本地缓存,若没有则以DNS客户的身份向根域名服务器发出解析请求。

3)根域名服务器收到请求,判断该域名属于X域,将对应域名服务器IP地址返回给本地域名服务器。

4)本地域名服务器向顶级域名服务器X发送解析请求报文。

5)顶级域名服务器X收到请求后判断该域名数据A域,将其IP返回。

6)本地域名服务器向A服务器发起解析请求。

7)A服务器收到请求后,将查询结果返回给本地域名服务器。

8)本地域名服务器将查询结果缓存到本地,同时返回给客户机。

有新的问题会继续更新。。。

猜你喜欢

转载自blog.csdn.net/qq407388356/article/details/80263212