当前位置: 首页 > news >正文

《计算机网络——自顶向下方法》精炼——1.4到1.7

三更灯火五更鸡,努力学习永不止。无惧困难与挑战,砥砺前行向成功。

文章目录

  • 引言
  • 正文
    • 时延
      • 排队时延
    • 吞吐量
    • 协议层次,服务模型(重点)
    • 封装(重点)
    • 网络安全(选看)
      • 恶意软件的分类
      • 僵尸网络
      • 拒绝服务攻击(DOS)
        • 弱点攻击,连接洪泛
        • 带宽洪泛
      • 分组嗅探
      • IP哄骗

引言

计算机网络在这一学科中的重要性毋庸置疑,而黑皮书又是这一学科的教科书级经典,因此本书是计算机从业者的必读书之一。笔者用一个专栏来精炼这本书的知识,帮助想了解这方面知识的同学快速打下基础。
在该专栏中,笔者不会严格按照章节的顺序来讲述,而是会直接列出知识点并进行介绍,以帮助大家理解。
1.1-1.3节

正文

时延

时延大体上分为结点处理时延、排队时延、传输时延、传播时延。所有时延加起来称为节点总时延。

  1. 结点处理时延:每个路由器内处理到达分组的各种信息造成的时延。
  2. 排队时延:分组在路由器内排队造成的时延。
  3. 传输时延:路由器将一个分组的所有比特转发进传输链路造成的时延。
  4. 传播时延:分组在传输链路内传播的造成的时延。

在这几种时延中,排队时延需要重点介绍。

排队时延

将比特到达路由器缓存的速率设为B,将比特推出路由器缓存的速率设为A,则B/A被称为流量强度。
流量强度是个很关键的概念。下图表示流量强度与排队时延的关系,由于每个分组在队伍中位置不一样,因此排队时延不同,这里取平均排队时延。
在这里插入图片描述
我们分析一下这张图:

  1. 流量强度小于1时,随着其增加,平均排队时延显著增长,很好理解。
  2. 流量强度大于1时,平均排队时延为无限,因为缓存中的分组队伍会越来越长。因此无论什么时候,流量强度也不能大于1

吞吐量

从发送主机到接收主机传输时,接收主机在一瞬间内接收到数据的速率就是瞬时吞吐量,传输一整个文件时瞬时吞吐量的平均值就是平均吞吐量。
文件的平均吞吐量取决于主机之间的瓶颈链路。举个例子,制约一个工厂的流水线速度的一定是最慢的那个步骤。

协议层次,服务模型(重点)

在多层协议组成的服务模型中,发送主机中要传输的数据由上层协议加上一些他们想加上的信息(称为封装),并选择要传递的下层协议;在接收主机中,由下层协议首先接收数据,通过在接收主机中封装上的信息选择如何在本层协议中处理这份数据并选择合适的上层协议。
以网络使用者的角度来看,每一层协议能提供的服务不仅仅只是本层协议的特有服务,也包括下层协议提供的服务。
(在这里不理解也没关系,有印象就好,在之后的讲解中会逐渐加深各层协议之间如何通过信息传递而联系起来的。)
整个服务模型所有协议的集合称为协议栈。计算机网络协议栈共有七层,但因特网只配备了五层,剩下的两层需要应用程序的开发者按照需要自己编写。下图是两种协议栈的图片:
在这里插入图片描述

  1. 应用层:存储网络应用程序及应用层协议。应用层的信息分组称为报文。
  2. 运输层:发送主机的运输层将应用程序的报文汇总,封装上自己的信息;接受主机的运输层则将接收到的数据按照封装上的信息分给各个应用程序。经过封装产生的运输层的信息分组称为报文段。
  3. 网络层:网络层在抽象层面上实现了主机到主机之间的数据传输。经过封装产生的网络层信息分组称为数据报。
  4. 链路层:链路层协助网络层进行信息传输。在主机/路由器之间传输数据时,数据从网络层下放到链路层,到下一个路由器时再上传到网络层,经过处理后再下放到链路层,一直循环到目的主机。链路层封装的信息分组称为帧。
  5. 物理层:这一层的协议负责真正从物理层面以比特为单位传输数据。

