【计算机网络】深入浅出计算机网络
第一章
计算机网络在信息时代的作用
计算机网络已由一种通信基础设施发展成一种重要的信息服务基础设施
CNNIC 中国互联网网络信息中心
因特网概述
网络、互联网和因特网
网络(Network)由若干结点(Node)和连接这些结点的链路(Link)组成

多个网络还可以通过路由器(router)互联起来,这样就构成了一个覆盖范围更大的网络,即互联网。因此互联网是网络的网络(Network of Network)

因特网(Internet)是世界上最大户互联网络(用户数以亿计,互连的网络数以百万计)

Internet(互联网)是一个通用名词,它泛指由多个计算机网络连接而成的网络。在这些网络之间的通信协议可以是任意的
Internet(因特网)则是一个专有名词,它指当前全球最大的、开放的、由众多网络相互连接而成的特定计算机网络,它采用TCP/IP协议族作为通信的规则,其前身是美国的ARPANET
因特网发展的三个阶段

因特网服务提供者ISP(Internet Service Provider)

基于ISP的三层结构的因特网

第一层ISP(主干网,覆盖国际性区域范围,并拥有高速链路和交换设备),第一层ISP之间直接互联
第二层ISP和一些大公司都是第一层ISP的用户,通常具有区域性或国家性覆盖规模,与少数第一层ISP相连接
第三层ISP,又称本地ISP,它们是第二层ISP的用户,且只拥有本地范围的网络,一般的校园网或企业网,以及住宅用户和无线移动用户都是第三层ISP的用户
相隔较远的两台主机间的通信可能需要经过多个ISP
一旦某个用户能够接入到因特网,那么他也可以成为一个ISP,所需要做的是购买一些如调制器或路由器这样的设备,让其他用户能够和他相连
一个ISP可以很方便地在因特网拓扑上增添新的层析和分支
因特网的标准化工作

注意:不是所有的RFC文档都是因特网标准,只有一小部分RFC文档最后才能变为因特网标准
因特网的组成
边缘部分:由所有连接在因特网上的主机组成,这部分是用户直接使用的,用来进行通信(传送数据、音频或视频)和资源共享
核心部分:由大量的网络和连接这些网络的路由器组成,这部分是为边缘部分提供服务的(提供连连通性和交换)

在网络核心部分起特殊作用的是路由器,是一种专用计算机,但我们不称它为主机。路由器是实现分组交换的关键构件,其任务是转发接收到的分组。
三种交换方式
电路交换(Circuit Switching)

电话交换机接通电话线的方式称为电路交换;
从通信资源的分配角度来看,交换(Switching)就是按照某种方式动态地分配传输线路的资源;

电路交换的三个步骤:
(1)建立连接(分配通信资源)
例如,在使用电路交换机打电话之前,必须先拨号请求建立连接。当被叫用户听到电话交换机送来的拨号音并摘机后,从主叫端到被叫端建立了一条连接(也就是一条专用的物理通路),这条连接保证了双方通话时所需的通信资源,而这些资源在双方通信时不会被其他用户占用。
(2)通话(一直占用通信资源)
在整个通话期间,第一步建立连接所分配的通信资源始终被占用
(3)释放连接(归还通信资源)
也就是通话完毕后挂机后,电话交换机释放刚才使用的这条专用物理通路,是把刚才占用的所有通信资源归还给电信网。
思考:如果使用电路交换来传送计算机数据,是否可行?
尽管采用电路交换可以实现计算机之间的数据传送,但是线路的传送效率往往很低(计算机数据是突发式地出现在传输线路上的)
用户正在输入和编辑一份待传输的文件时,用户所占用的通信资源暂时未被利用,该通信资源也不能被其他用户利用,宝贵的通信线路资源白白地被浪费了
因此,计算机网络通常采用分组交换,而不是电路交换
分组交换(Packet Switching)


假设主机H6的用户要给主机H2的用户发送一条消息,(通常把该消息的整块数据称为一个报文),在发送报文之间,先把较长的报文划分成一个个更小的等长数据段。在每一个数据段前面,加上一些由必要的控制信息组成的首部(也可称为“包头”)后,就构成了一个分组(也可简称为“包”)
添加首部的作用?首部中肯定包含了分组的目的地址,否则分组传输路径中的各分组交换机(也就是各路由器)就不知道如何转发分组了。
分组交换机收到一个分组后,先将分组暂时存储下来,再检查其首部,按照首部中的目的地址进行查表转发,找到合适的转发接口,通过该接口将分组转发给下一个分组交换机,
主机H6将所构造出的各分组依次发送出去,各分组经过交换机的存储转发,最终到达主机H2,主机H2收到这些分组后,去掉它们的首部,将各数据段组合还原出原始报文。
只给出两种情况:一种是各分组从源站到达目的站可以走不同的路径(不同的路由);
另一种是分组乱序,分组到达目的站的顺序不一定与分组在源站的发送顺序相同。
可能出现的分组丢失、误码、重复等

