【通信原理】春招八股文----常见的几个计算机网络相关问答

news/2024/5/18 13:01:27 标签: 网络协议, 网络, https, tcpip, udp

目录

 

【1】简述OSI七层协议?

【2】简述TCP/IP五层协议?

【3】物理层有什么作用?

【4】数据链路层有什么作用

【5】网络层有什么作用

【6】传输层有什么作用

【7】会话层有什么作用

【8】表示层有什么作用

【9】应用层有什么作用

【10】TCP与UDP区别

【11】为何TCP可靠

【12】为何UDP不可靠

【13】简述TCP粘包现象

【14】TCP粘包现象处理方法

【15】简述TCP协议的滑动窗口

【16】简述TCP协议的拥塞控制

【17】简述快重传

【18】TCP三次握手过程

【19】TCP四次挥手过程

【20】简述DNS解析过程

【21】简述http状态码和对应的信息

【22】转发和重定向的区别

【23】简述http1.0

【24】简述http1.1的改进

【25】简述http2.0的改进

https%E7%9A%84%E5%8C%BA%E5%88%AB-toc" style="margin-left:0px;">【26】http与https的区别

https%E7%9A%84%E8%BF%9E%E6%8E%A5%E8%BF%87%E7%A8%8B-toc" style="margin-left:0px;">【27】https的连接过程

【28】Get与Post区别


【1】简述OSI七层协议?

OSI七层协议包括:物理层,数据链路层,网络层,运输层,会话层,表示层, 应用层

【2】简述TCP/IP五层协议?

TCP/IP五层协议包括:物理层,数据链路层,网络层,运输层,应用层

【3】物理层有什么作用?

主要解决两台物理机之间的通信,通过二进制比特流的传输来实现,二进制数据表现为电流电压上的强弱,到达目的地再转化为二进制机器码。网卡、集线器工作在这一层。

【4】数据链路层有什么作用

在不可靠的物理介质上提供可靠的传输,接收来自物理层的位流形式的数据,并封装成帧,传送到上一层;同样,也将来自上层的数据帧,拆装为位流形式的数据转发到物理层。这一层在物理层提供的比特流的基础上,通过差错控制、流量控制方法,使有差错的物理线路变为无差错的数据链路。提供物理地址寻址功能。交换机工作在这一层。

【5】网络层有什么作用

网络地址翻译成对应的物理地址,并决定如何将数据从发送方路由到接收方,通过路由选择算法为分组通过通信子网选择最佳路径。路由器工作在这一层。

【6】传输层有什么作用

传输层提供了进程间的逻辑通信,传输层向高层用户屏蔽了下面网络层的核心细节,使应用程序看起来像是在两个传输层实体之间有一条端到端的逻辑通信信道。

【7】会话层有什么作用

建立会话:身份验证,权限鉴定等;

保持会话:对该会话进行维护,在会话维持期间两者可以随时使用这条会话传输局;

断开会话:当应用程序或应用层规定的超时时间到期后,OSI会话层才会释放这条会话

【8】表示层有什么作用

对数据格式进行编译,对收到或发出的数据根据应用层的特征进行处理,如处理为文字、图片、音频、视频、文档等,还可以对压缩文件进行解压缩、对加密文件进行解密等。

【9】应用层有什么作用

提供应用层协议,如HTTP协议,FTP协议等等,方便应用程序之间进行通信。

【10】TCP与UDP区别

TCP作为面向流的协议,提供可靠的、面向连接的运输服务,并且提供点对点通信

UDP作为面向报文的协议,不提供可靠交付,并且不需要连接,不仅仅对点对点,也支持多播和广播

【11】为何TCP可靠

TCP有三次握手建立连接,四次挥手关闭连接的机制。

除此之外还有滑动窗口和拥塞控制算法。最最关键的是还保留超时重传的机制。对于每份报文也存在校验,保证每份报文可靠性

【12】为何UDP不可靠

