考研复试问题之计算机网络

考研复试问题之计算机网络

1.谈谈osi模型七层模型和tcp/ip协议分层

osi七层模型分为,

物理层,物理网络的机械、电气和光特征以及接口的定义,以透明地传输比特流

数据链路层,成帧、差错处理和流量控制、数据链路管理,将在网络层交下来的数据报组装成帧(frame),在两个相邻结点间的链路上实现帧的无差错传输

网络层,数据分组,寻址和路由选择、地址解析。

传输层,建立端对端的连接,并决定向上层提供的服务。

会话层,会话连接管理,同步控制。

表示层,数据表示,协议转化,数据加密,压缩和语法协商

应用层,文件传输访问、消息、作业处理等各种应用程序进程以及服务。

tcp\ip协议分层为四层协议,网络接口层,网际层,传输层,应用层。

相似点:他们都是基于独立的协议栈的概念,层的功能大体相同。

不同点:

ois现有模型后有协议,风场通用,但是可能出现协议不匹配模型。明确区分服务、接口和协议,机油更好的 隐蔽性。模型过于复杂,某些功能在多层重复出现,某些功能没有定义在模型中。

tcp/ip先有协议后有模型,不适合其他协议栈。名优明确地区分服务、接口和协议。模型简单但是不通用,没有区分物理 层和数据链路层,而这两层功能完全不同。

2.tcp和udp的区别

tcp是面向连接的可靠的字节流服务。适合下载大文件。

udp是无连接不可靠的协议。udp适合多播和广播,适合传输小文件,传输速度快。

3.tcp的三次握手和四次挥手

考研复试问题之计算机网络

第一次握手:Client将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认。
第二次握手:Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK都置为1,ack=J+1,随机产生一个值seq=K,并将该数据包发送给Client以确认连接请求,Server进入SYN_RCVD状态。
第三次握手:Client收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给Server,Server检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,Client和Server进入ESTABLISHED状态,完成三次握手,随后Client与Server之间可以开始传输数据了

为什么一定要进行三次握手,而不是两次或四次呢?

若是两次握手连接的话,就会出现这种情况,在客户端发送连接请求时,网络延迟等原因请求延迟了,客户端迟迟收不到确认,则一段时间后,会发送新的请求,这时服务器确认,建立连接。但是建立连接后,第一次请求也到达服务器端,服务器就会以为是一次新的连接请求。如果是三次就不会出现这个问题了。四次是确保没有问题但是次数多了,浪费资源。

考研复试问题之计算机网络

第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。
第二次挥手:Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),Server进入CLOSE_WAIT状态。此时TCP链接处于半关闭状态,即客户端已经没有要发送的数据了,但服务端若发送数据,则客户端仍要接收。
第三次挥手:Server发送一 个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态。
第四次挥手:Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,Server进入CLOSED状态,完成四次挥手。

为什么客户端要等待2msl(报文最大生存时间)的时间才真正释放掉?

第一,为了保证客户端发送的最后一个ACK报文段能够到达B

第二,防止”已失效的连接请求报文段“出现在本连接中。客户端在发送完最后一个ACK报文段后,在经过时间2msl,就可以使本连接持续的时间内所产生的所有报文段,都从网络中消失。这样就可以使下一个新的连接中不会出现这种旧的连接请求报文段。

4.登陆baidu.com协议流程。

(1)浏览器分析域名指向页面的URl

(2)浏览器将DNS请求解析baidu.com的IP地址,在解析的时候,先走本地解析,在走远程域名系统解析。

(3)域名系统解析出百度服务器的ip地址

(4)浏览器于服务器建立TCP连接。

(5)浏览器发出http协议,请求页面。

(6)服务器给出响应,把数据响应给浏览器。

(7)tcp连接释放

5.tcp的流量控制和拥塞控制

