0. 写在前面

总导航在此

这些问题是我备考计算机网络过程中,详细总结的常见面试问题和答案。逐个搜索并记录下来,花了很大的精力!

目录

  • 0. 写在前面
  • 1. TCP和UDP的区别
  • 2. OSI七层模型
  • 3. IPV4和IPV6的区别
  • 4. HTTP get和post的区别
  • 5. HTTP和HTTPS的区别
  • 6. 为什么TCP三次握手,不是两次
  • 7. 为什么TCP四次挥手,不是三次
  • 8. 距离矢量和链路状态的区别
  • 9. 什么时候用到了分组/组装技术?

1. TCP和UDP的区别

1、udp是无连接的,tcp是面向连接的
2、udp是不可靠传输,tcp是可靠传输
3、udp是面向报文传输,tcp是面向字节流传输

2. OSI七层模型

应用层

各种应用程序和网络之间的接口,例如谷歌,火狐。这些应用不驻留于应用层,但是它们使用应用层的各种网络协议

表示层

表示层从应用层接收数据。这些数据是以字符和数字的形式出现的,表示层将这些数据转换成为机器可以理解的二进制格式,功能有翻译、压缩、加密解密

会话层

向两个实体的表示层提供建立和使用连接的方法。将不同实体之间的表示层的连接称为会话。因此会话层的任务就是组织和协调两个会话进程之间的通信,并对数据交换进行管理

运输层

完成端口到端口之间的通信,传输层涉及到分段、流量控制、差错控制、面向连接和无连接传输(TCP和UDP)

网络层

完成主机到主机之间的通信,分为数据平面和控制平面,完成转发和路由的功能

链路层

完成相邻节点之间的通信,将网络层传来的IP数据报组装成帧,为网络层提供服务

物理层

在媒体上传输比特

3. IPV4和IPV6的区别

  1. IPv6将地址从32位(4B)扩大到128位(16B),更大的地址空间。

  2. IPv6将IPv4的效验和字段彻底删除,以减小每跳的处理时间。

  3. IPv6支持即插即用(即自动配置),不需要DHCP协议。

  4. IPv6首部长度必须是8B的整数倍,IPv4首部是4B的整数倍。

  5. IPv6将IPv4的可选字段移出首部,变成了扩展首部,成为灵活的首部格式,路由器通常不对扩展首部进行检查,大大提高了路由器的处理效率。

  6. IPv6取消了总长度字段,改用有效载荷长度字段。

  7. IPv6只能在主机处分片,IPv4可以在路由器和主机处分片。

  8. IPv6取消了协议字段,改成下一个首部字段。

4. HTTP get和post的区别

get post
参数放置位置 url里面 请求头里面
安全性
长度限制 2048字符 无限制
被浏览器缓存 有缓存 无缓冲
浏览器访问 可以,支持刷新和回退 不可以

5. HTTP和HTTPS的区别

由来:https解决了http的传输的安全问题,因为http传输的是明文,简单来说https=http+ssl进行加密传输,https是身份认证的网络协议

https两个作用:1.建立信息安全通道 2.网站的真实性

http https
证书 不需要 需要ca证书,需要费用
信息传输方式 明文 密文
连接方式 80端口 443端口

6. 为什么TCP三次握手,不是两次

其实这是由TCP的自身特点可靠传输决定的。客户端和服务端要进行可靠传输,那么就需要确认双方接收和发送能力,不然容易出现丢包的现象

  • 第一次握手: 可以确认客服端的发送能力
  • 第二次握手: 可以确认服务端的接收能力 和 发送能力
  • 第三次握手: 可以确认客户端的接收能力。

如客户端发出连接请求,但因连接请求报文丢失而未收到确认,于是客户端再重传一次连接请求。后来收到了确认,建立了连接。数据传输完毕后,就释放了连接,客户端共发出了两个连接请求报文段,其中第一个丢失,第二个到达了服务端,但是第一个丢失的报文段只是在某些网络结点长时间滞留了,延误到连接释放以后的某个时间才到达服务端,此时服务端误认为客户端又发出一次新的连接请求,于是就向客户端发出确认报文段,同意建立连接,不采用三次握手,只要服务端发出确认,就建立新的连接了,此时客户端忽略服务端发来的确认,也不发送数据,则服务端一致等待客户端发送数据,浪费资源。

7. 为什么TCP四次挥手,不是三次

这个因为第一次挥手表示客户端发送了一个fin的包,表示客户端已发送数据完毕,但是服务端这个时候可能还有数据没有发送完成,先发送给客户端一个ask的包,等待自己的数据发送完成才能向客户端发送一个 fin的包,表示自己的数据也已发送完成。这样中间就必须为两次来发送ask和fin。

8. 距离矢量和链路状态的区别

距离矢量算法就是通过自己到相邻节点之间的信息来计算出自己到目的地址的最佳出境线路是哪一条,进而进行转发的一类算法

距离矢量算法的特点是:

  1. 分布的 每个节点接收来自与其直接邻接节点的路由信息,并执行路由计算,将计算结果回传给直接邻接的节点
  2. 迭代的 计算过程循环进行,直到相邻节点没有可交换的路由信息为止
  3. 异步的 并不要求所有节点相互锁步操作

链路状态算法中,每个节点都有完整地网络拓扑图,也就是完整的链路信息(距离矢量法只知道和相邻路由的),节点向相邻网络广播自己和邻居的信息,每当自己也收到这个信息,就用dijkstra算法来重新计算路由表

