计算机网络第五部分--传输层

本文深入解析计算机网络中的传输层概念,包括传输层的作用、常见端口号、UDP与TCP两大协议的特点及工作原理,如UDP的校验方式、TCP的三次握手与四次挥手等过程。

其他章节笔记
计算机网络概述第一部分
计算机网络第二部分–物理层
计算机网络第三部分–数据链路层
计算机网络第四部分–网络层
计算机网络第五部分–传输层
计算机网络第六部分–应用层

1.概述

1.1传输层的意义

网路层可以把数据从一个主机传送到另一个主机,但是没有和进程建立联系。
传输层就是讲进程和收到的数据联系到一起,十数据能够为应用服务。
所以说传输层是主机才有的层次
传输层

1.2传输层的两个协议

传输层的两个协议

1.3传输层的寻址和端口

端口号只用于计算机辨别本地进程,总共有2^16=65536中端口号,端口号有很多种,不能随便使用。
传输层的寻址与端口

1.3.1常见的应用程序端口号

传输层的寻址与端口号

2.UDP协议

2.1UDP概述

注释:因为UDP一次发送一个完整报文不会分片,所以需要应用层传输过来的数据不要太大,否则网络层分片任务就很重,但是也不能太小,不然效率较低。
UDP适合一些实时应用,因为实时应用延迟要求高,需要立即响应。
用户数据报协议UDP概述

2.2UDP首部格式

UDP首部格式
分用时,找不到对应的目的端口号就丢弃报文,并发给发送方OCMP“端口不可达”差错报告报文。

2.2.1UDP的校验位构成

这里的伪首部只是用来计算检验和的,计算完了就丢弃,可以见下UDP的校验方式。
UDP校验

2.2.2UDP校验方式

总结一下步骤:
在发送端的时候:
1.就是讲每一行(4字节)拆分成两部分,左右平均2字节大小,将这两字节数据写成二进制,那2字节一共需要2*8=16位。此时检验和没有计算,默填充0,同时如果数据字段不整齐,则用0补齐,这样就可以写出及时航二进制数,如图中方所示。
2.计算着几十行二进制数按二进制反码运算求和,二进制运算可以参考二进制反码求和运算
得到的最后检验和再反码,之后将反码之后的放入原来的检验和字段
在接收端的时候不同是,此时检验和字段不是0了
按照发送端的步奏再将所有数据写成二进制进行二进制反码运算求和
如果最后得到结果全是1就是没问题,否则丢弃
UDP校验

3.TCP协议

3.1TCP协议的特点

TCP必须要建立连接之后才可以进行数据交换,所以TCP是面向连接的
TCP协议的特点
TCP传输数据是随机切割数据的
TCP协议的特点

3.2TCP报文段的首部

注释:见上图,可以看到TCP是将数据随机分割后加上TCP头传输的,所以序号就是为了标记这些随机分割之后的数据,这里把第一个字节的编号当成序号
确认号就是收到的之后做一下标记,代表这之前的都收到了,希望收到的下一编号的数据就是确认号打头的那个数据
偏移量就是为了标记一下距离TCP开始多少是数据,这里的单位是4B,这个偏移量就是TCP首部长度
TCP报文段首部格式
窗口就是接收方告诉发送方,还有多少地方(缓存)可以放数据
紧急指针就是告诉TCP从那里到哪里是紧急数据
TCP报文段首部格式

3.2.1TCP的六个控制位

紧急位URG
URG的特点是让数据插队,URG=1的就会在缓存中被提前到第一个传输
URG紧急位
URG
确认位ACK
确认位ACK
推送位PSH
就是接收端的URG,将PSH=1的数据尽快接受
注意一下,如果没有PSH,一般都是接收方缓存满了再将数据发送到主机
复位RST
复位RST
同步位YSN
A和B主机要建立连接,就A先发送一个报文,其中SYN=1
B收到之后也恢复一个SYN=1的报文,代表接受连接
同步位SYN
终止位FIN
终止位FIN

3.3TCP连接管理

3.3.1TCP三次握手(建立连接)

注释:
第一段的意思是
SYN=1:(A)要建立连接了!
seq=x(随机):因为还没有数据,所以些什么都无所谓

第二段的意思是
SYN=1:我(B)同意你(A)建立连接!
ACK=1:连接建立了,之后的ACK都必须置为1
seq=y(随机):因为还没有数据,所以写什么都无所谓
ack=x+1:之前说发送方(A)说发送的第x位数据(虽然发送发是瞎说的),所以我(B)要的是x+1位数据

第三段的意思是
SYN=0:SYN只有建立连接时才位1,其他时候均设置为0
ACK=1:连接建立了,之后的ACK必须都设置为1
seq=x+1:我(A)发送的报文第一个字节就是x+1
ack=y+1:之前接受方(B)说发送的是第y为数据(虽然接收方是瞎说的),所以我(B)要的是y+1数据

注意一下,TCP是双向的,所以不存在绝对不对的发送方和接受方,这里的两台主机都同时是发送方和接受方
TCP的连接建立
TCP三次握手特定导致的SYN洪泛攻击
SYN洪泛攻击

