根据 Android知识体系总结(全方面覆盖Android知识结构,面试&进阶)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/ClAndEllen/article/details/79257663
————————————————进行整理

  • 1.网络模型
OSI模型 五层模型 TCP/IP模型
应用层
表示层
会话层 应用层 应用层
传输层 传输层 传输层
网络层 网络层 网络层
数据链路层 数据链路层
物理层 物理层 数据链路层
  • 2.Http/Https协议工作在哪一层?
    毫无疑问是应用层。

  • 3.TCP/UDP协议工作在哪一层?
    毫无疑问是传输层。

  • 4.给我说说三次握手和四次挥手

三次握手
A发送SYN到B,SYN=0
B收到后发送SYN=0和ACK=1到A
A收到后发送SYN=1和ACK=1到B

sequenceDiagram
A->>B: SYN=1 seq=x
B->>A: SYN=1 ACK=1 seq=y ack=x+1
A->>B: ACK=1 seq=x+1 ack=y+1

为什么需要三次握手
为了通知双方各自的sequence Number的初始值,

‘ACK:确认字符’

首次握手时server端回复SYN-ACK时,由于client端掉线,收不到ACK确认
server端会重试5次直至超时,断开连接,分别是1/2/4/8/31 总计63秒
通过tcp_syncookies进行确认校验,防止恶意攻击

四次挥手

sequenceDiagram
A->>B: FIN=1 seq=x
B->>A: ACK=1 seq=y ack=x+1
B->>A: FIN=1 ACK1 seq=z ack=x+1
A->>B: ACK=1 seq=x+1 ack=z+1

A在第四次挥手后,有TIME_WAIT状态,时间为2MSL,用来确保有足够的时间让对方收到ACK包,避免新旧连接混淆

在四次挥手中,服务器出现大量CLOSE_WAIT的情况,多数是由于服务器端可能存在BUG,导致消息处理不及时

  • 5.keepalive
    轮询:由服务端主动发送消息确认客户端状态,更新服务端保存的状态
    心跳:由客户端主动发送消息通知自己的状态,服务器收到消息后进行更新

  • 6.什么是请求头 & 响应头 ? 说说请求头中一些重要的字段。
    请求头/响应头:HTTP中提供请求、响应或其他发送的实体消息

请求头 说明 示例
Accept 可接受的响应内容类型(Content-Types) Accept: text/plain
Accept-Charset 可接受的字符集 Accept-Charset: utf-8
Accept-Encoding 可接受的响应内容的编码方式 Accept-Encoding: gzip, deflate
Accept-Language 可接受的响应内容语言列表 Accept-Language: en-US
Connection 客户端(浏览器)想要优先使用的连接类型 Connection: keep-alive Connection: Upgrade
Host 表示服务器的域名以及服务器所监听的端口号,80端口可省略不写 Host: www.baidu.com:8080
  • 7.什么是Cookie & Session
    Cookie和Session是常用的会话跟踪技术,Cookie通过在客户端确认用户身份,Session用于在服务端确认用户身份

  • 8.Http和Https的区别?
    点击查看答案
    简单的https就是SSL加密了的HTTP安全通讯协议,需要申请CA证书,同时握手时会多消耗部分性能和时间

  • 9.加密协议TLS/SSL加密过程是怎样的?
    TLS/SSL中使用了非对称加密,对称加密以及HASH算法

sequenceDiagram
A->>B: 请求https连接
B->>A: 返回证书,证书中含有公钥和其他信息
A->>A: 浏览器校验证书合法性
A->>A: 合法后生成随机数,用公钥进行加密生成私钥
A->>A: 使用约定好的HASH方法生成握手消息,使用私钥进行加密
A->>B: 发送握手消息
B->>B: 使用自己的私钥对消息进行解密,取出用户私钥,校验HASH确保一致
B->>A: 使用用户私钥加密握手信息,发送
A->>A: 收到消息,使用私钥进行解密,如一直,则握手成功,后续使用私钥进行对称加密算法加密通讯

个人使用过AES和RSA MD5进行数据加密,实现叮咚音箱和讯飞语点的消息通讯
非对称算法RAS用于握手时,AES用于后续数据传输中,MD5用于校验数据完整性

  • 10.什么是DNS & 作用是什么 & 工作机制?

点击查看答案
DNS(domain name system)域名系统或者(domain named system)区域名称服务,分为正向与反向域名解析,属于应用层协议
作用:类似电话本,电话本中保存的是IP和主机名,可以1-n也可以n-1
一次完整得查询请求经过得流程
client–>hosts文件–>DNS service
local cache -->DNS server(recursion递归)–>server cache -->iteration(迭代)

  • 11.浏览器访问一个url网址所经历的过程是什么?

点击查看答案

  • 12.Socket是协议吗?WebSocket是协议吗?它们的区别是什么?

IP工作在网络层,Socket工作在会话层,不是协议
WebSocekt是完整的应用层协议
Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口

点击查看答案

  • 13.Json解析方式有哪些?比较它们的优劣势。

点击查看答案

  • 14.XML解析方式有哪些?比较它们的优劣势。

