计算机网络面试知识点

OSI与TCP/IP各层的结构和功能,都有哪些协议


应用层
应用层的任务是通过应用进程之间的交互来完成特定网络任务的应用。应用层协议定义的是应用进程之间的通信和交互的规则。应用层协议有域名系统DNS,HTTP协议,支持电子邮件的SMTP协议等、FTP、POP3。应用层交互的数据单元称为报文。
表示层
信息的语法语义,比如加密解密、转换翻译、压缩解压缩等。
回话层
不同机器上的用户之间建立和管理对话。
运输层
运输层的任务就是向两个进程之间的通信提供通用的数据传输服务。主要有TCP(面向连接,可靠的传输服务),UDP(无连接,不保证传输可靠性的服务)。接受上一层的数据,在必要的时候把数据进行分割,并把这些数据交给网络层,保证数据段有效到达。
网络层
在计算机网络中进行通信的两个计算机之间可能会经过很多个数据链路,通信子网。网络层的任务就是选择合适的网间路由和交换节点,确保数据的及时传送。发送数据时,网络层把传输层产生的报文段或者用户数据报封装成分组和包进行传输。在TCP/IP体系结构中,由于网络层使用IP协议,因此分组也叫IP数据报。控制子网的运行,比如分组传输、路由选择。
数据链路层
两台主机之间的数据传输,总是在一段一段的链路上传送的,这就需要专门的链路层协议。数据链路层将网络层交下来的IP数据报组装成帧,在两个相邻节点之间的链路上传送帧。
物理层
物理层的作用是实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传送介质和物理设备的差异。

TCP三次握手和四次挥手

什么是三次握手
客户端向服务器端发送带有SYN标志的数据包。
服务器端向客户端发送带有SYN/ACK标志的数据包。
客户端向服务器端发送带有ACK标志的数据包。
为什么要三次握手
主要是双方确认自己和对方的发送信息和接受是正常的。
第一次:客户端什么都不能确认;服务器端确认对方发送正常,自己接收正常。
第二次:客户端确认自己发送、接收正常,对方发送接收正常;服务器端确认对方发送正常,自己接收正常。
第三次:客户端确认自己发送、接收正常,对方发送接收正常;服务器端确认对方发送正常、接收正常,自己发送正常、接收正常。
第二次握手传回了ACK,为什么还要传回SYN
服务器端传回发送端ACK为了表明从客户端到服务器端的通信正常,回传SYN为了建立确认从服务器端到客户端的通信。
什么是四次挥手
客户端向服务器端发送一个FIN,来关闭客户端到服务器端的数据传送。
服务器收到FIN之后回一个ACK。
服务器端向客户端发送一个FIN,来关闭服务器端到客户端的数据传送。
客户端收到FIN之后回一个ACK,确认序号是收到序号加1。

TCP、UDP协议的区别

UDP在传送数据之前不需要先建立连接,远地主机在收到UDP报文之后不需要给出确认。UDP不提供可靠支付,但是在及时通信里很有效,比如:QQ语音、QQ视频等。
TCP在传输数据前要建立连接,传输后要释放连接。TCP提供可靠服务体现在,三次握手建立连接,在数据传递时,有确认、窗口、重传、拥塞控制机制,数据传完断连接。TCP一般用于文件传输、发送和接受邮件、远程登录等。

TCP怎么保证可靠传输

