计算机网络常见面试题总结

news2024/11/25 19:30:11

网络分层结构

计算机网络体系大致分为三种,OSI七层模型、TCP/IP四层模型和五层模型。一般面试的时候考察比较多的是五层模型。

TCP/IP五层模型:应用层、传输层、网络层、数据链路层、物理层。

  • 应用层:为应用程序提供交互服务。在互联网中的应用层协议很多,如域名系统DNS、HTTP协议、SMTP协议等。
  • 传输层:负责向两台主机进程之间的通信提供数据传输服务。传输层的协议主要有传输控制协议TCP和用户数据协议UDP。
  • 网络层:选择合适的路由和交换结点,确保数据及时传送。主要包括IP协议。
  • 数据链路层:在两个相邻节点之间传送数据时,数据链路层将网络层交下来的 IP 数据报组装成帧,在两个相邻节点间的链路上传送帧。
  • 物理层:实现相邻节点间比特流的透明传输,尽可能屏蔽传输介质和物理设备的差异。

TCP有哪些特点?

  • TCP是面向连接的传输层协议。
  • 每一条TCP连接只能有两个端点。
  • TCP提供可靠交付的服务。
  • TCP提供全双工通信
  • 面向字节流

TCP和UDP的区别?

  1. TCP面向连接;UDP是无连接的,即发送数据之前不需要建立连接。
  2. TCP提供可靠的服务;UDP不保证可靠交付。
  3. TCP面向字节流,把数据看成一连串无结构的字节流;UDP是面向报文的。
  4. TCP有拥塞控制;UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如实时视频会议等)。
  5. 每一条TCP连接只能是一对一的;UDP支持一对一、一对多、多对一和多对多的通信方式。
  6. TCP首部开销20字节;UDP的首部开销小,只有8个字节。

HTTP协议的特点?

  1. HTTP允许传输任意类型的数据。传输的类型由Content-Type加以标记。
  2. 无状态。对于客户端每次发送的请求,服务器都认为是一个新的请求,上一次会话和下一次会话之间没有联系。
  3. 支持客户端/服务器模式

HTTP报文格式

HTTP请求由请求行、请求头部、空行和请求体四个部分组成。

  • 请求行:包括请求方法,访问的资源URL,使用的HTTP版本。GETPOST是最常见的HTTP方法,除此以外还包括DELETE、HEAD、OPTIONS、PUT、TRACE
  • 请求头:格式为“属性名:属性值”,服务端根据请求头获取客户端的信息,主要有cookie、host、connection、accept-language、accept-encoding、user-agent
  • 请求体:用户的请求数据如用户名,密码等。

HTTP响应也由四个部分组成,分别是:状态行、响应头、空行和响应体

  • 状态行:协议版本,状态码及状态描述。
  • 响应头:响应头字段主要有connection、content-type、content-encoding、content-length、set-cookie、Last-Modified,、Cache-Control、Expires
  • 响应体:服务器返回给客户端的内容。

POST和GET的区别?

  • GET请求参数通过URL传递,POST的参数放在请求体中。
  • GET产生一个TCP数据包;POST产生两个TCP数据包。对于GET方式的请求,浏览器会把请求头和请求体一并发送出去;而对于POST,浏览器先发送请求头,服务器响应100 continue,浏览器再发送请求体。
  • GET请求会被浏览器主动缓存,而POST不会,除非手动设置。
  • GET请求只能进行url编码,而POST支持多种编码方式。
  • GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。

HTTP长连接和短连接?

HTTP1.0默认使用的是短连接。浏览器和服务器每进行一次HTTP操作,就建立一次连接,任务结束就中断连接。

HTTP/1.1起,默认使用长连接。要使用长连接,客户端和服务器的HTTP首部的Connection都要设置为keep-alive,才能支持长连接。

HTTP长连接,指的是复用TCP连接。多个HTTP请求可以复用同一个TCP连接,这就节省了TCP连接建立和断开的消耗。

DNS 的解析过程?

  1. 浏览器搜索自己的DNS缓存
  2. 若没有,则搜索操作系统中的DNS缓存和hosts文件
  3. 若没有,则操作系统将域名发送至本地域名服务器,本地域名服务器查询自己的DNS缓存,查找成功则返回结果,否则依次向根域名服务器、顶级域名服务器、权威域名服务器发起查询请求,最终返回IP地址给本地域名服务器
  4. 本地域名服务器将得到的IP地址返回给操作系统,同时自己也将IP地址缓存起来
  5. 操作系统将 IP 地址返回给浏览器,同时自己也将IP地址缓存起来
  6. 浏览器得到域名对应的IP地址

Cookie和Session的区别?

  • 作用范围不同,Cookie 保存在客户端,Session 保存在服务器端。
  • 有效期不同,Cookie 可设置为长时间保持,比如我们经常使用的默认登录功能,Session 一般失效时间较短,客户端关闭或者 Session 超时都会失效。
  • 隐私策略不同,Cookie 存储在客户端,容易被窃取;Session 存储在服务端,安全性相对 Cookie 要好一些。
  • 存储大小不同, 单个 Cookie 保存的数据不能超过 4K;对于 Session 来说存储没有上限,但出于对服务器的性能考虑,Session 内不要存放过多的数据,并且需要设置 Session 删除机制。

