计算机网络传输层---课后综合题

线路:TCP报文下放到物理层传输。

TCP报文段中,“序号”长度为32bit,为了让序列号不会循环,则最多能传输2^32B的数据,则最多能传输:2^32/1500B个报文

结果:

吞吐率=一个周期内传输的数据/周期时间

假设窗口大小为xbit,则一个周期内传输的数据能传输xbit数据

周期时间=发送端的发送时延+A到B的传播时延+确认报文的发送时延(忽略)+确认报文的传播时延=x/256k + (128*10^-3 )*2

x=2^16bit=2^13B

注意两点:

1.数据偏移表示的就是TCP首部长度,TCP由TCP首部和数据部分组成,数据偏移表示的是TCP数据部分距离起始有多远,那就是首部长度了。单位为4B,所以首部长度要是4B的整数倍。

补充:IP片偏移单位为8B,片偏移的数据部分要为8B的整数倍。

2.可以通过端口查看TCP连接使用了什么协议?是客户端到服务器还是服务器到客户端?(客户端口随意,服务器端口固定)

例如上面例子,源端口:3368,目的端口:21

那么使用的就是FTP协议,并且这个报文段是从客户端发送到服务器端的。

首先分析一下IP分组前40B的内容:

由于TCP分组下放到网络层,会添加IP首部,所以IP的组成:20B的首部+数据部分,这个数据部分就是TCP的内容。

所以,对于一个IP分组:上面一整行共20B,表示IP首部,下面一整行表示TCP内容。

IP首部结构中一行=32bit=4B,对应的就是 "45 00 00 30”这样的一段:

1.1

哪几个是由H发送的:

H的IP地址为192.168.0.8,转化为16进制:C0 A8 00 08

查看IP首部的结构,源IP地址为192.168.0.8的IP分组有:1,3,4

也可以通过标识判断:发送方每产生一个IP数据报,标识字段自动+1。

那么,服务器就先后发送了2,5号IP分组,服务器S不仅仅只是和主机H进行通信,所以其标识字段是不连续的。

1.2

TCP连接的建立,是主机H与服务器S刚通信时就必须完成的。所以三次握手应该是主机H与服务器S通信的前3个IP分组:1,2,3

也可以通过IP首部首部的标志字段判断:

1:SYN=1,ACK=0

2:SYN=1,ACK=1

3:SYN=0,ACK=1

3,4号SYN,ACK和seq相同,为什么不是4:因为标识字段3:019c ,4:019d,说明H先发送3号,而TCP的建立一定是H先发送的两个IP分组建立的。

1.3

以太网数据帧长最少64字节,根据以太网数据帧的结构,那么数据部分(即IP数据报)最少要有46B。

根据IP首部“总长度”字段:

1,2号为30H=48B,3,5号为28H=40B,需要填充。

2.1 

TCP建立连接时,只有最后一次连接能携带数据,也就是在1,2,3中只有3能携带数据,H发送的是1,3,4号IP分组,所以能携带数据的是3,4号分组。

携带的数据部分怎么算:IP分组的总长度 - IP首部 - TCP首部 (TCP的“数据偏移”字段)

拿第一个分组说,其总长度为30H,单位1B,总长度=30H=48B;IP首部长度为5H,单位是4,所以IP首部长度为5*4=20B,TCP首部长度为7H,单位为4,4*7=28B,数据部分:

48-20-28=0,所以第一个IP分组不携带数据。

其他同理,得发送的数据:

0+0+16B=16B

也可以从TCP的“确认号”来分析,确认号表示服务器S期待收到主机H下次发送的报文序号是多少。从刚开始的84 6b 41 b6到84 6b 41 d6,两者相减也能得到16B

3.1

经过多少路由器看“生存时间”字段:

刚开始S发出时生存时间字段为40H,发送给H的第一个分组“生存时间”字段值为31H

40H-31H=FH=15,则表示经过了15个路由器。

1

H3请求建立TCP连接,虽然这个过程不携带数据,但是会消耗一个seq。

所以H3从序号101开始发送数据。

以MSS大小的段向S发送数据,发送窗口取min{拥塞窗口,接收窗口}

当发送方返回对8个报文段的确认时,拥塞窗口变为16,而此时的接收窗口为5,取最小值,所以下次发送5个报文段

2.1

当H3收到8个确认段时,说明S已经收到了8个TCP段,所以通告给H3的接收窗口是20-8=12。

2.2

慢开始阶段,H3每收到一个确认报文段,拥塞窗口+1,例如:

主机发送1个报文,收到1个报文段确认,拥塞窗口变为1+1=2。主机发送2个报文段,收到2个报文段的确认,拥塞窗口变为2+2=4,所以我们看到的是拥塞窗口成倍增加的现象

这里收到了8个确认段,所以主机H3的拥塞窗口为8+1=9,发送窗口=min{9,12}=9。

补充:而在拥塞避免阶段,每收到一个确认报文段,只会时拥塞窗口+1/n(n分之1)的MSS。因为一个轮次中有n个确认帧,所以拥塞窗口+(n*1/n=1)个MSS。

3

刚开始seq=101,总共发送了20K的数据,所以发送窗口为0时,下一个数据段序号是:

20*1024+101=20581

平均传输速率,20KB数据,总共往返5轮:

20KB/(5*200ms)=20KB/s

4.最短时间表示:H3给服务器发送断开连接请求,服务器确认后,也不再发送数据。

时间为1.5*MSS=1.5*200=300ms

(1)持久,非持久,控制连接

(2)第一个字节序号:101;第二次挥手seq:102+18000=18102

(3)H收到2101的确认段时,拥塞窗口+1:则为2+1=3MSS

由于拥塞控制初始阈值为4MSS,所以当接收到7101确认帧后,拥塞窗口增加为5MSS

(4)数据总大小18000B,总共6个传输轮次:

18000B/60ms=0.3MB/s=2.4Mb/s

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/428688.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络协议全景:Linux环境下的TCP/IP、UDP

目录 1.UDP协议解析1.1.定义1.2.UDP报头1.3.特点1.4.缓冲区 2.TCP协议解析2.1.定义2.2.报头解析2.2.1.首部长度(4位)2.2.2.窗口大小2.2.3.确认应答机制2.2.4.6个标志位 2.3.超时重传机制2.4.三次握手四次挥手2.4.1.全/半连接队列2.4.2.listen2.4.3.TIME_…

加速开发体验:为 Android Studio 设置国内镜像源

Android Studio 是由 JetBrains 开发的一个官方 IDE,用于 Android 应用开发。由于网络原因,直接从 Google 的服务器下载可能会比较慢或者不稳定。幸运的是,我们可以通过配置国内镜像源来加速下载和更新。 文章目录 💯 修改 Gradle…

Python 从入门到实战23(属性property)

我们的目标是:通过这一套资料学习下来,通过熟练掌握python基础,然后结合经典实例、实践相结合,使我们完全掌握python,并做到独立完成项目开发的能力。 上篇文章我们讨论了类的定义、使用方法的相关知识。今天我们将学…

开源 AI 智能名片链动 2+1 模式 O2O 商城小程序在社群活动中的应用与时机选择

摘要:本文探讨了开源 AI 智能名片链动 21 模式 O2O 商城小程序在社群经济中的重要性,着重分析了如何借助该小程序适时举办大型活动以维持和引爆社群活跃度。通过对活动时机选择的研究,强调了针对社群用户量身定制活动时机的必要性&#xff0c…

GD32F103单片机-EXTI外部中断

GD32F103单片机-EXTI外部中断 一、EXTI及NVIC介绍二、编程实验2.1 相关库函数2.2 实验代码 一、EXTI及NVIC介绍 GD32和STM32的EXTI基本相似,具体见STM32F1单片机-外部中断GD32的EXTI包括20个相互独立的边沿检测电路请求产生中断或事件,4位优先级配置寄存…

C++中的new与delete