1.应用数据被分割成TCP认为最适合发送的数据块。
2.TCP给每一个发送的数据编号,接收方对数据排序,把有序数据传给应用层。
3.校验和:TCP将保持首部和数据的校验和。端到端的校验和为了检测数据在传输过程中的任何变化。如果收到的检验和有差错,TCP丢弃这个报文段和不确认收到此报文段。
4.TCP接收端丢弃重复收到的数据。
5.流量控制:TCP连接的每一方都有固定大小的缓冲空间,TCP接收端只允许发送端发送接收端缓存区能接纳的数据。当接收方来不及处理发送方的数据,提示发送方降低发送的速率,防止包的丢失。TCP使用的流量控制协议是可变大小的滑动窗口协议。
6.拥塞控制:网络拥塞时,减少数据的发送。
7.ARQ协议:为了实现可靠的传输,原理是每发完一个分组就停止发送,等待对方确认。收到确认后再发下一个分组。
8.超时重传:TCP发送一个数据后,启动一个定时器,等待目的端确认收到这个数据。如果不能及时收到一个确认,将重发这个报文段。
拥塞控制
拥塞控制的四种算法:
慢开始:拥塞窗口初始值为1,每经过一个传播轮次,拥塞窗口加倍。
拥塞避免:让拥塞窗口缓慢增大,每经过一个往返时间RTT就把发送方的拥塞窗口加1.
快重传与快恢复:在TCP/IP中,能快速恢复丢失的数据包。如果接收方接收到不按顺序的数据段,会给发送方发送一个重复确认。如果连续三次收到重复确认,假定确认件指出的得数据段丢失了,并立即重传这些丢失的数据段。

在浏览器中输入URL地址–显示主页的过程

1.浏览器查找域名的IP地址(DNS解析域名获取IP地址)。
2.浏览器向web服务器发送一个HTTP请求(先建立TCP连接)。
3.服务器处理请求并返回HTTP报文。
4.浏览器解析渲染页面。
5.连接结束。

状态码

1XX 信息状态码 接收的请求正在处理
2XX 成功状态码 请求正常处理完毕
3XX 重定向状态码 需要进行附加操作以完成请求
4XX 客户端错误状态码 服务器无法处理请求
5XX 服务器错误状态码 服务器处理请求出错

各种协议和HTTP协议之间的关系

1.客户端想要浏览一个web页面,查找域名的IP地址(DNS解析后得到IP地址)
2.HTTP协议生成针对目标web服务器的HTTP请求报文
3.TCP协议将HTTP请求报文分割成报文段,把每个报文段可靠的传给对方
4.IP协议搜索对方的地址,一边中转一边传送。
5.TCP协议接收报文段,按序号重组请求报文。
6.HTTP协议对web服务器请求的内容进行处理,结果通过TCP/IP协议进行回传。

HTTP长连接,短连接

HTTP/1.0短连接,每进行一次HTTP连接,就建立一次连接,任务中断就中断连接。
HTTP/1.0长连接,当一个网页打开完成后,客户端和服务器端用来传输数据的TCP连接不会关闭,客户端再次访问服务器时,会继续使用这一个连接。当然这个连接会有一个保持的时间。

HTTP是不保存状态的协议,怎么保存用户的状态?

session通过服务器端记录用户的状态。典型就是要添加商品到购物车的时候,系统不知道是哪个用户操作的,所以HTTP协议是无状态的。服务器给特定用户创建特定的session之后就可以标识这个用户并且跟踪这个用户了。大多时候通过在cookie中附加sessionID来跟踪。cookie被禁用的时候用URL重写把SessionID直接附加在URL路径后面。

cookie的作用是什么?和session有什么区别?

他们都是用来跟踪浏览器用户身份的会话方式,但是应用场景有所不同。
cookie一般用来保存用户信息。用户登录的时候存放了一个token在cookie中,下次登录的时候只需要根据token值来查找用户即可,登陆一次网站后访问网站其他页面不需要重新登录。
session通过服务器端记录用户的状态。通过给用户创建特定的session之后标识用户跟踪用户。

HTTP1.0和HTTP1.1的主要区别

1.1.0短连接,1.1长连接。
2.1.1新增错误响应状态码。
3.1.1引入更多缓存处理控制策略。
4.带宽优化及网络连接的使用:1.1允许只请求资源的某个部分。

URI和URL的区别

URI统一资源标识符,可以唯一标识一个资源。
URL统一资源定位符,可以标识一个资源还指明了资源的路径。

HTTP和HTTPS的区别?

端口:HTTP80,HTTPS443.
安全性和资源消耗:HTTP协议运行在TCP之上,所有传输的内容都是明文。HTTPS运行在SSL/TLS之上的HTTP协议,SSL/TLS运行在TCP之上。所有的内容都经过加密,加密采用对称加密而且对称加密的秘钥用服务器方的证书进行了非对称加密。所以HTTP安全性没有HTTPS高,但是HTTPS比HTTP消耗更多资源。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值