点击查看答案

  • 15.http1.x & http 2.0区别是什么?

点击查看答案

一篇写的非常详细的博客
根据 Android知识体系总结(全方面覆盖Android知识结构,面试&进阶)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/ClAndEllen/article/details/79257663
————————————————进行整理

  • 1.网络模型
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1vmY7qel-1569923603605)(CB0FD0A5AFE44F5B93156F5C57A96E9F)]
OSI模型 五层模型 TCP/IP模型
应用层
表示层
会话层 应用层 应用层
传输层 传输层 传输层
网络层 网络层 网络层
数据链路层 数据链路层
物理层 物理层 数据链路层
  • 2.Http/Https协议工作在哪一层?
    毫无疑问是应用层。

  • 3.TCP/UDP协议工作在哪一层?
    毫无疑问是传输层。

  • 4.给我说说三次握手和四次挥手

三次握手
A发送SYN到B,SYN=0
B收到后发送SYN=0和ACK=1到A
A收到后发送SYN=1和ACK=1到B

sequenceDiagram
A->>B: SYN=1 seq=x
B->>A: SYN=1 ACK=1 seq=y ack=x+1
A->>B: ACK=1 seq=x+1 ack=y+1

为什么需要三次握手
为了通知双方各自的sequence Number的初始值,

‘ACK:确认字符’

首次握手时server端回复SYN-ACK时,由于client端掉线,收不到ACK确认
server端会重试5次直至超时,断开连接,分别是1/2/4/8/31 总计63秒
通过tcp_syncookies进行确认校验,防止恶意攻击

四次挥手

sequenceDiagram
A->>B: FIN=1 seq=x
B->>A: ACK=1 seq=y ack=x+1
B->>A: FIN=1 ACK1 seq=z ack=x+1
A->>B: ACK=1 seq=x+1 ack=z+1

A在第四次挥手后,有TIME_WAIT状态,时间为2MSL,用来确保有足够的时间让对方收到ACK包,避免新旧连接混淆

在四次挥手中,服务器出现大量CLOSE_WAIT的情况,多数是由于服务器端可能存在BUG,导致消息处理不及时

  • 5.keepalive
    轮询:由服务端主动发送消息确认客户端状态,更新服务端保存的状态
    心跳:由客户端主动发送消息通知自己的状态,服务器收到消息后进行更新

  • 6.什么是请求头 & 响应头 ? 说说请求头中一些重要的字段。
    请求头/响应头:HTTP中提供请求、响应或其他发送的实体消息

请求头 说明 示例
Accept 可接受的响应内容类型(Content-Types) Accept: text/plain
Accept-Charset 可接受的字符集 Accept-Charset: utf-8
Accept-Encoding 可接受的响应内容的编码方式 Accept-Encoding: gzip, deflate
Accept-Language 可接受的响应内容语言列表 Accept-Language: en-US
Connection 客户端(浏览器)想要优先使用的连接类型 Connection: keep-alive Connection: Upgrade
Host 表示服务器的域名以及服务器所监听的端口号,80端口可省略不写 Host: www.baidu.com:8080
  • 7.什么是Cookie & Session
    Cookie和Session是常用的会话跟踪技术,Cookie通过在客户端确认用户省份,Session用于在服务端确认用户身份

  • 8.Http和Https的区别?
    点击查看答案
    简单的https就是SSL加密了的HTTP安全通讯协议,需要申请CA证书,同时握手时会多消耗部分性能和时间

  • 9.加密协议TLS/SSL加密过程是怎样的?
    TLS/SSL中使用了非对称加密,对称加密以及HASH算法

sequenceDiagram
A->>B: 请求https连接
B->>A: 返回证书,证书中含有公钥和其他信息
A->>A: 浏览器校验证书合法性
A->>A: 合法后生成随机数,用公钥进行加密生成私钥
A->>A: 使用约定好的HASH方法生成握手消息,使用私钥进行加密
A->>B: 发送握手消息
B->>B: 使用自己的私钥对消息进行解密,取出用户私钥,校验HASH确保一致
B->>A: 使用用户私钥加密握手信息,发送
A->>A: 收到消息,使用私钥进行解密,如一直,则握手成功,后续使用私钥进行对称加密算法加密通讯

个人使用过AES和RSA MD5进行数据加密,实现叮咚音箱和讯飞语点的消息通讯
非对称算法RAS用于握手时,AES用于后续数据传输中,MD5用于校验数据完整性

  • 10.什么是DNS & 作用是什么 & 工作机制?

点击查看答案
DNS(domain name system)域名系统或者(domain named system)区域名称服务,分为正向与反向域名解析,属于应用层协议
作用:类似电话本,电话本中保存的是IP和主机名,可以1-n也可以n-1
一次完整得查询请求经过得流程
client–>hosts文件–>DNS service
local cache -->DNS server(recursion递归)–>server cache -->iteration(迭代)

  • 11.浏览器访问一个url网址所经历的过程是什么?

点击查看答案

  • 12.Socket是协议吗?WebSocket是协议吗?它们的区别是什么?

IP工作在网络层,Socket工作在会话层,不是协议
WebSocekt是完整的应用层协议
Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口

