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

devtools/2024/11/14 20:51:42/

线路: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.ppmy.cn/devtools/116040.html

相关文章

窗口框架frame(HTML前端)

一.窗口框架 作用&#xff1a;将网页分割为多个HTML页面&#xff0c;即将窗口分为多个小窗口&#xff0c;每个小窗口可以显示不同的页面&#xff0c;但是在浏览器中是一个完整的页面 基本语法 <frameset cols"" row""></frameset><frame…

R语言的基础知识R语言函数总结

R语言与数据挖掘&#xff1a;公式&#xff1b;数据&#xff1b;方法 R语言特征 对大小写敏感通常&#xff0c;数字&#xff0c;字母&#xff0c;. 和 _都是允许的(在一些国家还包括重音字母)。不过&#xff0c;一个命名必须以 . 或者字母开头&#xff0c;并且如果以 . 开头&…

【FPGA】FPGA芯片结构

目录 1 可编程输出/输出单元&#xff08;IOB&#xff09;2 可配置逻辑块&#xff08;CLB&#xff09;3 数字时钟管理模块&#xff08;DCM&#xff09;4 嵌入式块存储器&#xff08;BRAM&#xff09;5 布线资源6 内嵌功能模块&#xff08;专用IP单元&#xff09;6.1 PLL&#xf…

【DAY20240923】大模型--人工智能驱动的内容创作革命与挑战

大模型应用 前言--名词解释一、大模型幻觉二、AI通用大模型三、工业大模型四、语义大模型五、模型对齐六、知识图谱七、多模态八、NL2SQL九、DALL-E-2十、LLM十一、GAI十二、AIGC 前言–名词解释 大模型幻觉 AI通用大模型 工业大模型 语义大模型 模型对齐 知识图谱 多模态 NL2…

希尔排序(ShellSort)详解

希尔排序的底层是插入排序&#xff0c; 不了解插入排序的友友可以先看我下面这篇文章&#xff1a; 插入排序详解-CSDN博客 思路 就整体而言&#xff0c;希尔排序不过是多用了几次插入排序&#xff0c; 预排序→插入排序&#xff0c; 预排序的作用是让数组元素更接近于有序…

Redis的一些通用指令

首先我们需要先连接客户端服务器&#xff0c;此时我们需要通过redis-cli和redis服务器进行交互&#xff0c;输入ping来确保通路的流畅 &#xff08;一&#xff09;get和set redis中最核心的两个命令就是get和set&#xff0c;get就是根据key来取出对应value&#xff0c;set就是把…

react之jsx基础(1)概念和本质

文章目录 JSX 的基本概念1. **语法**2. **表达式**3. **属性**4. **子元素** JSX 的编译过程1. **转换成 JavaScript**2. **React 元素** JSX 的实际应用1. **组件定义**2. **组件嵌套** 总结 当然&#xff0c;以下是对 JSX 的详细讲解&#xff0c;包括其基本概念、语法、编译过…

Linux操作系统面试题记录

一、进程与线程 并发和并行的区别&#xff1f; 并发&#xff1a;一个cpu处理器处理多个任务&#xff1b; 并行&#xff1a;多个cpu处理器处理多个任务&#xff1b; 进程和线程是什么&#xff1f;区别&#xff1f;何时用线程何时用进程&#xff1f; Linux中其实没有进程线程…