UDP面向数据报无连接的,数据报发出去,就不保留数据备份了。仅仅在IP数据报头部加入校验和复用。

UDP没有服务器和客户端的概念。

UDP报文过长的话是交给IP切成小段,如果某段报废报文就废了。

【13】简述TCP粘包现象

TCP是面向流协议,发送的单位是字节流,因此会将多个小尺寸数据被封装在一个tcp报文中发出去的可能性。

可以简单的理解成客户端调用了两次send,服务器端一个recv就把信息都读出来了。

【14】TCP粘包现象处理方法

固定发送信息长度,或在两个信息之间加入分隔符。

【15】简述TCP协议的滑动窗口

滑动窗口是传输层进行流量控制的一种措施,接收方通过通告发送方自己的窗口大小,从而控制发送方的发送速度,防止发送方发送速度过快而导致自己被淹没。

【16】简述TCP协议的拥塞控制

拥塞是指一个或者多个交换点的数据报超载,TCP又会有重传机制,导致过载。为了防止拥塞窗口cwnd增长过大引起网络拥塞,还需要设置一个慢开始门限ssthresh状态变量.

当cwnd < ssthresh 时,使用慢开始算法。

当cwnd > ssthresh 时,停止使用慢开始算法而改用拥塞避免算法。

当cwnd = ssthresh 时,即可使用慢开始算法,也可使用拥塞避免算法。

慢开始:由小到大逐渐增加拥塞窗口的大小,每接一次报文,cwnd指数增加。

拥塞避免:cwnd缓慢地增大,即每经过一个往返时间RTT就把发送方的拥塞窗口cwnd加1。

快恢复之前的策略:发送方判断网络出现拥塞,就把ssthresh设置为出现拥塞时发送方窗口值的一半,继续执行慢开始,之后进行拥塞避免。

快恢复:发送方判断网络出现拥塞,就把ssthresh设置为出现拥塞时发送方窗口值的一半,并把cwnd设置为ssthresh的一半,之后进行拥塞避免。

【17】简述快重传

如果在超时重传定时器溢出之前,接收到连续的三个重复冗余ACK,发送端便知晓哪个报文段在传输过程中丢失了,于是重发该报文段,不需要等待超时重传定时器溢出再发送该报文。

【18】TCP三次握手过程

1. 第一次握手:客户端将标志位SYN置为1,随机产生一个值序列号seq=x,并将该数据包发送给服务端,客户端进入syn_sent状态,等待服务端确认。

2. 第二次握手:服务端收到数据包后由标志位SYN=1知道客户端请求建立连接,服务端将标志位SYN和ACK都置为1,ack=x+1,随机产生一个值seq=y,并将该数据包发送给客户端以确认连接请求,服务端进入syn_rcvd状态。

3. 第三次握手:客户端收到确认后检查,如果正确则将标志位ACK为1,ack=y+1,并将该数据包发送给服务端,服务端进行检查如果正确则连接建立成功,客户端和服务端进入established状态,完成三次握手,随后客户端和服务端之间可以开始传输数据了

【19】TCP四次挥手过程

1. 第一次挥手:客户端发送一个FIN,用来关闭客户端到服务端的数据传送,客户端进入fin_wait_1状态。

2. 第二次挥手:服务端收到FIN后,发送一个ACK给客户端,确认序号为收到序号+1,服务端进入Close_wait状态。此时TCP连接处于半关闭状态,即客户端已经没有要发送的数据了,但服务端若发送数据,则客户端仍要接收。

3. 第三次挥手:服务端发送一个FIN,用来关闭服务端到客户端的数据传送,服务端进入Last_ack状态。

4. 第四次挥手:客户端收到FIN后,客户端进入Time_wait状态,接着发送一个ACK给服务端,确认后,服务端进入Closed状态,完成四次挥手。

【20】简述DNS解析过程

1、客户机发出查询请求,在本地计算机缓存查找,若没有找到,就会将请求发送给dns服务器