流量控制就是让发送方的发送速率不要太快,既要让接收方来得及接收,也不能使网络发生拥塞。tcp是利用滑动窗口机制来实现流量控制的。在tcp协议报头信息中有一个16字段的窗口大小,窗口大小的实际上是接收端接收数据缓冲区的大小。这个数字越大接收端缓冲区的剩余空间越大,网络的吞吐量越大。接收端会在确认应答发送ACK报文时,将自己的即时窗口大小填入,并随ACK报文一同发过去,而发送方根据ACK报文里的窗口大小的值的改变进而改变自己的发送速度。如果接收的窗口大小为0,那么发送方就会停止发送数据,并定期的向接收端发送窗口探测数据段,让接收端把窗口大小告诉他,当窗口大小恢复后,继续进行发送。

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

拥塞控制发送方维持一个叫做拥塞窗口的状态变量。拥塞窗口的大小取决于网络的拥塞程度,并且动态地在变化。发送方让自己的发送窗口等于拥塞窗口如果考虑到接收方的接收能力,则发送窗口还可能小于拥塞窗口。发送方控制拥塞窗口的原则是,只要网络没有出现拥塞控制,拥塞窗口就在增大一些,以便把更多的分组发送出去。但只要网络出现拥塞,拥塞窗口就减小一些,以减小注入到网络中的分组数。在拥塞控制用慢开始和拥塞避免的方法。

【参考】TCP的拥塞控制

拥塞控制和流量控制的关系

拥塞控制所要做的都是有一个前提,就是网络能后承受现有的网络负荷。拥塞控制是一个全局性的过程,涉及到所有的主机,所有的路由器,以及与降低网络传输性能有关的所有因素。

流量控制往往是指在给定的发送端和接收端之间的点对点通信量的控制,所要做的就是抑制发送端发送数据的速率,以便使接收端来得及接收。

6.TCP协议如何来保证传输的可靠性

TCP提供一种面向连接的、可靠的字节流服务。其中,面向连接意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据之前必须先建立一个TCP连接。在一个TCP连接中,仅有两方进行彼此通信;而字节流服务意味着两个应用程序通过TCP链接交换8bit字节构成的字节流,TCP不在字节流中插入记录标识符。
对于可靠性,TCP通过以下方式进行保证:
数据包校验:目的是检测数据在传输过程中的任何变化,若校验出包有错,则丢弃报文段并且不给出响应,这时TCP发送数据端超时后会重发数据;
对失序数据包重排序:既然TCP报文段作为IP数据报来传输,而IP数据报的到达可能会失序,因此TCP报文段的到达也可能会失序。TCP将对失序数据进行重新排序,然后才交给应用层;
丢弃重复数据:对于重复数据,能够丢弃重复数据;
应答机制:当TCP收到发自TCP连接另一端的数据,它将发送一个确认。这个确认不是立即发送,通常将推迟几分之一秒;
超时重发:当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段;
流量控制:TCP连接的每一方都有固定大小的缓冲空间。TCP的接收端只允许另一端发送接收端缓冲区所能接纳的数据,这可以防止较快主机致使较慢主机的缓冲区溢出,这就是流量控制。TCP使用的流量控制协议是可变大小的滑动窗口协议。

【参考】TCP协议-如何保证传输可靠性

7.解释ARP协议

ARP协议是用来解释IP地址所对应的MAC地址,因为在实际的数据链路上传送数据帧时,必须要使用硬件地址。

