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

北邮《计算机网络》蒋老师思考题及答案-传输层

蒋yj老师yyds!
答案自制,仅供参考,欢迎质疑讨论

问题一览

      • 传输层思考题
          • P2P和E2E的区别
          • 使用socket的c/s模式通信,流控如何反映到编程模型
          • 三次握手解决什么问题
          • 举一个两次握手失败的例子
          • 为什么链路层是两次握手而非三次?
          • 两军问题在TCP实践中怎么解决
          • 传输层怎么处理流控
          • 传输层拥塞控制算法的四个基本目标的含义
          • AIMD解决什么问题
          • TCP中如何调节某个TCP连接的发送速率并体现AIMD思想
          • 了解TCP拥塞控制算法的区别
          • TCP Tahoe和TCP Reno的区别
          • TCP选项NACK和SACK是如何提高效率的
          • 链路层丢包率10%会对TCP有什么影响
          • 现代互联网TCP可以做到效率接近90%吗
          • 两台主机间所有连接线路的链路层误码率均为0%,TCP就不会出现重传了吗
          • 理解TCP报头各个字段的用途
          • TCP报头Window最大取值65535,是不是意味着接收窗口最大只能说65535字节
          • Nagle解决了什么问题?优缺点
          • Clark解决了什么问题
          • TCP超时定时器是如何动态确定的
          • 当接收方缓冲区满,TCP通过什么机制通知发方别发了

传输层思考题

在这里插入图片描述

P2P和E2E的区别
  • 相邻 or 有子网
使用socket的c/s模式通信,流控如何反映到编程模型
  • 编程时cs双方自己定义了buffer
三次握手解决什么问题
  • 子网丢/重/乱的问题
举一个两次握手失败的例子
  • 链路上突然出现A对B握手的一个Seg(之前遗留的),B回复A,此时B已经建立连接,而A对此事毫不知情,这就产生了一个half-open的连接
为什么链路层是两次握手而非三次?
  • 因为链路层是p2p的,不会重复和乱序
两军问题在TCP实践中怎么解决
  • 对于先断开的一方,收到对方的FIN后发送ACK并等待一个TIME WAIT,在这个时间之内,如果对方继续发来FIN,那么继续回ACK。超时则关闭。对于后断开的一方,如果没收到ACK,就一直发送。
  • 如果产生了半开,那么经过一个固定时长自动关闭。
传输层怎么处理流控
  • AIMD
传输层拥塞控制算法的四个基本目标的含义
  • 预防
  • 高效
  • 公平
  • 收敛
AIMD解决什么问题
  • 快速找到公平点
TCP中如何调节某个TCP连接的发送速率并体现AIMD思想
  • 慢启动算法

了解TCP拥塞控制算法的区别
  • ACK Clock 确认时钟:通过使用一个确认时钟, TCP平滑输出流量和避免不必要的路由器队列。
  • Slow Start 慢启动:每个RTT内发送的数据包数目指数增长,使用确认时钟将发送端的传输速率与网络路径相匹配
  • Add Increase:当slow start后超过了slow start threshold, TCP 就从慢速启动切换到线性增加,每个RTT内,收一ACK发出一包,最后一个ACK连发两包。
  • Muilt Decrease: 当收到三个重复ACK后,cwin减半(快恢复)
  • Fast retransmission:当收到三个重复ACK后,门限减半,慢启动
  • Fast recovery:门限减半,cwin减半(具体做法:确认时钟)
TCP Tahoe和TCP Reno的区别
  • Tahoe用的fast retransmission

  • Reno用的fast recovery

TCP选项NACK和SACK是如何提高效率的
  • SACK (Selective ACKnowledgement) 选择确认:该确认列出了3个己接收的字节范围。有了这个信息,发送端在实现拥塞窗口时可以更直接地确定哪些数据包需要重传,并跟踪那些还在途中的数据包。
  • NACK ``:
链路层丢包率10%会对TCP有什么影响
  • TCP会认为子网拥塞,从而把发送速度降到很慢
现代互联网TCP可以做到效率接近90%吗
  • 能,《计算机网络(第5版)》 Tanenbaum & Wetherall 著 严伟 潘爱民 译 Page 456
    在这里插入图片描述
两台主机间所有连接线路的链路层误码率均为0%,TCP就不会出现重传了吗
  • 路由器可能发生拥塞,也有可能选择不合适的路由,导致超时
理解TCP报头各个字段的用途

在这里插入图片描述

  • 实验二中做了分析,此处略
