计算机网络知识复习

牛客面试复习官网上看的,仅为面试复习

1 请你说一下TCP怎么保证可靠性,并且简述以下TCP建立连接和断开连接的过程

TCP保证可靠性:
(1)序列号、确认应答、超时重传
数据到达接收方,接收方需要发出一个确认应答,表示已经收到该数据段,并且确认序号会说明了它下一次需要接受的数据序列号。如果发送方迟迟未收到确认应答,那么可能是发送的数据丢失,也可能是确认应答丢失,这时发送方在等待一定时间后会进行重传。这个时间一般是2RTT(报文段往返时间)+一个偏差值。
(2)窗口控制与告诉重发控制/快速重传(重复确认应答)
TCP会利用窗口控制来提高传输的速度,意思是在一个窗口大小内,不用一定要等到应答才能发送下一段数据,窗口大小就是无需等待确认而可以继续发送数据的最大值。如果不使用窗口控制,每一个没收到确认应答数据都要重发。
使用窗口控制,如果数据段1001-2000丢失,后面的数据每次传输,确认应答都会不停的发送序号为1001的应答,表示我要接受1001开始的数据,发送段如果收到3次相同应答,就会立刻进行重发;但还有种情况有可能数据都受到了,但是有的应答丢失了,这种情况不会进行重发,因为发送端知道,如果是数据段丢失,接受端不会放过它的,会疯狂的提醒。。。
(3)拥塞控制
如果把窗口定的很大,大宋段连续发送大量的数据,可能会造成网络的拥堵(大家都在用网,你在这狂发,吞吐量就这么大,当然会堵),甚至会造成网络的瘫痪。所以TCP在为了防止这种情况而进行了拥塞控制。
**慢启动:**定义拥塞窗口,一开始将该窗口大小设置为1,之后每次收到确认应答(经过一个RTT),将拥塞窗口大小
2。
**拥塞避免:**设置慢启动阈值,一般开始都设为65536。拥塞避免是指当拥塞窗口大小达到这个阈值,拥塞窗口的值不再指数上升,而是加法增加(每次确认应答/每个rtt,拥塞窗口大小+1),以此来避免拥塞。
将报文段的超时重传看做拥塞,则一旦发生超时重传,我们需要先将阈值设为当前窗口大小的一半,并且将窗口大小设为初值1,然后重新进入慢启动过程。
**快速重传:**在遇到3次重复确认应答(高速重发控制)时,代表收到了3个报文段,但是这之前的1个段丢失了,便对它进行立即重传。
然后,先将阈值设为当前窗口大小的一半,然后将拥塞窗口大小设为慢启动阈值+3的大小。
这样可以达到:在TCP通信时,网络吞吐量呈现逐渐的上升,并且随着拥堵来降低吞吐量,再进入慢慢上升的过程,网络不会轻易的发生瘫痪。

名词解释
SYN: (同步序列编号,Synchronize Sequence Numbers)
ACK: (确认编号,Acknowledgement Number)
FIN: (结束标志,FINish)

SYN_RCVD:received
在这里插入图片描述
三次握手

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

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

1.数据传输结束后,客户端的应用进程发出连接释放报文段,并停止发送数据,客户端进入FIN_WAIT_1状态,此时客户端依然可以接收服务器发送来的数据。

2.服务器接收到FIN后,发送一个ACK给客户端,确认序号为收到的序号+1,服务器进入CLOSE_WAIT状态。客户端收到后进入FIN_WAIT_2状态。

3.当服务器没有数据要发送时,服务器发送一个FIN报文,此时服务器进入LAST_ACK状态,等待客户端的确认

4.客户端收到服务器的FIN报文后,给服务器发送一个ACK报文,确认序列号为收到的序号+1。此时客户端进入TIME_WAIT状态,等待2MSL(MSL:报文段最大生存时间),然后关闭连接。

请你说一说TCP的模型,状态转移

四层TCP/IP模型如下:
在这里插入图片描述
其状态转移图如下L:
在这里插入图片描述

请回答以下HTTP和HTTPS的区别,以及HTTPS有什么缺点?

HRTTP协议和HRRTTPS协议区别如下:

  1. HTTP协议是以明文的方式在网络中传输数据,而HTTPS协议传输的数据则是经过**TLS(Transport Layer Security传输层安全协议)加密后的,HTTPS协议具有更高的安全性
    2)HTTPS在TCP三次握手阶段之后,还需要进行
    SSL(Secure Sockets Layer 安全套接层)**的handshake,协商加密使用的对称加密密钥
    3)HTTPS协议需要服务端申请证书,浏览器端安装对应的根证书
    4)HTTP协议端口是80,HTTPS协议端口是443
    HTTPS优点:
    HTTPS传输数据过程中使用密钥进行加密,所以安全性更高
    HTTPS协议可以认证用户和服务器,确保数据发送到正确的用户和服务器
    HTTPS缺点:
    HTTPS握手阶段延时较高:由于在进行HTTP会话之前还需要进行SSL握手,因此HTTPS协议握手阶段延时增加
    HTTPS部署成本高:一方面HTTPS协议需要使用证书来验证自身的安全性,所以需要购买AC证书;另一方面由于采用HTTPS协议需要进行加解密的计算,占用CPU资源较多,需要的服务器配置或数目高

