深入探索 Android 网络优化(一、网络筑基篇,为什么Flutter能最好地改变移动开发

article/2025/10/23 17:25:37

专用网络

某些部队、组织或者某些人 为了满足特殊业务需求而建立起来的特殊的网络,例如军队、铁路、银行都有自己的专用网络。

二、网络历史演进

1、世界互联网发展历史演进

1)、单个网络

ARPANET,1969年美国国防部创建的一个网络,可以连接周围的计算机。

计算机直接通过交换机就可以进行信息交换。

2)、三级结构

现代互联网的雏形,也称为 互联网络,可以把美国所有的大学、研究所、实验室都连接起来。

从上至下,由 主干网、地区网、校园网 组成。

3)、多层次 ISP

ISP(Internet Service Provider):网络服务提供商,例如中国电信、中国移动、中国联通等。从上之下,由主干 ISP、地区 ISP 组成

主干 ISP

中国的主干 ISP 包括 中国电信、中国移动、中国联通,它们可以连接美国和其它国家的主干 ISP。

地区 ISP

例如移动网络,在北京叫 北京移动,在上海叫 上海移动,这些就属于地区 ISP。地区 ISP 可以
连接公司、校园、家庭的网络

4)、了解现代国际互联网的主要线路

我们可以通过 infrapedia 网站了解国际互联网的主要线路。

上图刻画了 全球的所有主干网络的线路,可以看到,中国的主干网络出口基本都是位于广东、福建等沿海地区,它们通过各自的海底电缆与位处于世界各地的主干网络相互连接,最终形成了互联网

2、中国互联网发展历史

1)、1980 年

中国铁道部开始互联网实验。

2)、1989 年

建立并运行第一个公共网络。

3)、1994 年

接入国际互联网。

4)、至今

当今中国最大的五个公用的计算机网络

  • 中国电信互联网(CHINANET)
  • 中国联通互联网(UNINET)
  • 中国移动互联网(CMNET)
  • 中国教育与科研计算机网(CERNET)
  • 中国科学技术网(CSTNET)

3、中国的互联网企业

  • 1996年,张朝阳创建搜狐。
  • 1997年,丁磊创建网易。
  • 1998年,王志东创建新浪,马化腾、张志东创建腾讯。
  • 1999年,马云创建阿里巴巴。
  • 2000年,李彦宏创建百度。

三、重识网络层次结构

网络为什么要分层?

因为复杂的程序都要分层。这是一个架构设计的通用问题,不仅仅是网络协议的问题,只要涉及复杂的逻辑或软件需求需要经常变动的情况通常都会通过分层来解决

思考🤔:设计一个计算机网络需要解决哪些问题?

  • 1)、传输数据时需要保证数据通路顺畅。
  • 2)、需要识别目的计算机。
  • 3)、需要了解目的计算机的状态。
  • 4)、数据是否错误。

总之,计算机网络需要解决的问题是繁多而复杂的,所以我们需要 采用分层的设计分别去解决不同的问题,实现不同的功能

1、层级结构设计的基本原则

1)、相互独立

每一层仅仅实现一个相对独立的功能,并且需要确保层与层之间的耦合度是非常低的。

2)、灵活性

每一层的设计需要具备很好的灵活性、扩展性,以适应未来的网络变化。

3)、耦合度

各层之间是完全解耦的,层与层之间的变化互不影响。

2、OSI 七层模型

OSI功能
应用层为计算机用户提供接口和服务。
表示层数据处理:编解码、加解密等等。
会话层管理(建立、维护、重连)通信会话。
传输层管理端到端的通信连接。
网络层数据路由:决定数据在网络中的路径。
数据链路层管理相邻节点之间的数据通信。
物理层数据通信的光电物理特性。

1)、OSI 悲催的故事

  • 1)、一开始,OSI 欲称为全球计算机都遵守的标准。
  • 2)、但是,OSI 在市场化的过程中困难重重,因为 TCP/IP 已经在全球范围成功运行。
  • 3)、最终,OSI 并没有称为广为使用的标准模型。

2)、OSI 七层模型失败的原因

  • 1)、OSI 的专家没有充分将理论与实际进行结合。
  • 2)、OSI 标准的制定周期过长,按 OSI 标准生产的设备无法及时进入市场。
  • 3)、OSI 模型的设计不合理,某些功能在多层重复出现。

3、TCP/IP 四层模型

我们需要理解数据通信过程中不同设备之间协议的转换。从下图可以看到


http://chatgpt.dhexx.cn/article/EE1vUk6T.shtml

相关文章

637道Java面试题(含答案)

作者:蝉沐风 关注公众号「蝉沐风」,回复「面试题」三个字 ,获取更多面试题,这篇文章只是冰山一角 面试题持续整理中,关注「蝉沐风」之后添加个人微信,拉你进技术群,不定期分享好几吨的Java视频教…

【个人笔记 | Pytorch课程 | 整理中ing】

【小土堆】 小土堆课程视频 笔记others: 入门与Dataset数据加载 【入门/数据/预处理】 pycharm 安装:https://www.jetbrains.com/pycharm/、指南、 可以在右上写代码,可以在左下控制台写程序(一般用于调试) conda-Pytorch 深度学习…

计算机网络笔记

目录 第一章 计算机网络和因特网 1.1 什么是因特网 1.1.1 组成描述 1.1.2 服务描述 、 1.1.3 协议 1.2 网络的边缘 1.2.1 接入网 1.2.2 物理媒体 1.3 网络核心 1.3.1 分组交换 1.3.2 电路交换 1.3.3 分组交换和电路交换的对比 1.3.4 网络的网络 1.4 分组交换…

PyTorch深度学习-跟着小土堆学习

