【九层之台,起于累土】搞定计算机网络面试

2024-03-18 22:30

本文主要是介绍【九层之台,起于累土】搞定计算机网络面试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

点赞再看,养成习惯,微信搜索【三更极客】关注这个混迹于互联网圈的技术人。

前言

在互联网公司中,不管是工作还是面试,计算机网络的知识都是必不可少的,计算机网络的知识不亚于语言基础,平常开发中还是经常要与网络打交道的。

知识点

需要掌握的知识点如下图⬇️,我会着重写一下几个必备知识点。

在这里插入图片描述

OSI七层网络模型

OSI模型,即开放式通信系统互联参考模型,是国际标准化组织提出的一个试图是各种计算机或者通信系统在世界范围内互联为网络的标准框架。整个模型分为七层,物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。

为什么要建立OSI呢?

建立七层模型主要的目的就是为了解决各种网络互连时所遇到的兼容性问题。

优点:
  • 将服务、接口和协议这三个概念明确分开来
  • 功能服务上,说明某一层为上一层提供一些什么功能
  • 接口上,说明上一层如何使用下层的服务
  • 协议上,涉及如何实现本层的服务

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DgY4t201-1589724917587)(/Users/huyida/Library/Application Support/typora-user-images/image-20200505132731915.png)]

TCP和UDP的区别

TCP

  1. 面向连接(如打电话要先拨号建立连接)
  2. 提供可靠的服务,通过TCP连接传送的数据,无差错,不丢失,不重复,且有序可达
  3. 面向字节流,实际上是TCP把数据看成一连串无结构的字节流
  4. 每一条TCP连接只能是点到点的
TCP优点

可靠,传递数据前,会有三次握手连接

TCP缺点

慢,效率低,占用系统资源高,易被攻击

UDP

  1. 无连接的,即发送数据之前不需要建立连接
  2. 尽最大努力交付,即不保证可靠交付
  3. 面向报文的
  4. 支持一对一,一对多,多对一和多对多的交互通信
  5. 不可靠信道
UDP优点

传递数据时非常快,没有TCP的握手

UDP的缺点

不可靠,不稳定,网络质量不好,就会很容易丢包

TCP三次握手

TCP提供可靠的连接服务,采用三次握手确认建立一个连接。

  • Sequence Number (seq)序列号码
  • Acknowledgment Number (ack)确认号码
  1. 第一次握手:客户端打开,发送连接请求报文段,将SYN标识位置为1,Seq置为x(TCP规定SYN=1时不能携带数据,x为随机产生的一个值),然后进入SYN_SEND状态。
  2. 第二次握手:服务器收到SYN报文段进行确认,将SYN标识位置为1,ACK置为1,Seq置为y,ACK在置为x+1,然后进入SYN_SEND状态,这个状态被称为半连接状态。
  3. 第三次握手:客户端再进行一次确认,将ACK置为1(此时不用SYN),Seq置为z,ACK置为y+1发向服务器,最后客户端与服务器都进入ESTABLISHED状态,完成三次握手,主机A与主机B开始传送数据。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ywO6cio0-1589724917588)(/Users/huyida/Library/Application Support/typora-user-images/image-20200505133859187.png)]

为什么TCP最后还要发送一次确认?

为了防止已经失效的连接请求报文段突然又传回到服务端而产生的错误的场景。

假设没有最后一次确认,客户端发出一个连接请求报文段并没有丢失,然后网络传输中滞留延迟到连接释放以后的时间才到达服务器,于是服务器又向客户端请求报文段,同意建立连接,但此时客户端并没有发出建立连接的请求,因此不理会服务器的确认,也不向服务器发送数据,而服务器以为连接已经建立,苦苦等待客户端的数据,这样服务器的许多资源就白白浪费了。

TCP四次挥手

TCP三次握手时建立连接的过程,TCP四次挥手则是连接释放的过程,当客户端没有数据再需要发送给服务端时,就需要释放客户端的连接。

  1. 客户端发送一个报文给服务器(没有数据),其中FIN设置为1,Seq置为x,客户端进入FIN_WAIT状态。
  2. 服务器收到客户端请求,发送一个ACK给客户端,ACK为x+1,同时发送Seq为z,服务器进入CLOSE_WAIT状态。
  3. 服务器发送一个FIN给客户端,Seq为y,Ack为x,用来关闭服务器到客户端的数据传送,服务端进入LASR_ACK状态。
  4. 客户端收到FIN后,进入TIME_WAIT状态,接着发送一个ACK给服务端,ACK置为y,Seq为x,最后客户端和服务端都进入CLOSED状态。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UgUlXJiF-1589724917590)(/Users/huyida/Library/Application Support/typora-user-images/image-20200505135501956.png)]

HTTP和HTTPS的区别

  1. HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息是非常不安全的。
  2. HTTPS协议是有SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比HTTP协议安全。

访问HTTPS流程

1.请求

客户使用https的url访问Web服务,要求与web服务器建立SSL连接。

2.公钥返回

Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送给客户端。

3.加密

使用公钥加密。

4.发送