点击查看答案

  • 13.Json解析方式有哪些?比较它们的优劣势。

点击查看答案

  • 14.XML解析方式有哪些?比较它们的优劣势。

点击查看答案

  • 15.http1.x & http 2.0区别是什么?

点击查看答案

一篇写的非常详细的博客

Andoird基础整理-1.计算机网络相关相关推荐

  1. 计算机网络的期刊,科学网—晒个自己整理的计算机网络和通信方向可能相关的期刊列表 - 张国强的博文...

    晒个自己整理的计算机网络和通信方向可能相关的期刊列表 已有 7444 次阅读 2010-1-14 13:42 |个人分类:论文交流|系统分类:论文交流| 网络, 通信, 国际期刊列表 1 ACM的期刊 ...

  2. 计算机网络职称考试,职称计算机考试Internet基础知识:计算机网络组成

    职称计算机考试Internet基础知识:计算机网络组成 导语:计算机网络,是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管 ...

  3. 高职计算机网络基础教学环节,计算机网络基础课程教学改革研究

    摘要:当前我国的社会发展模式已经进入了信息化社会,快速发展的网络技术对人才的综合素质有了更高的要求,对高职院校的计算机网络人才培养模式也提出了全新的要求,在新的时代背景下,如何优化高职院校的网络基础课 ...

  4. 大学计算机基础 信息安全,大学计算机基础计算机网络基础与信息安全计算机网络概述教案...

    <大学计算机基础计算机网络基础与信息安全计算机网络概述教案>由会员分享,可在线阅读,更多相关<大学计算机基础计算机网络基础与信息安全计算机网络概述教案(8页珍藏版)>请在人人文 ...

  5. 中职计算机网络技术应用教学教案,计算机网络基础教案:计算机网络技术基础(中职教育)...

    计算机网络基础教案:计算机网络技术基础(中职教育) (11页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 第三章 计算机网络技术基础一X教学 ...

  6. 计算机网络最基础论文题目,计算机网络基础知识类论文题目 计算机网络基础知识论文题目哪个好...

    [100道]关于计算机网络基础知识类论文题目汇总,作为大学生的毕业生应该明白了计算机网络基础知识论文题目哪个好,选一个好的题目后续的计算机网络基础知识论文写作起来会更轻松! 一.比较好写的计算机网络基 ...

  7. js基础--数据类型检测的相关知识

    欢迎访问我的个人博客:www.xiaolongwu.cn 前言 最近工作有点忙,好几天都没更新技术博客了. 周末起床打开有道云笔记,发现自己的博客todolist里躺了一堆只有名字的文件. 话不多说, ...

  8. 吐血整理《计算机网络五层协议之物理层(下)》

    吐血整理<计算机网络五层协议之物理层(上)> 吐血整理<计算机网络五层协议之物理层(中)> 绝知此事要躬行! 物理层(下篇) 1.数字传输系统 1.1PCM的基本原理 1.2 ...

  9. 吐血整理《计算机网络五层协议之物理层(中)》

    吐血整理 <计算机网络 五层协议之物理层(上)> 吐血整理 <计算机网络 五层协议之物理层(下)> 物理层(中篇) 1.信道的基本概念(续) 1.1信道的极限容量 1.2.信道 ...

最新文章

  1. ucgui下制作漂亮按键
  2. 傅里叶变换的参考文档
  3. Oralce null
  4. Android 操作SQLite基本用法
  5. DEEPIN 20.2.2社区版设置双屏显示(y7000p)
  6. Qt 从C ++定义QML类型(一)
  7. python语言是非跨平台语言吗_python是跨平台的语言吗
  8. vscode php断点,VSCode中设置断点调试PHP(示例代码)
  9. JAVA线程池 之 Executors (一) 简介
  10. 关于 librecad 的中文支持
  11. python 拼音排序_Python实现针对中文排序的方法
  12. linux物理服务器搬迁后,更换了路由器,ping不同外网
  13. C++:缺省参数是怎样设置的?
  14. 盘点微软CEO纳德拉十大有趣事实
  15. 数十年军旅,钢铁意志成就他的技术颠峰
  16. PDF Shaper Professional v11.3 全能PDF工具箱单文件版
  17. 如何使用logcat和getevent查看遥控器的ir key,linux key和android key值
  18. 群晖安装和插件库系列笔记
  19. promise是什么
  20. 九度OJ北京航空航天大学2008机试题题解

热门文章

  1. mysql ibdata1_mysql ibdata1 ib_logfile的恢复
  2. Protocol完整的
  3. 百度Hi之CSRF蠕虫攻击
  4. SQL保留字,命名数据库、表、列和其他数据库对象时勿用
  5. SAP给微信推送消息
  6. js数组再倒数第二个添加元素_【JS】JS数组添加元素的三种方法
  7. matlab把句子分割成单词_将句子拆分成单独的单词 - php
  8. NLP: 基于文本语义的智能问答系统
  9. Android游戏开发大全
  10. 可能是最详细的Android图片压缩原理分析(一)—— Android图片压缩必备基础知识