计算机知识面广,计算机基础知识面经

排序

(1)快速排序:快速排序是由冒泡排序改进的,冒泡排序过程中,只对相邻的两个记录进行比较,因此每次交换两个相邻记录时只能消除一个逆序.快速排序是通过两个不相邻记录的一次交换消除多个逆序,提高排序速度.

时间复杂度分析:从快速排序算法的递归树可知,快速排序的趟数取决于递归树的深度.最好情况下:每一趟排序后都能将记录序列均匀的分割成两个长度大致相等的子表时间复杂度为O(nlogn).最坏情况下:在待排序序列已经排好序           的情况下,其递归树成为单支树.时间复杂度为O(n^2/2)

空间复杂度:快速排序是递归的,执行时需要一个栈来存放相应的数据,最大递归调用次数与递归树的深度一致,故最好情况的空间复杂度为O(logn),最坏情况为O(n);

算法特点:记录的非顺次的移动导致排序方法不稳定.

排序过程中需要定位表的上阶和下界,所以适合用于顺序结构,很难用于链式结构.

适合用于初始记录无序,n较大的情况.

计算机网络

层次结构:

6ecad18d861fedc8a3f7a6fd9bd061bd.png

以五层结构为例:应用层,传输层(运输层),网络层,数据链路层,物理层

1.物理层:通过光纤和电缆以及双绞线等物体将计算机连接。然后才能进行通信在计算机之间传输0,1这样的电信号.

2.数据链路层:工作在物理层之上,负责给这些0,1制定传送的规则,然后另一方再按照相应的规则来进行解读。负责分配MAC地址

以太网协议:以太网协议规定,一组电信号构成一个数据包,把这个数据包称之为“桢”。每一个桢由标头(Head)和数据(Data)两部分组成,桢的最大长度是1518个字节,最小长度为64字节。假如需要传送的数据很大的               话,就分成多个桢来进行传送。

MAC地址:连入网络的每一个计算机都会有网卡接口,每一个网卡都会一个地址,这个地址就叫做MAC地址。计算机之间的数据传送,就是通过MAC地址来唯一寻找、传送的。

ARP协议:通过它我们可以知道子网中其他计算机的MAC地址。

3.网络层:实际上我们所处的网络,是由无数个子网络构成的。广播的时候,也只有同一个子网里面的计算机能够收到。 假如没有子网这种划分的话,计算机A发一个数据包给计算机B,其他所有计算机也都能收到这个数据包,然后进行对比再舍弃。世界上有那么多它计算机,每一台计算机都能收到其他所有计算机的数据包,那就不得了了。如何区分哪些MAC地址是属于同一个子网的呢?假如是同一个子网,那我们就用广播的形式把数据传送给对方,如果不是同一个子网的,我们就会把数据发给网关,让网关进行转发。为了解决这个问题我们引入了一套新的地址协议(IP协议),这个地址协议能够帮助我们区分MAC地址是否处于同一个子网中。这也是网络层负责解决的问题。

4.传输层:计算机A已经可以发送数据到计算机B中了,但是计算机B里面有多种多样的程序应用,此时通过指定端口Port供特定的应用程序来接受处理.传输层的功能就是建立端口到端口的通信。相比网络层的功能是建立主机到主机的通信。传输层最常见的两大协议是 TCP 协议和 UDP 协议,其中 TCP 协议与 UDP 最大的不同就是 TCP 提供可靠的传输,而 UDP 提供的是不可靠传输。

5.应用层:传过来的数据格式不同,而应用层的功能,就是用来规定应用程序的数据格式的.

协议有:HTTP、SMTP、FTP、ping、telnet、DNS、DHCP等

HTTP的状态码有哪些:

(1):200 请求成功

4开头表示客户端错误

(2):400请求有语法错误,不能被服务器所理解;

(3):404请求资源不存在

5开头表示服务器端错误

(4):500服务器发生不可预期的错误;

(5):503服务器不能处理客户请求

HTTP的长连接和短短连接:

HTTP协议是基于请求/响应模式的,因此只要服务端给了响应,本次HTTP连接就结束了,或者更准确的说,是本次HTTP请求就结束了,所谓的HTTP连接本质上是TCP的连接。TCP连接是可以保持一段时间不中断的就是长连接,发起一次请求后就主动断开的就是短连接,所以就有了长连接和短连接一说。

若没有长连接TCP连接将会越来越多,直到把服务器的TCP连接数量撑爆到上限为止,长连接为了节省连接而重复利用

TCP与UDP:

TCP:(1)面向连接的,每条TCP连接只能由两个端点,一对一通信;

(2)提供可靠的交付服务,传输数据无差错,不丢失,不重复,且按时序到达

(3)面向字节流,TCP根据对方给出的窗口和当前的网络拥塞程度决定一个报文应该包含多少个字节

UDP:(1)无连接,UDP使用尽最大努力交付,不保证可靠性UDP是面向报文的

(2)UDP支持一对一,一对多,多对一和多对多的交互通信。

(3)应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文;

TCP协议需要三次握手通信成功后进行建立,应用场景:互联网和企业网上客户端应用,数据传输性能让位于数据传输的完整性,可控制性和可靠性。

UDP协议是直接发送,不会判断是否接收和发送成功,应用场景:当强调输出性能而非完整性时,如音频和多媒体的应用。

URL与URI的区别:

URI:通一资源标志符(Universal Resource Identifier, URI),表示是一个网络资源,如 HTML文档、图像、视频片段、程序等都由一个URI进行定位的。

组成部分:访问资源的命名机制,存放资源的主机名,资源自身的名称

URL:是Uniform Resource Locator,表示是一个地址,URL是URI的子集,所有的URL都是URI,但不是每个URI都是URL,还有可能是URN

URN:统一资源名称 (Uniform Resource Name, URN),是URI两种形式之一。唯一标识一个实体的标识符,但是不能给出实体的位置

从输入URL到展示网页全过程:

(1)输入网址:缓存解析 浏览器获取了这个url,当然就去解析了,它先去缓存当中看看有没有,从 浏览器缓存-系统缓存-路由器缓存 当中查看,如果有从缓存当中显示页面,否则进行下一步.

(2)DNS解析:在发送http请求前,需要域名解析(DNS解析),解析获取相应的IP地址.

(3)浏览器向服务器发起tcp连接,与浏览器建立tcp三次握手。

(4)握手成功后,浏览器向服务器发送http请求,请求数据包。

(5)服务器处理收到的请求,将数据返回至浏览器

(6)浏览器收到HTTP响应,读取页面内容,浏览器渲染,解析html源码

TCP三次握手过程:

step1:建立连接时,客户端发送SYN包到服务器,其中包含客户端的初始序号seq=x,并进入SYN_SENT状态,等待服务器确认。(其中,SYN=1,ACK=0,表示这是一个TCP连接请求数据报文;序号seq=x,表明传输数据时的第一个数据字节的序号是x)。

step2:服务器收到请求后,必须确认客户的数据包。同时自己也发送一个SYN包,即SYN+ACK包,此时服务器进入SYN_RECV状态。(其中确认报文段中,标识位SYN=1,ACK=1,表示这是一个TCP连接响应数据报文,并含服务端的初始序号seq(服务器)=y,以及服务器对客户端初始序号的确认号ack(服务器)=seq(客户端)+1=x+1)。

第三步:客户端收到服务器的SYN+ACK包,向服务器发送一个序列号(seq=x+1),确认号为ack(客户端)=y+1,Server检查ack是否为x+1,ACK是否为1,如果正确则连接建立成功,完成三次握手.

总结:第三次握手是为了防止:如果客户端迟迟没有收到服务器返回确认报文,这时会放弃连接,重新启动一条连接请求,但问题是:服务器不知道客户端没有收到,所以他会收到两个连接,浪费连接开销。如果每次都是这样,就会浪费多个连接开销。

四次挥手过程:

所谓四次挥手(Four-Way Wavehand)即终止TCP连接,就是指断开一个TCP连接时,需要客户端和服务端总共发送4个包以确认连接的断开。

0b75c87373f6919ca7451ee3d8ee42ea.png

由于TCP连接时全双工的,因此,每个方向都必须要单独进行关闭,这一原则是当一方完成数据发送任务后,发送一个FIN来终止这一方向的连接,收到一个FIN只是意味着这一方向上没有数据流动了,即不会再收到数据了,但是在这个TCP连接上仍然能够发送数据,直到这一方向也发送了FIN。首先进行关闭的一方将执行主动关闭,而另一方则执行被动关闭,上图描述的即是如此。

(1)第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。

(2)第二次挥手:Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),Server进入CLOSE_WAIT状态。

(3)第三次挥手:Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态。

(4)第四次挥手:Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,Server进入CLOSED状态,完成四次挥手。

标签:UDP,计算机,基础,TCP,发送,服务器,知识面,连接,客户端

来源: https://www.cnblogs.com/hdc520/p/11447536.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值