2、本地dns服务器会在自己的区域里面查找,找到即根据此记录进行解析,若没有找到,就会在本地的缓存里面查找

3、本地服务器没有找到客户机查询的信息,就会将此请求发送到根域名dns服务器

4、根域名服务器解析客户机请求的根域部分,它把包含的下一级的dns服务器的地址返回到客户机的dns服务器地址

5、客户机的dns服务器根据返回的信息接着访问下一级的dns服务器

6、这样递归的方法一级一级接近查询的目标,最后在有目标域名的服务器上面得到相应的IP信息

7、客户机的本地的dns服务器会将查询结果返回给我们的客户机

8、客户机根据得到的ip信息访问目标主机,完成解析过程

【21】简述http状态码和对应的信息

1XX:接收的信息正在处理

2XX:请求正常处理完毕

3XX:重定向

4XX:客户端错误

5XX:服务端错误

常见错误码:

301:永久重定向

302:临时重定向

304:资源没修改,用之前缓存就行

400:客户端请求的报文有错误

403:表示服务器禁止访问资源

404:表示请求的资源在服务器上不存在或未找到

【22】转发和重定向的区别

转发是服务器行为。服务器直接向目标地址访问URL,将相应内容读取之后发给浏览器,用户浏览器地址栏URL不变,转发页面和转发到的页面可以共享request里面的数据。

重定向是利用服务器返回的状态码来实现的,如果服务器返回301或者302,浏览器收到新的消息后自动跳转到新的网址重新请求资源。用户的地址栏url会发生改变,而且不能共享数据

【23】简述http1.0

规定了请求头和请求尾,响应头和响应尾(get post)

每一个请求都是一个单独的连接,做不到连接的复用

【24】简述http1.1的改进

HTTP1.1默认开启长连接,在一个TCP连接上可以传送多个HTTP请求和响应。使用 TCP 长连接的方式改善了 HTTP/1.0 短连接造成的性能开销。

支持管道(pipeline)网络传输,只要第一个请求发出去了,不必等其回来,就可以发第二个请求出去,可以减少整体的响应时间。

服务端无法主动push

【25】简述http2.0的改进

提出多路复用。多路复用前,文件时串行传输的,请求a文件,b文件只能等待,并且连接数过多。引入多路复用,a文件b文件可以同时传输。

引入了二进制数据帧。其中帧对数据进行顺序标识,有了序列id,服务器就可以进行并行传输数据。

https%E7%9A%84%E5%8C%BA%E5%88%AB">【26】http与https的区别

http所有传输的内容都是明文,并且客户端和服务器端都无法验证对方的身份。

https具有安全性的ssl加密传输协议,加密采用对称加密,

https协议需要到ca申请证书,一般免费证书很少,需要交费。

https%E7%9A%84%E8%BF%9E%E6%8E%A5%E8%BF%87%E7%A8%8B">【27】https的连接过程

1. 浏览器将支持的加密算法信息发给服务器

2. 服务器选择一套浏览器支持的加密算法,以证书的形式回发给浏览器

3. 客户端(SSL/TLS)解析证书验证证书合法性,生成对称加密的密钥,我们将该密钥称之为client key,即客户端密钥,用服务器的公钥对客户端密钥进行非对称加密。

4. 客户端会发起HTTPS中的第二个HTTP请求,将加密之后的客户端对称密钥发送给服务器

5. 服务器接收到客户端发来的密文之后,会用自己的私钥对其进行非对称解密,解密之后的明文就是客户端密钥,然后用客户端密钥对数据进行对称加密,这样数据就变成了密文。

6. 服务器将加密后的密文发送给客户端

7. 客户端收到服务器发送来的密文,用客户端密钥对其进行对称解密,得到服务器发送的数据。这样HTTPS中的第二个HTTP请求结束,整个HTTPS传输完成
 

【28】Get与Post区别