TCP报头Window最大取值65535,是不是意味着接收窗口最大只能说65535字节
  • 不是,选项( Options )字段提供了一些可选项。P431
    在这里插入图片描述

在这里插入图片描述

Nagle解决了什么问题?优缺点
  • 用粘包的方式避免T层每次只传很少的字节导致各层开销占比很大
  • 优点:
  • 减小开销占比
  • 实现了self-clocking: ACK返回的越快,数据传输地也就越快
  • 使得单位时间内发送的报文段的数目更少
  • 缺点:某些消息不及时传送,对于应用层来说,响应变慢
Clark解决了什么问题
  • 愚蠢窗口(Silly Window Syndrome)
TCP超时定时器是如何动态确定的
  • 注意是超时定时器

  • 几个公式,由Jacobson贡献,第三个式子的系数4是 J 大佬认定的,没有为什么

  • S R T T = α S R T T 旧 + ( 1 − α ) R T T 本次 SRTT = \alpha SRTT_旧 + (1-\alpha) RTT_{本次} SRTT=αSRTT+(1α)RTT本次

  • R T T V A R = β R T T V A R 旧 + ( 1 − β ) ∣ S R T T − R T T 本次 ∣ RTTVAR = \beta RTTVAR_旧 + (1-\beta)|SRTT-RTT_{本次}| RTTVAR=βRTTVAR+(1β)SRTTRTT本次

  • R T O = S R T T + 4 × R T T V A R RTO = SRTT + 4 × RTTVAR RTO=SRTT+4×RTTVAR

当接收方缓冲区满,TCP通过什么机制通知发方别发了
  • 捎带window size

如果随后收方缓冲区空闲,收方如何通知

  • 窗口更新段
  • 窗口更新报文段是一个不包含数据的纯ACK(只有ACK标志位被置位), 用于通告发送端可以继续发送数据,纯ACK不会被重传, TCP必须采取相应措施来处理这些丢包

如果这个通知丢失,会导致发方长久等待吗

  • TCP对此主要有两个设计来避免死锁:

  • 发送端可以发送1字节的段,以便强制接收端重新宣告下一个期望的字节和窗口大小。这种

    数据包称为窗口探测(window probe )。

  • 持续计时器(persistence timer )的设计。当持续计时器超时后,发送端给接收端发送一个探询消息。接收端对探询消息的响应是将窗口大小告诉发送端。如果它仍然为0 ,则重置持续计时器,并开始下一轮循环。如果它非0 ,则现在可以发送数据了。

相关文章:

北邮《计算机网络》蒋老师思考题及答案-传输层

蒋yj老师yyds! 答案自制,仅供参考,欢迎质疑讨论 问题一览 传输层思考题P2P和E2E的区别使用socket的c/s模式通信,流控如何反映到编程模型三次握手解决什么问题举一个两次握手失败的例子为什么链路层是两次握手而非三次?…...

学懂C#编程:常用高级技术【元组的详细使用】——利用元组获取多个返回值

C#常用高级技术——利用元组获取多个返回值 在C# 7.0及更高版本中,您可以使用元组(Tuples)来实现这种返回多个值的方法。您提供的代码片段是正确的,它定义了一个名为Calculate的方法,该方法接受两个整数参数a和b&#…...

解决IDEA使用卡顿的问题,设置JVM内存大小和清理缓存