3.3.2TCP四次挥手(连接释放)

注释:第一段的是意思是
FIN=1:(A)要释放连接了!
seq=u,发送好多数据,治理只是用u替代一下,这里u是有确定值的

第二段的意思是
ACK=1:连接建立了,之后的ACK必须都置为1
seq=v:发了好多数据,这里只是用v指代一下,这里v是有确定值的
ack=u+1:之前发送方(A)说发送的是第u位数据,所以我(B)要的是u+1数据(尽管此时A已经决定释放连接了)

第三段的意思是
FIN=1:(B)要释放连接了!
ACK=1,连接建立了之后的ACK必须都置为1
seq=w:发了好多数据,这里只是用w指代一下,这里w是有确定值的
ack=u+1:之前发送方(A)说的是第u位数据,所以我(B)要的是u+1位数据(因为A直接不发数据了,所以第二段和第三段的ack都是u+1)

第四段的意思是
ACK=1:连接建立了,之后的ACK都必须置为1
seq=u+1:之前发的数据是第u位,B也要第u+1位数据,所以我发第u+1位数据
ack=w+1:之前发送方(B)说发送的是第w位数据,所以我(A)要的是w+1位数据

为什么需要等待及时2MSL?
因为这样可以保证B可以收到A的终止报文段而进入关闭状态
比如说如果A的第四段报文丢失,那么等待一个MSL之后B就可以重传第三段报文,花费小于1MSL之后A就会再收到第三段报文,之后就可以再次向B发送第四段报文,提示B关闭连接
TCP的连接释放

3.4TCP可靠传输

TCP是提供可靠传输,UDP这种本身还是不可靠传输的就再靠应用层解决了
TCP可靠传输

3.4.1序号

就是TCP根据下方数据链路层的MTU(最大传输单元)来随将数据切割成好几段并且编号
文件编号

3.4.2确认

发送方每一次发送数据之后都需要接收方进行确认
TCP使用的是累计确认机制,就是从第一个丢失的字节开始请求丢失的报文段。如图456所示,78到达,但仍然请求发送的数据序号是4
确认

3.4.3重传

为什么要使用自适应算法?网络太复杂,路径有长有短,RTT设置短了照顾不了距离远的,RTT设置长了又导致网络利用率降低,所以使用RTTs
确认重传

3.5TCP流量控制

简单来说就是接收方可以动态的发送信息告诉发送方发送窗口的大小。
接收方接受不过来就让发送方发送窗口小点,这样发送方的速率就慢下来了,接收方就有时间处理它的数据了
接收方处理完了也可以发送请求让让发送方发送窗口大点,这样发送方发送的速率就快起来了,接收方就可以处理更多数据而不是空闲等着收数据了
TCP流量控制

3.5.1计时器

在本例子中,使用的累计确认机制(一次回复收到ack201)和三次流量控制机制。
但是有一个情况就是,如果最后B不允许A再发送数据了,B在处理完数据之后想要恢复窗口时发送的有rwnd的大小的数据包丢了怎么办?此时A有B的指令在前,发送窗口为0无法发送数据,B也在等待恢复,造成了类似死锁的现象
解决方法:使用计时器
TCP流量控制

3.6TCP拥塞控制

流量控制是对单独一个来说的,拥塞控制是一群
TCP拥塞控制

3.6.1拥塞控制四种算法

这里虽然是四种算法,但是通常是两两结合进行使用
拥塞控制四种算法

3.6.2慢开始和拥塞避免

这里开始时以指数形式增长,ssthresh的意思是慢开始门限,代表从这个地方注入的报文段就比较多了,需要慢速增加了。
之后一段都是线性增长,每次增加1,直至达到网络拥塞状态
瞬间将cwnd设置为1,同时调整原来的ssthresh的值到之前得达到网络拥塞状态的1/2,(这里是24降到12)
重复以上步骤,但是注意此时ssthresh遍历之后线性增长的转折点也变了
慢开始和拥塞控制

3.6.3快重传和快恢复

这里和上面的慢开始和拥塞避免的一开始步骤差不多,都是先指数增长在转变为线性增长。
不同的点时快重传和快恢复算法是在收到ack确认之后执行的,这里的ack就是冗余ack,冗余ack的特点是如果多次对某一段请求的数据没有被收到,达到一定数目之后就会立即执行重传,但是此时只是降到现在cwnd的一半,再重新线性增长。而不是像慢开始和拥塞避免的从头开始
快重传和快恢复

4.本章思维导图

本章思维导图
本文常用名词中英文对照
Multiplexing and demultiplexing 复用与分用
Positive acknowledgments 肯定确认
Negative acknowledgments 否定确认
Countdown timer (倒数)计时器
Cumulative acknowledgment 累积确认
Receive buffer 接收缓冲区,或接收缓存
Resource-management cells 资源管理单元
Source (port number) 源端口号
Destination (port number) 目的端口号
Checksum 校验和
Pipelined protocols 流水线(型)协议
Go-back-N 回退N
Selective Repeat 选择重传
Timeout (定时器)超时
Fast Retransmit 快速重传
Flow Control 流量控制
Three way handshake 三次握手
sequence number 序列号(简写为seq)
acknowledgement number 确认号(简写为ack;注意与大小的ACK不同)
Congestion Control 拥塞控制
additive increase, multiplicative decrease 加性增乘性减
Slow Start 慢启动
congestion-avoidance 拥塞避免
fast recovery 快速恢复
duplicate (ACK) 冗余(ACK)
Random Early Detection 随机早期检测
参考资料
2019 王道考研 计算机网络