目录 1.简介 2.底层 1.简介 new是升级版的malloc,它会先开空间再去调用构造函数。 delete是升级版的free,它会先调用析构函数再free掉空间。 class A { public:A(int a10, int b10){a a1;b b1;}private:int a;int b; };int main() {//new会先开空间…

Java代码审计篇 | ofcms系统审计思路讲解 - 篇4 | XXE漏洞审计

文章目录 Java代码审计篇 | ofcms系统审计思路讲解 - 篇4 | XXE漏洞审计0. 前言1. XXE代码审计【有1处】1.1. 搜索JRXmlLoader1.1.1. JRAntApiWriteTask1.1.2. JRAntUpdateTask1.1.3. TableReportContextXmlRule1.1.4. JasperCompileManager【存在漏洞】 1.2. 搜索XMLReader1.2…

并查集LRU cache

并查集的定义 将n个不同的元素划分成一些不相交的集合。开始时,每个元素自成一个单元素集合,然后按一定的规律将归于同一组元素的集合合并。在此过程中要反复用到查询某一个元素归属于那个集合的运算。适合于描述这类问题的抽象数据类型称为并查集(unio…

Qt (19)【Qt 线程安全 | 互斥锁QMutex QMutexLocker | 条件变量 | 信号量】

阅读导航 引言一、互斥锁1. QMutex(1)基本概念(2)使用示例基本需求⭕thread.h⭕thread.cpp⭕widget.h⭕widget.cpp 2. QMutexLocker(1)基本概念(2)使用示例 3. QReadWriteLocker、QR…

string类(C++)

哈喽各位!,久违了,最近怎么样捏,本次进入C的string类,加油加油呀! 随记:鼓励创新,宽容失败! 1.标准库的string类 1.1string类的了解 string的文献参考链接-->strin…

Buck变换器闭环控制,simulink仿真模型(适合初学者学习)

Buck变换器,又称为降压斩波器,是一种常见的DC-DC转换器,广泛应用于电源管理领域。它通过开关元件(通常是MOSFET或BJT)的导通与截止,改变输入电压到负载的平均电压,从而实现电压的降低。在实际应…

828华为云征文——使用Flexus云服务器X实例CentOS镜像下创建MySQL服务器教程

一、概述 1.1 前言 当前正值华为云盛大的828 B2B企业庆典,其中Flexus X实例的特惠活动尤为吸引人眼球。对于追求极致算力表现,并期望在自建MySQL数据库、Redis缓存系统及Nginx服务器部署上获得卓越性能的企业用户而言,这无疑是一个不可多得的…

SpringCloud (1) 服务拆解

1 服务拆解和治理 1.1 服务拆解 微服务的核心就是服务拆分,将传统的大项目拆分为多个微型服务(服务或微服务),实现服务之间"高内聚(微服务职责单一),低耦合(微服务功能相对独立)"的目的 (1) 水平(横向)拆分:先搭出拆分框架,比如【公共服务】(比如:common服务,client…

Python数据分析与可视化(Python绘图详解)

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

轻量级流密码算法Trivium

轻量级流密码算法Trivium 0x0 Trivium算法简介 Trivium算法是由C.D Canniere和B.Preneel共同设计的一套对称加密算法,Trivium密码算法采用了分组密码和非线性反馈移位寄存器的设计思路。该密码算法总共288比特的内部状态,其中有…

数据篇| 关于Selenium反爬杂谈

友情提示:本章节只做相关技术讨论, 爬虫触犯法律责任与作者无关。 LLM虽然如火如荼进行着, 但是没有数据支撑, 都是纸上谈兵, 人工智能的三辆马车:算法-数据-算力,缺一不可。之前写过关于LLM微调文章《微调入门篇:大模型微调的理论学习》、《微调实操一: 增量预训练(Pretrai…

【手撕算法】快速排序(递归分治法)Python实现

一、算法 class Solution:def Partition(self, nums, low, high):pivotkey nums[low] # 元素copied, nums[low]空了出来while low < high:while low < high and nums[high] > pivotkey:high high - 1 # 直到找到一个nums[high]<pivotkey位置nums[low] nums[h…

Matlab simulink建模与仿真 第十七章(补充离散库和补充数学库)

参考视频&#xff1a;simulink1.1simulink简介_哔哩哔哩_bilibili 一、补充离散库和补充数学库中的模块概览 1、补充离散库 注&#xff1a;每个版本的补充离散库不一定相同&#xff0c;也不是每个版本的库都有如上所有模块。 2、补充数学库 二、离散直接传递函数Ⅱ模块 1、…

学生护眼台灯哪个品牌比较好?五款性价比高的学生护眼台灯

现在的孩子学习压力很大&#xff0c;在学校课程已经塞满了大半天&#xff0c;课后的作业更是不少&#xff0c;空闲时间还需要去课后补习班的数不胜数。用眼的次数非常的高&#xff0c;眼睛很容易感到疲惫&#xff0c;这时候我们一个宝贝大有作用&#xff0c;就是我们的护眼台灯…

软件测试 BUG 篇

目录 一、软件测试的生命周期 二、BUG 1. bug的概念 2. 描述bug的要素 3. bug的级别 4. bug的生命周期 5. 与开发产生争执怎么办&#xff1f;&#xff08;面试高频考题&#xff09; 5.1 先检查自身&#xff0c;是否bug描述不清楚 5.2 站在用户角度考虑并抛出问题 5.3 …