解决IntelliJ IDEA中卡顿问题,可以尝试以下几个常见且有效的步骤: 1 增加IDEA的JVM内存分配: 位于IDEA安装目录的bin文件夹下,找到对应的操作系统配置文件(idea64.exe.vmoptions(Windows)或id…...

Python爬虫从入门到入狱之爬取知乎用户信息

items中的代码主要是我们要爬取的字段的定义 class UserItem(scrapy.Item):id \ Field()name \ Field()account\_status \ Field()allow\_message\ Field()answer\_count \ Field()articles\_count \ Field()avatar\_hue \ Field()avatar\_url \ Field()avatar\_url\_template…...

apk反编译修改教程系列-----去除apk软件更新方法步骤列举 记录八种最常见的去除方法

在前面几期博文中 有说明去除apk软件更新的步骤方法。我们在对应软件反编译去除更新中要灵活运用。区别对待。同一个软件可以有不同的去除更新方法可以适用。今天的教程对于软件更新去除列举几种经常使用的修改步骤。 通过基础课程可以了解 1-----软件反编译更新去除的几种常…...

SpringMVC系列六: 视图和视图解析器

视图和视图解析器 💞基本介绍💞 自定义视图为什么需要自定义视图自定义试图实例-代码实现自定义视图工作流程小结Debug源码默认视图解析器执行流程多个视图解析器执行流程 💞目标方法直接指定转发或重定向使用实例指定请求转发流程-Debug源码…...

MySQL数据备份的分类

MySQL数据库的备份 在我们使用MySQL数据库的过程中,一些意外情况的发生,有可能造成数据的损失。例如,意外的停电,不小心的操作失误等都可能造成数据的丢失。 所以为了保证数据的安全与一致性,需要定期对数据进行备份。…...

node+nginx实现对react进行一键打包部署--windows版

文章目录 nodenginx实现对react进行一键打包部署--windows版1.功能展示及项目准备1.1功能展示 1.2 项目准备1.2.1技术点1.2.2安装相关配置(windows) 2.实现2.1 实现思路2.2 实现步骤2.1 项目准备2.1.1 创建env文件2.1.2 创建api/index.js文件2.1.3 添加解决跨域代码 2.2 项目实…...

【机器学习】基于Gumbel-Sinkhorn网络的“潜在排列问题”求解

1. 引言 1.1.“潜在排列”问题 本文将深入探索一种特殊的神经网络方法,该方法在处理离散对象时展现出卓越的能力,尤其是针对潜在排列问题的解决方案。在现代机器学习和深度学习的领域中,处理离散数据一直是一个挑战,因为传统的神经网络架构通常是为连续数据设计的。然而,…...

create-react-app创建的项目中设置webpack配置

create-react-app 创建的项目默认使用的是 react-scripts(存在于node_modules文件夹中)来处理开发服务器和构建,它内置了一些webpack相关配置。一般不会暴露出来给开发者,但是在有些情况下我们需要修改下webpack默认配置&#xff…...

【ai】tx2 nx :安装torch、torchvision for yolov5

torchvision 是自己本地构建的验证torchvision nvidia@tx2-nx:~/twork/03_yolov5/torchvision$ nvidia@tx2-nx:~/twork/03_yolov5/torchvision$ python3 Python 3.6.9 (default, Mar 10 2023, 16:46:00) [GCC 8.4.0] on linux Type "help", "copyright",…...

【报错】在终端中输入repo命令后系统未能识别这个命令

1 报错 已经使用curl命令来下载repo工具,但是在终端中输入repo命令后系统未能识别这个命令。 2 分析 通常是因为repo...

【机器学习】K-Means算法详解:从原理到实践

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 K-Means算法详解:从原理到实践引言1. 基本原理1.1 簇与距离度量1.2 …...

解决qiankun项目与子应用样式混乱问题

背景 qiankun项目用的是Vue2Antdesign2,但其中一个子应用用的是Vue3Antdesign4。集成之后发现子应用的样式混乱,渲染的是Antdesign2的样式。 解决 以下步骤在子应用里操作 1. 在main.js引入ConfigProvider ,在app全局注册ConfigProvider …...

黑产当前,如何识别异常图片?

在这个人人都是创作者的年代, UGC 已成为诸多平台的重要组成。 有利益的地方就会有黑产存在, 不少 UGC 平台都被黑产「薅羊毛」搞的心烦意乱, 用户传的图片,怎么就变成视频链接了? 正常运营的平台,为何流量…...

数据模型(models)

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 (1)在App中添加数据模型 在app1的models.py中添加如下代码: from django.db import models # 引入django.…...

【CS.AL】算法核心之贪心算法 —— 力扣(LeetCode)743. 网络延迟时间 - Dijkstra算法题解

文章目录 题目描述References 题目描述 743. 网络延迟时间 - 力扣(LeetCode) 有 N 个网络节点,标记为 1 到 N。 给定一个列表 times,其中 times[i] (u, v, w) 表示有一条从节点 u 到节点 v 的时延为 w 的有向边。 现在&#xf…...

25、架构-微服务的驱动力

微服务架构的驱动力可以从多方面探讨,包括灵活性、独立部署、技术异构性、团队效率和系统弹性等。 灵活性和可维护性 灵活性是微服务架构的一个主要优势。通过将单体应用拆分成多个独立的微服务,开发团队可以更容易地管理、维护和更新各个服务。每个微…...

JeecgFlow事件网关概念及案例

事件网关 通常网关基于连线条件决定后续路径,但事件网关有所不同,其基于事件决定后续路径。事件网关的每条外出顺序流都需要连接一个捕获中间事件。 事件网关只有分支行为,流程的走向完全由中间事件决定。可以从多条候选分支中选择事件最先达…...

使用鸿蒙HarmonyOs NEXT 开发 快速开发 简单的购物车页面

目录 资源准备:需要准备三张照片:商品图、向下图标、金钱图标 1.显示效果: 2.源码: 资源准备:需要准备三张照片:商品图、向下图标、金钱图标 1.显示效果: 定义了一个购物车页面的布局&#x…...

iOS 中 attribute((constructor)) 修饰的函数

开发环境声明:此文描述的 attribute((constructor)) 特指使用 Objective-C 开发 iOS、MacOS,Swift 语言不支持这种属性修饰符。 初识 attribute((constructor)) 在 Objective-C 开发中,attribute((constructor)) 是一个 GCC 和 Clang 编译器…...

原生js实现图片预览控件,支持丝滑拖拽,滚轮放缩,放缩聚焦

手撸源代码如下&#xff1a;注释应该很详细了&#xff0c;拿去直用 可以放到在线编辑器测试&#xff0c;记得修改图片路径 菜鸟教程在线编辑器 <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" conten…...

C语言入门课程学习笔记9:指针

C语言入门课程学习笔记9 第41课 - 指针&#xff1a;一种特殊的变量实验-指针的使用小结 第42课 - 深入理解指针与地址实验-指针的类型实验实验小结 第43课 - 指针与数组&#xff08;上&#xff09;实验小结 第44课 - 指针与数组&#xff08;下&#xff09;实验实验小结 第45课 …...

借助 Cloudflare D1 和 Drizzle 在 Astro 上实现全栈

使用 Cloudflare D1 和 Drizzle ORM 将后端添加到 Astro 项目的分步指南 文章目录 安装 Astro添加 Cloudflare 适配器部署到 Pages安装 wrangler 并登录创建 D1 数据库创建 wrangler.toml 文件将 .wrangler 添加到 .gitignore更新 astro.config.ts安装 Drizzle 依赖项创建 driz…...

SUSE linux 15的网络管理

1 手工配置网络 wicked提供了一种新的网络配置框架。自SUSE 12起&#xff0c;SUSE使用了新的网络管理工具wicked&#xff0c;这个是区别与其他常见发行版的。常见的发行版目前大多使用的是NetworkManager服务进行网络管理。 1.1 wicked网络配置 传统网络接口管理面临的挑战之…...

海康威视-下载的录像视频浏览器播放问题

目录 1、播放异常比对 2、视频编码检查 2.1、正常视频解析 2.2、海康视频解析 2.3、比对工具 3、转码 3.1、maven依赖 3.2、实现代码 4、验证 在前面的文章&#xff08;海康威视-按时间下载录像文件_海康威视 sdk 下载录像 大小0-CSDN博客&#xff09;中&#xff0c;通…...

养殖自动化管理系统:开启智慧养殖新篇章

在现代农业的快速演进中&#xff0c;养殖业正经历一场前所未有的技术革命。养殖自动化管理系统&#xff0c;作为这场变革的前沿科技&#xff0c;正逐步成为推动行业高效、环保、可持续发展的关键力量。本文将深入探讨自动化养殖系统如何通过精准管理、智能监控、数据驱动决策&a…...

SmartEDA革新来袭:融合Multisim与Proteus精髓,引领电子设计新纪元!

在电子设计领域&#xff0c;每一次技术的革新都如同春风化雨&#xff0c;滋润着设计师们的心田。今天&#xff0c;我们迎来了一个划时代的电子设计自动化&#xff08;EDA&#xff09;工具——SmartEDA&#xff0c;它不仅融合了业界知名的Multisim和Proteus的精华&#xff0c;更…...

【FFmpeg】AVFormatContext结构体

【FFmpeg】AVFormatContext结构体 1.AVFormatContext结构体1.2 const struct AVInputFormat *iformat1.3 const struct AVOutputFormat *oformat 参考&#xff1a; FFMPEG结构体分析&#xff1a;AVFormatContext 示例工程&#xff1a; 【FFmpeg】调用ffmpeg库实现264软编 【FF…...

【SpringSecurity】认证与鉴权框架SpringSecurity——授权

目录 权限系统的必要性常见的权限管理框架SpringSecurity授权基本流程准备脚本限制访问资源所需权限菜单实体类和Mapper封装权限信息封装认证/鉴权失败处理认证失败封装鉴权失败封装配置SpringSecurity 过滤器跨域处理接口添加鉴权hasAuthority/hasAnyAuthorityhasRole/​ hasA…...