《计算机网络——自顶向下方法》精炼——1.4到1.7
三更灯火五更鸡,努力学习永不止。无惧困难与挑战,砥砺前行向成功。
文章目录
- 引言
- 正文
- 时延
- 排队时延
- 吞吐量
- 协议层次,服务模型(重点)
- 封装(重点)
- 网络安全(选看)
- 恶意软件的分类
- 僵尸网络
- 拒绝服务攻击(DOS)
- 弱点攻击,连接洪泛
- 带宽洪泛
- 分组嗅探
- IP哄骗
引言
计算机网络在这一学科中的重要性毋庸置疑,而黑皮书又是这一学科的教科书级经典,因此本书是计算机从业者的必读书之一。笔者用一个专栏来精炼这本书的知识,帮助想了解这方面知识的同学快速打下基础。
在该专栏中,笔者不会严格按照章节的顺序来讲述,而是会直接列出知识点并进行介绍,以帮助大家理解。
1.1-1.3节
正文
时延
时延大体上分为结点处理时延、排队时延、传输时延、传播时延。所有时延加起来称为节点总时延。
- 结点处理时延:每个路由器内处理到达分组的各种信息造成的时延。
- 排队时延:分组在路由器内排队造成的时延。
- 传输时延:路由器将一个分组的所有比特转发进传输链路造成的时延。
- 传播时延:分组在传输链路内传播的造成的时延。
在这几种时延中,排队时延需要重点介绍。
排队时延
将比特到达路由器缓存的速率设为B,将比特推出路由器缓存的速率设为A,则B/A被称为流量强度。
流量强度是个很关键的概念。下图表示流量强度与排队时延的关系,由于每个分组在队伍中位置不一样,因此排队时延不同,这里取平均排队时延。

我们分析一下这张图:
- 流量强度小于1时,随着其增加,平均排队时延显著增长,很好理解。
- 流量强度大于1时,平均排队时延为无限,因为缓存中的分组队伍会越来越长。因此无论什么时候,流量强度也不能大于1
吞吐量
从发送主机到接收主机传输时,接收主机在一瞬间内接收到数据的速率就是瞬时吞吐量,传输一整个文件时瞬时吞吐量的平均值就是平均吞吐量。
文件的平均吞吐量取决于主机之间的瓶颈链路。举个例子,制约一个工厂的流水线速度的一定是最慢的那个步骤。
协议层次,服务模型(重点)
在多层协议组成的服务模型中,发送主机中要传输的数据由上层协议加上一些他们想加上的信息(称为封装),并选择要传递的下层协议;在接收主机中,由下层协议首先接收数据,通过在接收主机中封装上的信息选择如何在本层协议中处理这份数据并选择合适的上层协议。
以网络使用者的角度来看,每一层协议能提供的服务不仅仅只是本层协议的特有服务,也包括下层协议提供的服务。
(在这里不理解也没关系,有印象就好,在之后的讲解中会逐渐加深各层协议之间如何通过信息传递而联系起来的。)
整个服务模型所有协议的集合称为协议栈。计算机网络协议栈共有七层,但因特网只配备了五层,剩下的两层需要应用程序的开发者按照需要自己编写。下图是两种协议栈的图片:

- 应用层:存储网络应用程序及应用层协议。应用层的信息分组称为报文。
- 运输层:发送主机的运输层将应用程序的报文汇总,封装上自己的信息;接受主机的运输层则将接收到的数据按照封装上的信息分给各个应用程序。经过封装产生的运输层的信息分组称为报文段。
- 网络层:网络层在抽象层面上实现了主机到主机之间的数据传输。经过封装产生的网络层信息分组称为数据报。
- 链路层:链路层协助网络层进行信息传输。在主机/路由器之间传输数据时,数据从网络层下放到链路层,到下一个路由器时再上传到网络层,经过处理后再下放到链路层,一直循环到目的主机。链路层封装的信息分组称为帧。
- 物理层:这一层的协议负责真正从物理层面以比特为单位传输数据。
在完整的七层OSI模型中,附加了表示层和会话层,在本书中只是简要介绍这两层。
- 表示层:使通信的应用程序能解释交换数据的含义
- 会话层:提供数据交换定界和同步功能。
封装(重点)
这一概念笔者在之前经常提到。总的来说,封装就是发送主机在协议栈中的每一层,协议都会为要运输的数据加上属于自己的信息,这就称作封装。封装上的数据称为首部字段。
网络安全(选看)
有很多方法能危害到网络安全,本书只介绍常见的知识点:
恶意软件的分类
恶意软件分为病毒和蠕虫,它们之间的主要区别是:病毒需要认为进行明显交互才能侵入计算机,而蠕虫不需要明显交互,因此更难防御。
僵尸网络
恶意程序感染主机后,会利用这些被感染的主机继续攻击其他主机,被感染的主机会形成一个网络,这个网络被称为僵尸网络。
拒绝服务攻击(DOS)
拒绝服务攻击(DOS):通过给网络程序发送恶意数据使其失去工作能力。DOS攻击分为弱点攻击,带宽洪泛(重点),连接洪泛
弱点攻击,连接洪泛
- 弱点攻击:通过攻击主机或服务器代码中的弱点,实现只用少量数据就能够瘫痪服务。
- 连接洪泛:向攻击主机发起很多很多不用的连接,使收攻击主机无法接收合法连接而瘫痪服务
带宽洪泛
带宽洪泛需要向被攻击主机一次性发送极大量的分组,单靠一个发送源无法发送如此大量分组,因此一般需要多个发送源,这就叫做分布式DOS(DDOS)攻击。
分组嗅探
若在无线传输设备的附近放置一台接受所有分组的接收机,就能得到该传输设备传输的所有信息,这就叫做分组嗅探。进行分组嗅探的机器叫做分组嗅探机。
防御分组嗅探的方法就是让传输的分组变得只能被自己人辨认,也就是加密。
IP哄骗
通过制作一个拥有任意源地址,分组内容或目的地址的分组,来让接收主机或路由器误认为这是来自另外一个用户(拥有被修改源地址的真正用户),这种行为称作IP哄骗。
我们需要利用端点鉴别机制来防御IP哄骗。(将在第8章学习端点鉴别)
——————————分割线——————————
我是霜_哀,在算法之路上努力前行的一位萌新,感谢你的阅读!码文不易,如果觉得好的话,可以关注一下,我会在将来带来更多更全面的算法讲解!
相关文章:
《计算机网络——自顶向下方法》精炼——1.4到1.7
三更灯火五更鸡,努力学习永不止。无惧困难与挑战,砥砺前行向成功。 文章目录 引言正文时延排队时延 吞吐量协议层次,服务模型(重点)封装(重点)网络安全(选看)恶意软件的分…...
消息队列 (Message Queue)
消息队列 What 消息队列 是消息的队列;是消息的临时缓冲;是发布/订阅模式的兄弟;在多个进程/线程间实现异步通讯模式。 Why 消息队列在多个进程/线程中实现了异步通讯模式。 这里我们先介绍下同步消息处理。对于同步消息处理࿰…...
JavaScript原型链污染学习记录
1.JS原型和继承机制 0> 原型及其搜索机制 NodeJS原型机制,比较官方的定义: 我们创建的每个函数都有一个 prototype(原型)属性,这个属性是一个指针,指向一个对象, 而这个对象的用途是包含可…...
顶级白帽黑客必备的十大黑客技术
1.熟悉Linux系统和命令行操作: Linux是黑客的基石,几乎所有黑客工具和技术都是在Linux平台上运行的,熟悉Linux系统和命令行操作是必须的。 2.掌握网络协议和TCP/IP模型: 了解TCP/IP模型、网络协议和通信流程是黑客攻击的基础&a…...
【关于认证鉴权一些概念梳理】
关于认证鉴权一些概念梳理 记录一些灵感瞬间聊聊Session,Cookie和Token三剑客的特性前后端分离登录中的springsecurity与不分离的异同三更up关于springSecurity的讲解B站知乎上关于springSecurity的讲解掘金大佬SpringSecurityJWT认证流程解析一个权限对应一个资源&…...
16.网络爬虫—字体反爬(实战演示)
网络爬虫—字体反爬 一字体反爬原理二字体反爬模块FonttoolsTTF文件 三FontCreator 14.0.0.2790FontCreatorPortable下载与安装 四实战演示五后记 前言: 🏘️🏘️个人简介:以山河作礼。 🎖️🎖️:Python领域…...
BOM概述
目录 什么是BOM 浏览器对象模型(Browser Object Model (BOM)) Window对象 一些常用方法 JavaScript Window Screen Window Screen Window Screen 高度 Window Screen 可用宽度 Window Screen 可用高度 Window Screen 色深 Window Screen 像素深…...
3.Docker实用技术
Docker实用篇 0.学习目标 1.初识Docker 1.1.什么是Docker 微服务虽然具备各种各样的优势,但服务的拆分通用给部署带来了很大的麻烦。 分布式系统中,依赖的组件非常多,不同组件之间部署时往往会产生一些冲突。在数百上千台服务中重复部署…...
群体无人机:协同作战的未来
摘要:本文将探讨群体无人机技术的发展及其在多个领域的应用,特别是在军事作战、救援任务和物流方面的潜力。我们将分析群体无人机在协同作战中的优势,以及如何通过协同控制和通信技术实现更高效的任务完成。 内容: 引言 简要介绍…...
如何在Windows AD域中驻留ACL后门
前言 当拿下域控权限时,为了维持权限,常常需要驻留一些后门,从而达到长期控制的目的。Windows AD域后门五花八门,除了常规的的添加隐藏用户、启动项、计划任务、抓取登录时的密码,还有一些基于ACL的后门。 ACL介绍 …...
LVGL移植——stm32f4
LVGL移植说明 移植LVGL版本:8.3.6 主控:STM32F407ZGT6 github链接:https://github.com/lvgl/lvgl.git 文章目录 LVGL移植说明STM32移植LVGL①需要的依赖文件②移植显示驱动文件③将文件加入工程当中④配置心跳④修改栈堆的空间⑤编译链接 STM…...
ASEMI代理ADP5054ACPZ-R7原装ADI车规级ADP5054ACPZ-R7
编辑:ll ASEMI代理ADP5054ACPZ-R7原装ADI车规级ADP5054ACPZ-R7 型号:ADP5054ACPZ-R7 品牌:ADI/亚德诺 封装:LFCSP-48 批号:2023 引脚数量:48 工作温度:-40C~125C 安装类型:表…...
TCP/IP相关面试题
1. 什么是TCP/IP协议?它的作用是什么? TCP/IP(Transmission Control Protocol/Internet Protocol)互联网中最常用的协议,是计算机网络通信的基础。由TCP协议和IP协议两部分组成。IP协议负责数据的传输和路由选择&#…...
MySQL数据库——MySQL存储过程是什么?
我们前面所学习的 MySQL 语句都是针对一个表或几个表的单条 SQL 语句,但是在数据库的实际操作中,经常会有需要多条 SQL 语句处理多个表才能完成的操作。 例如,为了确认学生能否毕业,需要同时查询学生档案表、成绩表和综合表&…...
消息队列中的事务消息
大家好,我是易安!今天我们谈一谈消息队列中的事务消息这个话题。 一说起事务,你可能自然会联想到数据库。我们日常使用事务的场景,绝大部分都是在操作数据库的时候。像MySQL、Oracle这些主流的关系型数据库,也都提供了…...
03. 路由参数.重定向.视图
学习要点: 1.路由参数 2.路由重定向 3.路由视图 本节课我们来开始进入学习路由的参数设置、重定向和路由的视图。 一.路由参数 1. 上一节课,我们已经学习了部分路由参数的功能,比如动态传递{id}; 2. 那么,有…...
Flowable入门
Flowable初体验 Flowable是什么 Flowable 是一个使用 Java 编写的轻量级业务流程引擎,常用于需要人工审批相关的业务,比如请假、报销、采购等业务。 为什么要使用工作流呢? 对于复杂的业务流程,通过数据库的状态字段难以控制和…...
Scala Option类型,异常处理,IO,高阶函数
Option类型 实际开发中, 在返回一些数据时, 难免会遇到空指针异常(NullPointerException), 遇到一次就处理一次相对来讲还是比较繁琐的. 在Scala中, 我们返回某些数据时,可以返回一个Option类型的对象来封装具体的数据,从而实现有效的避免空指针异常。S…...
unity进阶学习笔记:单例模式
游戏框架: 游戏框架一般包括消息框架,状态机,管理器,工具类。 消息框架指游戏物体之的通信框架,虽然unity引擎自带一套消息框架,但该框架只能用于父子物体之间通信,无法实现大部分非父子关系的…...
软件测试——性能指标
登录功能示例: 并发用户数500; 响应时间2S; TPS到500; CPU不得超过75%; 性能指标有哪些? 响应时间 并发用户数 TPS CPU 内存 磁盘吞吐量 网络吞吐量 移动端FPS 移动端耗电量 APP启动时间 性能…...
计算机毕业设计:Python二手车分析与定价系统 Django框架 可视化 线性回归 数据分析 机器学习 深度学习 AI 大模型(建议收藏)✅
博主介绍:✌全网粉丝10W,前互联网大厂软件研发、集结硕博英豪成立软件开发工作室,专注于计算机相关专业项目实战6年之久,累计开发项目作品上万套。凭借丰富的经验与专业实力,已帮助成千上万的学生顺利毕业,…...
MaaYuan自动化辅助工具高效配置避坑指南:零基础入门三步完成环境部署
MaaYuan自动化辅助工具高效配置避坑指南:零基础入门三步完成环境部署 【免费下载链接】MaaYuan 代号鸢 / 如鸢 一键长草小助手 项目地址: https://gitcode.com/gh_mirrors/ma/MaaYuan MaaYuan作为一款基于MaaFramework的自动化辅助工具,专为游戏日…...
手把手教你用王思鱼指纹浏览器(Windows版)绕过主流检测站点
实战指南:Windows指纹浏览器配置与主流检测站点绕过验证 指纹浏览器正逐渐成为数字身份管理领域的重要工具,它能有效解决多账号运营、隐私保护等场景下的浏览器指纹追踪问题。不同于传统虚拟机的笨重方案,这类工具通过精准修改浏览器底层参数…...
告别多显示器DPI混乱:SetDPI让Windows显示体验重获新生
告别多显示器DPI混乱:SetDPI让Windows显示体验重获新生 【免费下载链接】SetDPI 项目地址: https://gitcode.com/gh_mirrors/se/SetDPI 问题发现:当多显示器成为工作障碍 多显示器用户最常遇到的显示难题是什么?想象这样的场景&…...
从 ReAct 到 Workflow:基于云端 API 构建事件驱动的智能体
1. 什么是WorkFlow 之前咱们的用法是一种QueryEngine的用法,就是将大模型当成一个查询的工具在使用,而workflow是LlmaIndex的新一代编排引擎。 1.1 核心逻辑 LlamaIndex的workflow,本质上是一个事件驱动(Event-drivenÿ…...
揭秘R3nzSkin:如何为英雄联盟打造个性化视觉体验
揭秘R3nzSkin:如何为英雄联盟打造个性化视觉体验 【免费下载链接】R3nzSkin Skin changer for League of Legends (LOL) 项目地址: https://gitcode.com/gh_mirrors/r3n/R3nzSkin 你是否曾在英雄联盟对战中,因为默认视野限制而错过关键信息&#…...
暗黑破坏神2存档编辑器:3步搞定角色属性调整与物品管理
暗黑破坏神2存档编辑器:3步搞定角色属性调整与物品管理 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 您是否曾经因为误加属性点而让角色发展方向出错?是否为了刷一件稀有装备花费了数小时却一无所获&am…...
探索Ryujinx:在PC上免费畅玩Switch游戏的完整指南
探索Ryujinx:在PC上免费畅玩Switch游戏的完整指南 【免费下载链接】Ryujinx 用 C# 编写的实验性 Nintendo Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/ry/Ryujinx 你是否曾梦想在电脑上体验《塞尔达传说:王国之泪》的壮丽冒险…...
让经典游戏重获新生:d3d8to9如何终结Direct3D 8兼容性难题
让经典游戏重获新生:d3d8to9如何终结Direct3D 8兼容性难题 【免费下载链接】d3d8to9 A D3D8 pseudo-driver which converts API calls and bytecode shaders to equivalent D3D9 ones. 项目地址: https://gitcode.com/gh_mirrors/d3/d3d8to9 你是否还记得那些…...
避免任务饿死:QP/C框架下优先级调度的5个最佳实践
避免任务饿死:QP/C框架下优先级调度的5个最佳实践 在嵌入式系统开发中,任务调度效率直接影响系统性能和响应能力。QP/C框架作为事件驱动开发的利器,其优先级抢占机制在保证实时性的同时,也可能导致低优先级任务长期无法获得CPU资源…...