ARP协议的工作原理:首先,每台主机都会在自己的 ARP 缓冲区中建立一个 ARP 列表,以表示 IP 地址和 MAC 地址的对应关系。当源主机需要将一个数据包要发送到目的主机时,会首先检查自己 ARP 列表中是否存在该 IP 地址对应的 MAC 地址,如果有,就直接将数据包发送到这个 MAC 地址;如果没有,就向本地网段发起一个 ARP 请求的广播包,查询此目的主机对应的 MAC 地址。此 ARP 请求数据包里包括源主机的 IP 地址、硬件地址、以及目的主机的 IP 地址。网络中所有的主机收到这个 ARP 请求后,会检查数据包中的目的 IP 是否和自己的 IP 地址一致。如果不相同就忽略此数据包;如果相同,该主机首先将发送端的 MAC 地址和 IP 地址添加到自己的 ARP 列表中,如果 ARP 表中已经存在该 IP 的信息,则将其覆盖,然后给源主机发送一个 ARP 响应数据包,告诉对方自己是它需要查找的 MAC 地址;源主机收到这个 ARP 响应数据包后,将得到的目的主机的 IP 地址和 MAC 地址添加到自己的 ARP 列表中,并利用此信息开始数据的传输。如果源主机一直没有收到 ARP 响应数据包,表示 ARP 查询失败。

8.CSMA/CD(带冲突检测的多路载波监听技术)

在数据链路层操作的,各工作站在发送数据之前会监听信道是否空闲,若空闲,则立即发送数据,若忙碌,则等待一段时间至信道空闲在发送数据。若上一段信息发送结束后,同时有多个站点请求发送数据,则判定为冲突,则停止所有节点发送数据,等待随机时间后再次发送数据。

9.路由设备及其相关层

物理层:中继器、集线器

数据链路层:网桥、交换机

网络层:路由器

10.常见的路由选择协议,以及它们的区别

RIP协议基于距离矢量算法,它使用*“跳数,即metric*来衡量到达目标地址的路由距离,它是一个用于路由器和主机间交换路由信息的距离向量协议,最大15跳,如果大于15跳则丢弃数据

OSPF协议:底层是迪杰特斯拉算法,是链路状态路由选择协议,他选择路由的度量标准是带宽,延迟。

11. HTTP 协议包括哪些请求?

  • GET :请求读取由 URL 所标志的信息。
  • POST :给服务器添加信息(如注释)。
  • PUT :在给定的 URL 下存储一个文档。
  • DELETE :删除给定的 URL 所标志的资源。

12. HTTP 中, POST 与 GET 的区别

GET与POST是我们常用的两种HTTP Method,二者之间的区别主要包括如下五个方面:
(1). 从功能上讲,GET一般用来从服务器上获取资源,POST一般用来更新服务器上的资源;
(2). 从REST服务角度上说,GET是幂等的,即读取同一个资源,总是得到相同的数据,而POST不是幂等的,因为每次请求对资源的改变并不是相同的;进一步地,GET不会改变服务器上的资源,而POST会对服务器资源进行改变;
(3). 从请求参数形式上看,GET请求的数据会附在URL之后,即将请求数据放置在HTTP报文的 请求头 中,以?分割URL和传输数据,参数之间以&相连。特别地,如果数据是英文字母/数字,原样发送;否则,会将其编码为 application/x-www-form-urlencoded MIME 字符串(如果是空格,转换为+,如果是中文/其他字符,则直接把字符串用BASE64加密,得出如:%E4%BD%A0%E5%A5%BD,其中%XX中的XX为该符号以16进制表示的ASCII);而POST请求会把提交的数据则放置在是HTTP请求报文的 请求体 中。
(4). 就安全性而言,POST的安全性要比GET的安全性高,因为GET请求提交的数据将明文出现在URL上,而且POST请求参数则被包装到请求体中,相对更安全。
(5). 从请求的大小看,GET请求的长度受限于浏览器或服务器对URL长度的限制,允许发送的数据量比较小,而POST请求则是没有大小限制的。

13.NAT 协议、 DHCP 协议、 DNS 协议的作用

NAT协议(Network Address Translation):网络地址转换属于接入广域网的技术。是一种将私有(保留)地址转化为合法IP地址的转化技术,他被广泛应用于各中类型Internet接入方式和各类型的网络中。原因很简单,NAT不仅完美的解决了IP地址不足的问题,而且还能够有效的避免网络外部攻击,隐藏并保护网络内部的计算机。

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