基于实时迭代的数值鲁棒NMPC双模稳定预测模型(Matlab代码实现)内容概要:本文介绍了基于实时迭代的数值鲁棒非线性模型预测控制(NMPC)双模稳定预测模型的研究与Matlab代码实现,重点在于通过数值方法提升NMPC在动态系统中的鲁棒性与稳定性。文中结合实时迭代机制,构建了能够应对系统不确定性与外部扰动的双模预测控制框架,并利用Matlab进行仿真验证,展示了该模型在复杂非线性系统控制中的有效性与实用性。同时,文档列举了大量相关的科研方向与技术应用案例,涵盖优化调度、路径规划、电力系统管理、信号处理等多个领域,体现了该方法的广泛适用性。; 适合人群:具备一定控制理论基础和Matlab编程能力,从事自动化、电气工程、智能制造等领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①用于解决非线性动态系统的实时控制问题,如机器人控制、无人机路径跟踪、微电网能量管理等;②帮助科研人员复现论文算法,开展NMPC相关创新研究;③为复杂系统提供高精度、强鲁棒性的预测控制解决方案。; 阅读建议:建议读者结合提供的Matlab代码进行仿真实践,重点关注NMPC的实时迭代机制与双模稳定设计原理,并参考文档中列出的相关案例拓展应用场景,同时可借助网盘资源获取完整代码与数据支持。
UWB-IMU、UWB定位对比研究(Matlab代码实现)内容概要:本文介绍了名为《UWB-IMU、UWB定位对比研究(Matlab代码实现)》的技术文档,重点围绕超宽带(UWB)与惯性测量单元(IMU)融合定位技术展开,通过Matlab代码实现对两种定位方式的性能进行对比分析。文中详细阐述了UWB单独定位与UWB-IMU融合定位的原理、算法设计及仿真实现过程,利用多传感器数据融合策略提升定位精度与稳定性,尤其在复杂环境中减少信号遮挡和漂移误差的影响。研究内容包括系统建模、数据预处理、滤波算法(如扩展卡尔曼滤波EKF)的应用以及定位结果的可视化与误差分析。; 适合人群:具备一定信号处理、导航定位或传感器融合基础知识的研究生、科研人员及从事物联网、无人驾驶、机器人等领域的工程技术人员。; 使用场景及目标:①用于高精度室内定位系统的设计与优化,如智能仓储、无人机导航、工业巡检等;②帮助理解多源传感器融合的基本原理与实现方法,掌握UWB与IMU互补优势的技术路径;③为相关科研项目或毕业设计提供可复现的Matlab代码参考与实验验证平台。; 阅读建议:建议读者结合Matlab代码逐段理解算法实现细节,重点关注数据融合策略与滤波算法部分,同时可通过修改参数或引入实际采集数据进行扩展实验,以加深对定位系统性能影响因素的理解。
本系统基于MATLAB平台开发,适用于2014a、2019b及2024b等多个软件版本,并提供了可直接执行的示例数据集。代码采用模块化设计,关键参数均可灵活调整,程序结构逻辑分明且附有详细说明注释。主要面向计算机科学、电子信息工程、数学等相关专业的高校学生,适用于课程实验、综合作业及学位论文等教学与科研场景。 水声通信是一种借助水下声波实现信息传输的技术。近年来,多输入多输出(MIMO)结构与正交频分复用(OFDM)机制被逐步整合到水声通信体系中,显著增强了水下信息传输的容量与稳健性。MIMO配置通过多天线收发实现空间维度上的信号复用,从而提升频谱使用效率;OFDM方案则能够有效克服水下信道中的频率选择性衰减问题,保障信号在复杂传播环境中的可靠送达。 本系统以MATLAB为仿真环境,该工具在工程计算、信号分析与通信模拟等领域具备广泛的应用基础。用户可根据自身安装的MATLAB版本选择相应程序文件。随附的案例数据便于快速验证系统功能与性能表现。代码设计注重可读性与可修改性,采用参数驱动方式,重要变量均设有明确注释,便于理解与后续调整。因此,该系统特别适合高等院校相关专业学生用于课程实践、专题研究或毕业设计等学术训练环节。 借助该仿真平台,学习者可深入探究水声通信的基础理论及其关键技术,具体掌握MIMO与OFDM技术在水声环境中的协同工作机制。同时,系统具备良好的交互界面与可扩展架构,用户可在现有框架基础上进行功能拓展或算法改进,以适应更复杂的科研课题或工程应用需求。整体而言,该系统为一套功能完整、操作友好、适应面广的水声通信教学与科研辅助工具。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值