请你说一说HTTP返回码

HTTP协议的响应报文由状态行、响应头部和响应包体组成,其响应状态码总体描述如下:
1XX:指示信息-表示请求接收,继续处理。
2XX:成功-表示请求已被成功接收、理解、接受.
3XX:重定向–要完成请求必须进行更进一步的操作。
4XX:客户端错误–请求有语法错误或请求无法实现。
5XX:服务器端错误–服务器未能实现合法的请求。
常见状态代码、状态描述详细说明如下。
200 OK:客户端请求成功。
206 partial content服务器已经正确处理部分GET请求,实现断点续传或同时分片下载,该请求必须包含Range请求头来指示客户端期望得到的范围。
300 multiple choices(可选重定向):被请求的资源有一系列可供选择的反馈信息,由浏览器/用户自行选择其中一个。
301 moved permanently(永久重定向):该资源已被永久移动到新位置,将来任何对该资源的访问都要使用本响应返回若干个**URI(URI:Uniform Resource Identifier,统一资源标识符)**之一。
302 move temporarily(临时重定向):请求的资源现在临时从不同的URI中获得,

304:not modified :如果客户端发送一个待条件的GET请求并且该请求以经被允许,而文档内容未被改变,则返回304,该响应不包含包体(即可直接使用缓存)。

403 Forbidden:服务器收到请求,但是拒绝提供服务。

t Found:请求资源不存在,举个例子:输入了错误的URL。

请你说一说IP地址作用,以及MAC地址作用

MAC(Media Access Control,介质访问控制)地址是一个硬件地址,用来定义网络设备的位置,主要由数据链路层负责。而IP地址是IP协议提供的一种统一的地址格式,为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。

请介绍以下操作系统中的中断

中断是指CPU对系统发生的某个事件做出的一种反应,CPU暂停正在执行的程序,保存现场后自动去执行相应的处理程序,处理完该事件后再返回中断处继续执行原来的程序。中断一般分为三类,一种是由CPU外部引起的,如I/O中断、时钟中断;一种是来自CPU内部时间或程序执行中引起的中断,例如程序非法操作,地址越界、浮点溢出;最后一种实=是在程序中使用了系统调用引起的。而中断处理一般分为中断响应和中断处理两个步骤,中断响应由硬件实施,中断处理主要由软件实施。

请回答OSI七层模型和TCP/IP四层模型,每层列举2个协议

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
TPDU:传输协议数据单元;
SPDU:会话协议数据单元;
PPDU:表示协议数据单元;
APDU:应用协议数据单元;

osi七层模型及包含的协议如下:
**物理层:**通过媒介传输比特,确定机械及电气规范,传输单位为bit,主要协议为IEE802.3 CLOCK RJ45
**数据链路层:**将比特组装成帧和点到点的传递,传输单位为帧,主要包括的协议为MAC VLAN(虚拟局域网, virtual LAN)) PPP(点对点协议PPP(Point-to-Point Protocol))
**网路层:**负责数据包从源到宿的传递和网络互连,传输单位为包,主要包括的协议为IP ARP(Address Resolution Protocol,地位解析协议) ICMP(Internet Control Message Protocol,Internet控制消息协议)
**传输层:**提供端到端的可靠报文传递和错误恢复,传输单位为报文,主要包括的协议为TCP(传输控制协议) UDP(用户数据报协议)
会话层:建立、管理和终止会话,传输单位为SPDU,主要包括的协议为RPC((Remote Procedure Call)远程过程调用) NFS((Network File System)即网络文件系统)
**表示层:**对数据进行翻译、加密和压缩,传输单位为PPDU,主要包括的协议为JPEG ASII
应用层: 允许访问OSI环境的手段,传输单位为APDU,主要包括的协议为FTP HTTP DNS

DNS(Domain Name System):域名解析协议,端口号:53;通过域名解析获得域名所对应的IP
FTP(File Transfer Protocol):文件传输协议,端口号:21;用户可通过客户机程序向远程主机上传文件;或从远程主机上下载文件。
HTTP(HyperText Transfer Protocol):超文本传输协议,端口号:80;最初设计HTTP是为了提供一种发布和接受HTML页面的方法。所有WWW文件都必须遵守这个标准。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值