目录 学习视频链接一些问题P4:Python/PyTorch学习中两大法宝函数-dir()、help()P5:PyCharm及Jupyter使用及对比P6:PyTorch加载数据初认识P7:Dataset类代码实战P8:TensorBoard的使用(一)P9&#…

[零基础][最简单的教程]图像多分类问题的解决——基于resnet50的pytorch的实现

文章目录 前言一、开始任务的前提条件二、深度学习通用框架三、修改代码前,使用者需要明确的问题1.图片分成三个集,并放在正确的位置2.明确你是几分类问题3.明确你是使用的模型网络 四、图像分类通用pytorch框架——具体代码实现一、输入处理模块0.引入库…

深入探索 Android 网络优化(一、网络筑基篇)上

前言 成为一名优秀的Android开发,需要一份完备的知识体系,在这里,让我们一起成长为自己所想的那样~。 网络优化一直被认为是移动优化水最深的领域之一,因此要想对网络进行深入优化,我们就必须先打下比较扎实的网络基础…

计算机网络(自顶向下方法)学习笔记

目录 第一章 计算机网络和因特网 1.1 什么是因特网 1.1.1 组成描述 1.1.2 服务描述 1.1.3 协议 1.2 网络的边缘 1.2.1 接入网 1.2.2 物理媒体 1.3 网络核心 1.3.1 分组交换 1.3.2 电路交换 1.3.3 分组交换和电路交换的对比 1.3.4 网络的网络 1.4 分组交换中的时延…

【我是土堆 - PyTorch教程】学习随手记(已更新 | 已完结 | 10w字超详细版)

目录 1. Pytorch环境的配置及安装 如何管理项目环境? 如何看自己电脑cuda版本? 安装Pytorch 2. Python编辑器的选择、安装及配置 PyCharm PyCharm神器 Jupyter(可交互) 3. Python学习中的两大法宝函数 说明 实战操…

SpringCloud(H版以及Alibaba版本)的学习笔记(三)

本笔记学习自B站尚硅谷Springcloud时所记录 学习视频链接源码地址【码云】 笔记内容包括了:Springcloud的H版以及Alibaba版本 H版具体内容包括:Eureka、Zookeeper、Consul、Ribbon、OpenFeign、Hystrix、Gateway、Config、Bus、Stream、Sleuth等技术的…

JavaScript——onblur事件失效问题解决方案

基本概念 问题分析 改了写法,把事件写在函数里,然后直接调用,发现一直提示函数未定义,这个和浏览器渲染页面过程有关,就是当浏览器渲染到该标签时,事件函数还没定义,就报错。 解决方案 添加…

html dom onblur,html的DOM中Event对象onblur事件用法实例

html的DOM中Event对象onblur事件用法实例 本文实例讲述了html的DOM中Event对象onblur事件用法。分享给大家供大家参考。具体分析如下: onblur 事件会在对象失去焦点时发生。 语法如下: 复制代码 代码如下: οnblur"SomeJavaScriptCode" SomeJa…

onBlur事件与onfocus事件 (js)

jQuery 参考手册 - 事件 一、jQuery的 onBlur方法 定义和用法 1、当元素失去焦点时发生 blur 事件。 2、blur() 函数触发 blur 事件,或者如果设置了 function 参数,该函数也可规定当发生 blur 事件时执行的代码。 提示:早前,…

利用onblur事件实现文本框中英文字母全部转换成大写

利用onblur事件实现文本框中英文字母全部转换成大写 <body>文本框中输入&#xff1a;<input type"text" id"inp" value"" onblur"aA()" /><br><br>失去焦点后&#xff1a;<input type"text" id…

onfocus 事件onblur 事件

<!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>菜鸟教程(runoob.com)</title> </head> <head> <script> function myFunction(x){x.style.background"red"; } </script> <…

js中 onblur事件和onchange事件的区别

onchange事件&#xff1a;会判断输入框中的内容是否和原来的内容相同&#xff0c;和原来的内容相同则不会出现提示框&#xff0c;不相同才出现提示框 现在数量是 2 修改为 2 &#xff0c;没有出现提示框 修改为其他内容&#xff1a;出现提示框

onblur事件和onfocus事件失效

先看onblur事件和onfocus事件的定义&#xff1a; <element οnblur"SomeJavaScriptCode"> <element οnfοcus"SomeJavaScriptCode"> 双引号中的内容是一段js代码&#xff0c;也可以是一个事件函数 在看几个例子&#xff1a; <!DOCTYPE htm…

html onblur 函数执行了2次,JavaScript“onblur事件”调用函数失效 原因与解决方法

由于JavaScript事件有很多,例如: 鼠标事件:onclick 键盘事件:onkeydown、onkeypress 表单事件:onblur、onchange 窗口事件属性:onerror、onload 因此,如果你遇到其它的JavaScript事件调用函数失效,解决方法也同理。 以我这里为例子: 今天我在调试代码的时候,发现我的…

js onfocus事件、js onblur事件

onfocus事件&#xff1a; html元素获取到焦点所触发的事件&#xff0c;通常用于 <input>输入框标签&#xff0c;<select>下拉列表标签&#xff0c;以及<a>超链接标签&#xff0c;不是所有html元素都支持onfocus事件。 onblur事件: html元素失去焦点所触发的…

onblur事件

代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title> </head> <body><input type"text"id"user"><script>document.g…

onblur和onchange

onblur onblur 事件会在对象失去焦点时发生。 onblur 经常用于Javascript验证代码&#xff0c;一般用于表单输入框。 提示&#xff1a;onblur 相反事件为 onfocus 事件 。 案例&#xff1a; <body>文本框输入:<input type"text" name"" id"w…