报文交换(Message Switching)
交换结点也采用存储转发方式,但报文交换对报文的大小没有限制,这就要求交换结点需要有较大的缓存空间。
主要用于早期的电报通信网,现在较少使用,通常被较先进的分组交换方式所取代

分组交换,相比于报文交换,减少了转发时延,避免过长的报文长时间占用链路,同时有利于进行差错控制。
计算机网络的定义和分类
计算机网络的性能指标
计算机网络体系结构
总结
第二章
物理层的基本概念
物理层下面的传输媒体
传输方式
编码与调制
信道的极限容量
总结
第三章
数据链路层概述
封装成帧
差错检测
可靠传输的实现机制
点对点协议PPP
媒体接入控制的基本概念
媒体接入控制
随机接入
MAC地址、IP地址以及ARP协议
集线器与交换机的区别
以太网交换机自学习和转发帧
以太网家滑稽的生成树协议STP
虚拟局域网VLAN概述
虚拟局域网VLAN的实现机制
第四章
网络层概述
网络层提供的两种服务
IPv4地址概述
分类编址的IPv4地址
划分子网的IPv4地址
无分类编址的IPv4地址
IPv4地址的应用规划
IP数据报的发送和转发过程
静态路由器配置以及
路由器选择协议概述
IPv4数据报的首部格式
网际控制报文协议ICMP
虚拟专用网VPN与网络地址转换NAT
第五章
运输层概述
运输层端口号、复用与分用的概念
UDP和TCP的对比
TCP的流量控制
TCP的拥塞控制
TCP超时重传时间的选择
TCP可靠性传输的实现
TCP的运输连接管理
TCP报文段的首部格式
第六章
应用层概述
客户--服务器方式和对等方式
动态主机配置协议DHCP
域名系统DNS
文件传送协议FTP
电子邮件
万维网WWW
相关文章:
【计算机网络】深入浅出计算机网络
第一章 计算机网络在信息时代的作用 计算机网络已由一种通信基础设施发展成一种重要的信息服务基础设施 CNNIC 中国互联网网络信息中心 因特网概述 网络、互联网和因特网 网络(Network)由若干结点(Node)和连接这些结点的链路…...
springMVC---resultful风格
目录 一、创建项目 pom.xml 二、配置文件 1.web.xml 2.spring-mvc.xml 三、图解 四、controller 一、创建项目 pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi…...
汽车基础软件AutoSAR自学攻略(三)-AutoSAR CP分层架构(2)
汽车基础软件AutoSAR自学攻略(三)-AutoSAR CP分层架构(2) 下面我们继续来介绍AutoSAR CP分层架构,下面的文字和图来自AutoSAR官网目前最新的标准R24-11的分层架构手册。该手册详细讲解了AutoSAR分层架构的设计,下面让我们来一起学习一下。 Introductio…...
IntelliJ IDEA 主题插件
在 IntelliJ IDEA 中,有很多优秀的主题插件可以帮助你改变 IDE 的外观和配色方案,使得开发过程更加愉悦和高效。以下是一些非常受欢迎和实用的 主题插件,以及如何安装和使用它们的步骤: 🌟 流行主题插件推荐 1️⃣ Ma…...
2025最新JAVA面试八股文【基础篇】
1、面向对象和面向过程的区别 2、标识符的命名规则 3、Java自动装箱与拆箱 4、 方法重载和方法重写的区别 5、 equals与 的区别 6、 Hashcode的作用 7、 String、StringBuffer 和 StringBuilder 的区别是什么? 8、ArrayList和linkedList的区别 9、 HashMap和HashTabl…...
element plus 使用 el-tree 组件设置默认选中和获取所有选中节点id
1. 设置默认选中: 使用 default-checked-keys 属性,设置默认要选中的节点,以数组形式,如下: <el-treeref"treeRef":data"data"show-checkboxnode-key"id":props"defaultProps…...
高级java每日一道面试题-2025年01月09日-数据库篇-视图是什么?
如果有遗漏,评论区告诉我进行补充 面试官: 视图是什么? 我回答: 在Java高级面试中,当讨论到数据库中的视图(View)时,通常指的是一种虚拟表或逻辑表。视图并不存储实际数据,而是基于SQL查询定义的一种数据表示形式。…...
python学习整理
在cmd界面里 安装python notebook 1.pip install notebook -i https://pypi.tuna.tsinghua.edu.cn/simple 打开 notebook jupyter notebook 更改默认路径 找到配置文件路径: jupyter notebook --generate-config 搜索’notebook_dir 内容进行修改路径&#x…...
Qt 5.14.2 学习记录 —— 십이 QLineEdit、QTextEdit
文章目录 1、QLineEdit1、写程序2、正则表达式检查电话号码3、验证两次输入的密码是否一致4、切换显示密码状态 2、TextEdit1、多行编写2、信号 1、QLineEdit text在代码上改变或者界面上直接改动都会修改这个属性。 clearButtonEnabled,输入框为空,没有…...
【LC】2270. 分割数组的方案数
题目描述: 给你一个下标从 0 开始长度为 n 的整数数组 nums 。 如果以下描述为真,那么 nums 在下标 i 处有一个 合法的分割 : 前 i 1 个元素的和 大于等于 剩下的 n - i - 1 个元素的和。下标 i 的右边 至少有一个 元素,也就是…...
【办公类-99-01】20250103用“课题阶段资料模版“批量制作“7个课题档案袋“
背景需求 本学期的课题有4个大课题,3个小课题通过,需要做阶段资料。 一、初步设计 我很早以前就做好了Python代码(只有上学期),批量制作每个课题的阶段资料模版。因为小课题的编号没有出来,就一直没有发给…...
Objective-C语言的面向对象编程
Objective-C语言的面向对象编程探讨 引言 随着计算机科学的发展,编程语言也在不断演变。面向对象编程(OOP)作为一种重要的编程范式,已被广泛应用于软件开发中。Objective-C是一种基于C语言的面向对象编程语言,主要用…...
有限元分析学习——Anasys Workbanch第一阶段笔记(11)横梁中点挠度仿真结果与计算结果对比
目录 0 序言 1 求解横梁中点挠度案例 2 仿真计算求解 2.1 模型简化 2.2 前处理 2.3 计算结果 2 数值计算 3 结果对比 0 序言 本章主要介绍求解横梁的中点挠度的1/4对称算法和数值计算结果对比 有限元分析基本操作流程 1 求解横梁中点挠度案例 分析方案:压…...
GO语言实现KMP算法
前言 本文结合朱战立教授编著的《数据结构—使用c语言(第五版)》(以下简称为《数据结构(第五版)朱站立》)中4.4.2章节内容编写,KMP的相关概念可参考此书4.4.2章节内容。原文中代码是C语言&…...
【2024年华为OD机试】(A卷,100分)- 打印机队列(Java JS PythonC/C++)
一、问题描述 题目描述 有5台打印机打印文件,每台打印机有自己的待打印队列。 因为打印的文件内容有轻重缓急之分,所以队列中的文件有1~10不同的代先级,其中数字越大优先级越高。 打印机会从自己的待打印队列中选择优先级最高的文件来打印…...
SQL语言的面向对象编程
SQL语言的面向对象编程 引言 随着数据库技术的发展,SQL(结构化查询语言)逐渐成为数据管理和处理的标准语言。从最初的查询语言演变为更复杂的系统,SQL 现在不仅帮助开发者执行基本的查询,还支持了许多高级功能&#…...
android分区和root
线刷包内容: 线刷包是一个完整的android镜像,不但包括android、linux和用户数据,还包括recovery等。当然此图中没有recovery,但是我们可以自己刷入一个。 主要分区 system.img 系统分区,包括linux下主要的二进制程序。 boot.img…...
WebScoket-服务器客户端双向通信
文章目录 1. 消息推送常用方式介绍2. WebSocket2.1 介绍2.2 客户端API2.3 服务端API 3. 总结 1. 消息推送常用方式介绍 轮询 浏览器以指定的时间间隔向服务器发出HTTP请求,服务器实时返回数据给浏览器。 长轮询 浏览器发出ajax请求,服务器端接收到请求…...
如何在QT中保证线程是安全的?
在Qt中保证线程安全是一个重要的问题,尤其是在涉及多线程编程时。以下是一些保证线程安全的方法和策略: 1. 使用信号和槽机制 Qt的信号和槽机制本身提供了线程间的安全通信方式。当信号从一个线程发射到另一个线程时,槽函数会在接收信号的线…...
Lock接口
java.util.concurrent.locks.Lock 接口是Java并发包中的一部分,它提供了比内置锁(即 synchronized 关键字)更灵活和强大的锁机制。通过使用 Lock 接口及其相关实现类,开发者可以获得更多的功能选项来控制线程间的同步行为…...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...
未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...
C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...
centos 7 部署awstats 网站访问检测
一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats࿰…...
关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...
2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面
代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http…...
Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...
【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)
骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术,它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton):由层级结构的骨头组成,类似于人体骨骼蒙皮 (Mesh Skinning):将模型网格顶点绑定到骨骼上,使骨骼移动…...
关于 WASM:1. WASM 基础原理
一、WASM 简介 1.1 WebAssembly 是什么? WebAssembly(WASM) 是一种能在现代浏览器中高效运行的二进制指令格式,它不是传统的编程语言,而是一种 低级字节码格式,可由高级语言(如 C、C、Rust&am…...