了解网络编程协议吗?客户端发送给服务器的请求,怎么确定具体的协议?

了解,客户端发送给服务器端的请求,可以根据统一资源定位系统(uniform resource locator,URL)来确定具体使用的协议。

补充

一个完整的URL包括–协议部分、网址、文件地址部分。协议部分以//为分隔符,在interner中,我们可以使用多种协议:

HTTP——HyperText Transfer Protocol(超文本传输协议)

FTP——File Transfer Protocol(文件传输协议)

Gopher——The Internet Gopher Protocol(网际Gopher协议)

File——本地文件传输协议

HTTPS——安全套接字层超文本传输协议(http的安全版)

例如百度网址:https://baidu.com,可以看出使用的是https协议。

IP协议包含哪些字段?

IP所包含字段结构图如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lNPVnJ8D-1676378262071)(img/BD33841E8034815033F8177D23000A45.png
)]

IP协议包含字段如下:

​ **4位版本号:**指定IP协议的版本,对于IPv4来说就是4

​ **4位头部长度:**IP头部长度有多少个4字节,所以头部最大长度就是15*4=60字节

​ **8位服务类型:**3位优先权(已弃用),4位TOS字段,1位保留字段(必须设置为0)。4为TOS为:最小延时,最大吞吐量,最高可靠性,最小成本,这四个只能选择一个

​ **16位总长度:**IP数据报整体占多少字节

​ **16为标识:**唯一的标识主机发送的报文,IP报文在数据链路层被分片,那么每一个片中的标识都是相同的

​ **3位标志字段:**第一位保留,第二位置1表示进制分片(报文长度超过MTU,丢弃报文),第三位更多分片,最后一个分片是1,其他是0

​ **13位分片偏移:**相对于原始IP报文开始处的偏移

​ **8位生存时间:**数据报到达目的地的最大报文跳数,每经过一个路由,TTL-=1,一直到0都没有到达目的地,报文丢弃。

8位协议:表示上层协议类型,把IP交给TCP还是UDP,其中ICMP是1,TCP是6,UDP是17

​ **16位头部校验和:**使用CRC校验,鉴别头部是否损坏

​ **32位源地址和32位目标地址:**表示发送端和接收端

应用层都包含什么协议?

应用层包含的协议有DNS、FTP、SMTP、HTTP、SNMP、Telnet等,其作用分别如下:

  1. 域名系统(Domain Name System,DNS):用于实现网络设备名字到IP地址映射的网络服务。
  2. 文件传输协议(File Transfer Protocol,FTP):用于实现交互式文件传输功能。
  3. 简单邮件传送协议(Simple Mail Transfer Protocol, SMTP):用于实现电子邮箱传送功能。
  4. 超文本传输协议(HyperText Transfer Protocol,HTTP):用于实现WWW服务。
  5. 简单网络管理协议(simple Network Management Protocol,SNMP):用于管理与监视网络设备。
  6. 远程登录协议(Telnet):用于实现远程登录功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/346060.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一、产品经理——【岗位和能力要求】【项目流程】【产品体验报告】

0. 产品经理课程路线图 产品基础阶段:核心目的是了解行业、掌握技能 1. 认识互联网行业 1.1. 传统行业 vs 互联网行业 1.2. 互联网行业概念 1.3. 小结 2. 认识产品经理 2.1. 不同场景下的产品经理的职责差异 公司团队、领导对产品经理的期望不同,做的…

交叉编译的概念及交叉编译工具的安装

目录 一.什么是交叉编译 二.为什么要交叉编译? 三.交叉编译链的安装 四.相关使用方法 五.软连接 一.什么是交叉编译 交叉编译是指将一种编程语言编写的程序编译成另一种编程语言的程序,通常是在不同的操作系统或硬件环境中使用的。这种编译过程会产…

【手写 Vuex 源码】第十一篇 - Vuex 插件的开发

一,前言 上一篇,主要介绍了 Vuex-namespaced 命名空间的实现,主要涉及以下几个点: 命名空间的介绍和使用;命名空间的逻辑分析与代码实现;命名空间核心流程梳理; 本篇,继续介绍 Vu…

GWAS:mtag (Multi-Trait Analysis of GWAS) 分析

mtag (Multi-Trait Analysis of GWAS)作用:通过对多个表型相似的GWAS summary结果进行联合分析,发现更多的表型相关基因座。 以抑郁症状、神经质和主观幸福感这三个表型为例,分别对他们进行GWAS分析,鉴定得到32、9 和 13个基因座与…

前端食堂技术周刊第 70 期:Volar 的新开端、Lighthouse 10、良好的组件设计、React 纪录片、2022 大前端总结