在完整的七层OSI模型中,附加了表示层和会话层,在本书中只是简要介绍这两层。

  1. 表示层:使通信的应用程序能解释交换数据的含义
  2. 会话层:提供数据交换定界和同步功能。

封装(重点)

这一概念笔者在之前经常提到。总的来说,封装就是发送主机在协议栈中的每一层,协议都会为要运输的数据加上属于自己的信息,这就称作封装。封装上的数据称为首部字段。

网络安全(选看)

有很多方法能危害到网络安全,本书只介绍常见的知识点:

恶意软件的分类

恶意软件分为病毒和蠕虫,它们之间的主要区别是:病毒需要认为进行明显交互才能侵入计算机,而蠕虫不需要明显交互,因此更难防御。

僵尸网络

恶意程序感染主机后,会利用这些被感染的主机继续攻击其他主机,被感染的主机会形成一个网络,这个网络被称为僵尸网络。

拒绝服务攻击(DOS)

拒绝服务攻击(DOS):通过给网络程序发送恶意数据使其失去工作能力。DOS攻击分为弱点攻击,带宽洪泛(重点),连接洪泛

弱点攻击,连接洪泛

  1. 弱点攻击:通过攻击主机或服务器代码中的弱点,实现只用少量数据就能够瘫痪服务。
  2. 连接洪泛:向攻击主机发起很多很多不用的连接,使收攻击主机无法接收合法连接而瘫痪服务

带宽洪泛

带宽洪泛需要向被攻击主机一次性发送极大量的分组,单靠一个发送源无法发送如此大量分组,因此一般需要多个发送源,这就叫做分布式DOS(DDOS)攻击。

分组嗅探

若在无线传输设备的附近放置一台接受所有分组的接收机,就能得到该传输设备传输的所有信息,这就叫做分组嗅探。进行分组嗅探的机器叫做分组嗅探机。
防御分组嗅探的方法就是让传输的分组变得只能被自己人辨认,也就是加密。

IP哄骗

通过制作一个拥有任意源地址,分组内容或目的地址的分组,来让接收主机或路由器误认为这是来自另外一个用户(拥有被修改源地址的真正用户),这种行为称作IP哄骗。
我们需要利用端点鉴别机制来防御IP哄骗。(将在第8章学习端点鉴别)

——————————分割线——————————
我是霜_哀,在算法之路上努力前行的一位萌新,感谢你的阅读!码文不易,如果觉得好的话,可以关注一下,我会在将来带来更多更全面的算法讲解!

相关文章:

《计算机网络——自顶向下方法》精炼——1.4到1.7

三更灯火五更鸡,努力学习永不止。无惧困难与挑战,砥砺前行向成功。 文章目录 引言正文时延排队时延 吞吐量协议层次,服务模型(重点)封装(重点)网络安全(选看)恶意软件的分…...

消息队列 (Message Queue)

消息队列 What 消息队列 是消息的队列;是消息的临时缓冲;是发布/订阅模式的兄弟;在多个进程/线程间实现异步通讯模式。 Why 消息队列在多个进程/线程中实现了异步通讯模式。 这里我们先介绍下同步消息处理。对于同步消息处理&#xff0…...

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启动时间 性能…...

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…...

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...

Docker 离线安装指南

参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性,不同版本的Docker对内核版本有不同要求。例如,Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本,Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...

【网络】每天掌握一个Linux命令 - iftop

在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

TDengine 快速体验(Docker 镜像方式)

简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...

大话软工笔记—需求分析概述

需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...

MFC内存泄露

1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...

Opencv中的addweighted函数

一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...

【算法训练营Day07】字符串part1

文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接&#xff1a;344. 反转字符串 双指针法&#xff0c;两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...

css的定位(position)详解:相对定位 绝对定位 固定定位

在 CSS 中&#xff0c;元素的定位通过 position 属性控制&#xff0c;共有 5 种定位模式&#xff1a;static&#xff08;静态定位&#xff09;、relative&#xff08;相对定位&#xff09;、absolute&#xff08;绝对定位&#xff09;、fixed&#xff08;固定定位&#xff09;和…...