扩展:

内部网关协议:

​ rip是由距离矢量实现,最多15跳。iBGP是增强的距离矢量,OSPF运行在AS内部的各个区域里面是是链路状态算法,IS-IS和OSPF类似,也是链路状态算法,可以运行在网络之间

外部网关协议:

​ eBGP算法是距离矢量算法

9. 什么时候用到了分组/组装技术?

数据报从一个主机传输到另一个主机,报文字节太长,超过了MTU,就要进行分组,再在目的主机组装

计算机网络常见面试题目总结,含答案相关推荐

  1. 大佬分享:180+道Java面试题目!含答案解析!

    作者:我是offer 链接:https://www.nowcoder.com/discuss/84736 来源:牛客网 大厂常见问题 写视频点播网站文件下载接口 基础变量/数组写出模拟maven导入包 ...

  2. 2018互联网企业最新面试大纲180+道Java面试题目!含答案解析!

    在进入正文之前,顺便给大家推荐一个Java架构方面的交流学习群:878249276,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发.高性能.分布式. ...

  3. 面试过阿里的P7大佬分享:180+道Java面试题目!含答案解析!

    大厂常见问题 写视频点播网站文件下载接口 基础变量/数组写出模拟maven导入包过程 写出新变脸内存分配,模拟垃圾回收过程 50个白球50个红球,两个盒子,怎么放让人随机在一个盒子里抽到红球概率最高 ...

  4. retrofit原理面试,2021最新百度、头条等公司Android社招面试题目,含答案解析

    基本情况 硕士生,Android开发岗 此文主要是2021年初春招实习的面试和正式校招面试经验汇总,最终校招拿到了腾讯,百度,美团,网易等offer 主要包括阿里4面,腾讯8面,字节3面,百度3面,美 ...

  5. 腾讯产品经理笔试面试题目(含答案)

    (欢迎大家点赞+收藏+关注,需要答案的可以留言,我会私发给大家) 旅游景区(如兵马俑.玉龙雪山.故宫)想要和腾讯进行战略合作,解决景区排队,购票难.电子化程度低等问题,请你选择其中一个景点.设想现有景 ...

  6. java打字员面试题目总结含答案

    目录 1.junit用法,before,beforeClass,after, afterClass的执行顺序 2.Nginx的请求转发算法,如何配置根据权重转发 3.用hashmap实现redis有什 ...

  7. 【面试】网易游戏面试题目整理及答案(3)

    网易游戏面试题目整理及答案(3) 数据库部分 MySQL 事务 MySQL锁机制 MySQL调优 MySQL分区.分表.分库 主从复制 其他问题 数据库部分 MySQL 事务 事务的隔离级别有哪些?M ...

  8. 计算机专业常见面试题目汇总

    机器学习与深度学习常见面试题(上)-知乎 机器学习与深度学习常见面试题(下)-知乎 计算机考研专业课思维导图-知乎 (31条消息)常见C++笔试面试题整理_ljh0302的专栏-CSDN博客_c++面 ...

  9. 【面试】网易游戏面试题目整理及答案(5)

    网易游戏面试题目整理及答案(5) 算法 操作系统 Linux部分 其他 参考资料 算法 Leetcode 75题:请写出一个高效的在m*n矩阵中判断目标值是否存在的算法,矩阵具有如下特征: 1)每一行 ...

最新文章

  1. java 取字段_java – 获取字段的名称
  2. Dalvik VM进程系统(二):分析Zygote的启动过程
  3. python毕业设计开题报告-基于Python图书管理系统开题报告
  4. 面向过程和面向对象编程的优缺点
  5. 近期有哪些值得读的QA论文?| 专题论文解读
  6. SpringBoot_配置-@Conditional自动配置报告
  7. Spring 使用介绍(十二)—— Spring Task
  8. jeecg-boot自动生成代码_无代码实现销售系统自动判定并生成订单功能
  9. 【MFC相关】MFC入门相关
  10. 第十篇: 高可用的服务注册中心(Finchley版本)V2.0_dev
  11. Mono源代码学习笔记:Console类(五)
  12. python提取字符串中的中文、数字、字母
  13. oracle 获取执行时间间隔,Oracle获取某一段时间间隔之后的日期
  14. Ranorex中Global变量的使用
  15. 转载:图解SSL/TLS协议
  16. javaEE mvc样例具体解释
  17. docker(9):高级网络配置
  18. syswow64删除文件_什么是SysWow64文件夹 SysWow64文件夹可以删除吗
  19. 基于HTML5和JS实现的在线电子钢琴网页版
  20. 移远4g LTE模块at指令集合

热门文章

  1. OSPF路由协议详解与实战演练
  2. 刚刚!阿里香港上市,他们的区块链和百度、腾讯有什么不同?
  3. 说一下自动化测试的优缺点
  4. jquery-210812-05---jquery函数02
  5. SpringBoot SSO整合
  6. 《从零开始的记账本开发》第2篇 概要设计
  7. javascript如何对location.hash过滤xss跨站脚本
  8. 信息学奥赛一本通(c++):1000:入门测试题目
  9. 中心频率、带内波动、带外抑制、矩形系数,dB是什么意思?
  10. 输入字符串,输出字符串中出现次数最多的字母及其出现次数。如果有多个字母出现次数一样,则按字符从小到大顺序输出字母及其出现次数。