Get:指定资源请求数据,刷新无害,Get请求的数据会附加到URL中,传输数据的大小受到url的限制。

Post:向指定资源提交要被处理的数据。刷新会使数据会被重复提交。post在发送数据前会先将请求头发送给服务器进行确认,然后才真正发送数据。
 


http://www.niftyadmin.cn/n/1295286.html

相关文章

asp.net 设置网站为浏览器首页和加入收藏夹

<li οnclick"this.style.behaviorurl(#default#homepage);this.setHomePage(http://www.wodegw.com.cn/);"><a id"SetTheHomePage_zpb">设置首页</a></li> <li>|</li> <li id"AddToFavorites_zpb">加…

【鸿蒙】鸿蒙操作系统应用开发入门级初体验

目录 一 鸿蒙相关资源 二 创建新工程 三 程序设计 一 鸿蒙相关资源 鸿蒙学堂&#xff1a;https://hmxt.org/ 二 创建新工程 &#xff08;1&#xff09;下载鸿蒙的IDE&#xff1a;DevEco Studio&#xff0c;安装过程一路next即可&#xff1b; &#xff08;2&#xff09;安装…

【嵌入式】基于串口的IAP在线升级详解与实战3----安卓APP移植Ymodem远程升级嵌入式固件

目录 一 安卓程序设计 二 创建文件选择器 三 安卓遇上Ymodem 四 一些坑和注意点汇总 一 安卓程序设计 根据【嵌入式】基于串口的IAP在线升级详解与实战1----IAP功能设计中的说明&#xff0c;已经完成了MCU-HC08-超级终端的固件烧写流程&#xff0c;距离设想的使用手机APP实现…

Nginx技术手册

2019独角兽企业重金招聘Python工程师标准>>> Nginx技术手册: --------------------------------手册------------------------------- Nginx安装与配置-李强强.pdf http://vdisk.weibo.com/s/muClF Nginx高端资料-李强强.pdf http://vdisk.weibo.com/s/mYxoG …

[细节决定B度]之二分搜索也不易啊

实事求是的说二分搜索是我学习算法的时候学的最好&#xff0c;理解的最透彻&#xff0c;能够当时就写出代码的的算法。事到如今&#xff0c;就如我可以分分钟写出hello world一样&#xff0c;我可以分分钟写出一个二分搜索算法&#xff0c;曾经几何时&#xff0c;这曾经是我在大…

【嵌入式】NXP/LPC的CRP功能的使用(代码加密/解密)

目录 一 J-Flash读取MCU内部程序 二 程序加密 三 程序解密 一 J-Flash读取MCU内部程序 通过J-Flash可以读取到MCU内部的程序&#xff0c;步骤如下&#xff1a; &#xff08;1&#xff09;进入J-Flash&#xff0c;选择指定的芯片之后&#xff0c;点击连接Target-Connect&…

【嵌入式】MCU(HC32F460)+SPI接口LCD液晶屏ILI9341 移植emWin记录2----移植emWin

一 emWin移植准备 完成了前一文点亮LCD屏之后&#xff0c;考虑到将要设计较为复杂的界面GUI&#xff0c;光用一些基本的绘图、显示字符接口不能满足要求&#xff0c;所以琢磨着再移植一套emWin&#xff0c;用来辅助设计GUI&#xff08;由emWin的用户手册中可以看到&#xff0c;…

【嵌入式】MCU(HC32F460)+SPI接口LCD液晶屏ILI9341 移植emWin记录1----点亮LCD屏

目录 一 SPI屏的接线 二 SPI屏驱动初始化 三 SPI屏点亮 四 附录 一 SPI屏的接线 SPI屏的特点在于接线简单&#xff0c;只需要四根SPI线以及几个GPIO口即可驱动工作&#xff0c;但是由于非并口的&#xff0c;所以当像素比比较大的时候&#xff0c;刷新速度可能会受到考验。我…