.DNS 协议: DNS 是域名系统 (Domain Name System) 的缩写,是因特网的一项核心服务,它作为可以将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的 IP 数串。

14.HTTP和HTTPS的区别

Http协议运行在TCP之上,明文传输,客户端与服务器端都无法验证对方的身份。

Https是运行在SSL之上的,SSL运行在TCP之上是添加了加密和认证机制的Http。

不同点:

  • http和https采用的连接方式不同,使用的端口也不同,前者的80,后者是443
  • 资源消耗:和http通信相比,Https由于加密处理消耗更多的资源。
  • 开销:https通信需要证书,而证书一般需要向认证机构购买。https的加密机制是一种共享秘钥加密和公开秘钥加密并用的混合加密机制

15.对称加密与非对称加密

对称加密是指加密和解密使用同一个秘钥的方式。这种当时最大的问题就是秘钥的发送问题,即如何安全的将秘钥发送给对方;

非对称加密是指使用一对非对称秘钥,即公钥和私钥,公钥可以随意发布,但私钥只有自己知道。发送密文的一方使用对方的公钥进行加密,对方接受到消息后,用自己的私钥进行解密。由于非对称加密不需要发送过来解密的私钥,所有保证加密的安全性。但是和对称加密比起来,他非常的慢,所有我们还是用对称加密发送消息,但是对称加密锁使用的秘钥我们可以通过非对称加密进行传输。

16.什么是ICMP协议

为了提供IP数据报交付成功的机会,在网络层使用网际控制报文协议ICMP,进行网络探询,主机或路由器报告差错情况和提供有关异常情况的报告。

17.网络协议核心三要素是什么?各有什么作用

语法:数据与控制信息的结构或者格式

语义:发出何种控制信息、完成何种动作,做出何种响应。

同步:时间顺序,速度匹配

18.网卡的作用

  • 串并行转换
  • 数据的缓冲功能
  • 设备驱动程序
  • 实现相应的MAC协议和物理协议

19.IP服务的三个特点是什么?

不可靠、面向无连接和尽最大努力投递

20.IP地址的网络掩码的作用

  • 区分网络ID和主机ID
  • 识别目标主机在本地还是远程网络

21.运输层与网络层的区别

网络层提供主机之间的逻辑通信

传输层提供进程之间的逻辑通信

22路由器的主要功能

路由器主要完成两个功能:一是路由选择(确定哪一条路径),二是分组转发(当一个分组到达时所采取的动作)。前者是根据特定的路由选择协议构造出路由表,同时经常或定期地和相邻路由器交换器由信息而不断地更新和维护路由表。后者处理通过路由器的数据流,关键操作是转发表查询、转发相关的队列管理和任务调度等。

  • 1、路由选择。
    指按照复杂的分布式算法,根据从各相邻路由器所得到的关于整个网络拓扑的变化情况,动态地改变所选择的路由。

  • 2、分组转发
    指路由器根据转发表将用户的IP数据报从合适的端口转发出去。路由表是根据路由选择算法得出的,而转发表是从路由表得出的。转发表的结构应当使查找过程最优化,路由表则需要对网络拓扑变化的计算最优化。在讨论路由选择的原理时,往往不去区分转发表和路由表,而是笼统地使用路由表一词。

  • 1、路由选择。
    指按照复杂的分布式算法,根据从各相邻路由器所得到的关于整个网络拓扑的变化情况,动态地改变所选择的路由。

  • 2、分组转发
    指路由器根据转发表将用户的IP数据报从合适的端口转发出去。路由表是根据路由选择算法得出的,而转发表是从路由表得出的。转发表的结构应当使查找过程最优化,路由表则需要对网络拓扑变化的计算最优化。在讨论路由选择的原理时,往往不去区分转发表和路由表,而是笼统地使用路由表一词。