美味值:🌟🌟🌟🌟🌟 口味:黑巧克力 食堂技术周刊仓库地址:https://github.com/Geekhyt/weekly 本期摘要 Volar 的新开端Chrome 110 的新功能Lighthouse 10Nuxt v3.2.0加速 JavaSc…

【github】解决超限制文件上传失败问题

之前因为push的一堆文件中有个104MB的大文件在里面,导致push一直失败一直失败超时又报错 一开始我还以为是VPN的问题,搞了好久都没解决 后来一步一步回撤发现是因为卡在了我那个104MB的文件这里 查阅了github的官方文档 关于 GitHub 上的大文件 - Git…

【计算机网络期末复习】第五章 传输层

✍个人博客:https://blog.csdn.net/Newin2020?spm1011.2415.3001.5343 📣专栏定位:为想复习学校计算机网络课程的同学提供重点大纲,帮助大家渡过期末考~ 📚专栏地址: ❤️如果有收获的话,欢迎点…

运动蓝牙耳机怎么选、最适合运动的蓝牙耳机推荐

很多人喜欢跑步时听歌来放松心情起到解压效果。但一般的无线蓝牙耳机很容易脱落丢失,甚至因为防水效果太菜导致耳机进水,很容易就损坏耳机了,加上运动出汗给耳腔带来的黏腻感与长期佩戴引发的疼痛感,这时一款好的运动设备就显得尤…

基于ISO13400 (DoIP) 实现车辆刷写

近年来,在整车研发中基于以太网实现车辆高带宽通讯无疑是人们热议的话题。无论是车内基于车载以太网减少线束成本,实现ADAS、信息娱乐系统等技术,还是基于新的电子电气架构以及远程诊断需求,实现以太网诊断(DoIP&#…

prepend和append同时使用的时候,prepend中的内容不显示

前几天做项目的时候,遇到一个需求,需要做一个类似于下面的样式: 当我看完element的时候,自信满满,这不就是prepend和append嘛,简单!!!此时的我不会想到后续经历的坎坷。 …

手语检测识别

论文:Real-Time Sign Language Detection using Human Pose Estimation Github:https://github.com/google-research/google-research/tree/master/sign_language_detection SLRTP 2020 手语识别任务包括手语检测(Sign language detection&a…

蓝桥杯C/C++VIP试题每日一练之回形取数

💛作者主页:静Yu 🧡简介:CSDN全栈优质创作者、华为云享专家、阿里云社区博客专家,前端知识交流社区创建者 💛社区地址:前端知识交流社区 🧡博主的个人博客:静Yu的个人博客 🧡博主的个人笔记本:前端面试题 个人笔记本只记录前端领域的面试题目,项目总结,面试技…

以掘金示例,利用内链/外链进行网站SEO优化

前言 内链:从自己网站的一个页面指向另外一个页面。通过内链让网站内部形成网状结构,让蜘蛛的广度和深度达到最大化。 外链:在别的网站导入自己网站的链接。通过外链提升网站权重,提高网站流量。 一般来说,内链和外链…

JVM类加载机制

回到2018年的抖音哈哈. 回顾下: java开发环境: java编译运行过程: 1) 编译期:.java源文件,经过编译,生成.class字节码文件 2) 运行期:JVM加载.class并运行.class(0和1) 特点: 跨平台、一次编程,处处报错 名词解释: 1…

线上商超博弈:老将固守,抖音掀浪

配图来自Canva可画 2023年,抖音对本地生活服务的野心愈加膨胀了。 近日,关于“抖音将于3月1日上线全国外卖服务”的消息传得沸沸扬扬。虽然抖音官方出面回应“团购配送”项目在北京、上海、成都等城市试点中,目前暂无具体时间表,…

api是什么意思?又该如何使用呢?

一、应用程序编程接口 API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。 API全称 "…

kkfileview从Git拉取代码编译部署到服务器

今天遇到了需求是,使用kkfileview预览的时候自带的页面嵌套后页面显示的不是很友好,然后就配合前端下载了源码,本地测试运行很完美,但是部署到服务器(centos8)上安装openOffice环境坑死了 1、从gitee拉取代…

计算机网络 - 1. 体系结构

目录概念、功能、组成、分类概念功能组成分类分层结构概念总结OSI 七层模型应用层表示层会话层传输层网络层数据链路层物理层TCP/IP 四层模型OSI 与 TCP/IP 相同点OSI 与 TCP/IP 不同点为什么 TCP/IP 去除了表示层和会话层五层参考模型概念、功能、组成、分类 概念 &#x1f…

kail工具的使用--- cewl

1.介绍 Cewl是一款采用Ruby开发的应用程序,可以给他的爬虫指定URL地址和爬取深度,还可以添加外部链接,接下来Cewl会给你返回一个字典文件,你可以把字典用到类似John the Ripper这样的密码破解工具中。 2.使用 输入以下命令之后…

Python 处理Excel内的数据

(一)案例一介绍 现在有一匹电商产品跟当日销量的数据,如下,总共有上万笔的数据,现在需要统计每个品牌当日的销售量,比如美宝莲今天总共卖出了多少的商品,另外需要统计每个品牌下面的每个子品类…