发送加密后的信息。

5.验证

Web服务器利用自己的私钥解密出会话密钥。

总结

以上讲了OSI七层网络模型,TCP和UDP区别与优缺点,三次握手与四次挥手流程,HTTP和HTTPS,更多深入知识还需要自己不断深入,保持不断学习。

这篇关于【九层之台,起于累土】搞定计算机网络面试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/823876

相关文章

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分

MySQL数据库宕机,启动不起来,教你一招搞定!

作者介绍:老苏,10余年DBA工作运维经验,擅长Oracle、MySQL、PG、Mongodb数据库运维(如安装迁移,性能优化、故障应急处理等)公众号:老苏畅谈运维欢迎关注本人公众号,更多精彩与您分享。 MySQL数据库宕机,数据页损坏问题,启动不起来,该如何排查和解决,本文将为你说明具体的排查过程。 查看MySQL error日志 查看 MySQL error日志,排查哪个表(表空间

秋招最新大模型算法面试,熬夜都要肝完它

💥大家在面试大模型LLM这个板块的时候,不知道面试完会不会复盘、总结,做笔记的习惯,这份大模型算法岗面试八股笔记也帮助不少人拿到过offer ✨对于面试大模型算法工程师会有一定的帮助,都附有完整答案,熬夜也要看完,祝大家一臂之力 这份《大模型算法工程师面试题》已经上传CSDN,还有完整版的大模型 AI 学习资料,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

java面试常见问题之Hibernate总结

1  Hibernate的检索方式 Ø  导航对象图检索(根据已经加载的对象,导航到其他对象。) Ø  OID检索(按照对象的OID来检索对象。) Ø  HQL检索(使用面向对象的HQL查询语言。) Ø  QBC检索(使用QBC(Qurey By Criteria)API来检索对象。 QBC/QBE离线/在线) Ø  本地SQL检索(使用本地数据库的SQL查询语句。) 包括Hibern

分享5款免费录屏的工具,搞定网课不怕错过!

虽然现在学生们不怎么上网课, 但是对于上班族或者是没有办法到学校参加课程的人来说,网课还是很重要的,今天,我就来跟大家分享一下我用过的几款录屏软件=,看看它们在录制网课时的表现如何。 福昕录屏大师 网址:https://www.foxitsoftware.cn/REC/ 这款软件给我的第一印象就是界面简洁,操作起来很直观。它支持全屏录制,也支持区域录制,这对于我这种需要同时录制PPT和老师讲

计算机网络基础概念 交换机、路由器、网关、TBOX

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、VLAN是什么?二 、交换机三、路由器四、网关五、TBOXTelematics BOX,简称车载T-BOX,车联网系统包含四部分,主机、车载T-BOX、手机APP及后台系统。主机主要用于车内的影音娱乐,以及车辆信息显示;车载T-BOX主要用于和后台系统/手机APP通信,实现手机APP的车辆信息显示与控

贝壳面试:什么是回表?什么是索引下推?

尼恩说在前面 在40岁老架构师 尼恩的读者交流群(50+)中,最近有小伙伴拿到了一线互联网企业如得物、阿里、滴滴、极兔、有赞、希音、百度、网易、美团的面试资格,遇到很多很重要的面试题: 1.谈谈你对MySQL 索引下推 的认识? 2.在MySQL中,索引下推 是如何实现的?请简述其工作原理。 3、说说什么是 回表,什么是 索引下推 ? 最近有小伙伴在面试 贝壳、soul,又遇到了相关的

毕业前第二次面试的感慨

距面试已经过去了有几天了,我现在想起来都有说多的恨感慨。 我一直都是想找刚刚起步的企业,因为这能让我学到更多的东西,然而正好有一家企业是刚起步的,而且他还有自己的产品专利,可以说这是一家,即是创业又是刚起步的公司,这家公司回复了我投给他的简历,这家企业想进一步了解我的情况,因为简历上我符合这家企业的基本要求,所以要进一步了解。 虽然面试的过程中,他给我的面试题,我做得并不是很理想,

CCF推荐C类会议和期刊总结(计算机网络领域)

CCF推荐C类会议和期刊总结(计算机网络领域) 在计算机网络领域,中国计算机学会(CCF)推荐的C类会议和期刊为研究者提供了广泛的学术交流平台。以下是对所有C类会议和期刊的总结,包括全称、出版社、dblp文献网址以及所属领域。 目录 CCF推荐C类会议和期刊总结(计算机网络领域) C类期刊 1. Ad Hoc Networks 2. CC 3. TNSM 4. IET Com

腾讯社招面试经历

前提:本人2011年毕业于一个普通本科,工作不到2年。   15号晚上7点多,正在炒菜做饭,腾讯忽然打电话来问我对他们的Linux C++的职位是否感兴趣,我表达了我感兴趣之后,就开始了一段简短的电话面试,电话面试主要内容:C++和TCP socket通信的一些基础知识。之后就问我一道算法题:10亿个整数,随机生成,可重复,求最大的前1万个。当时我一下子就蒙了,没反应过来,何况我还正在烧