【考研计网:基础版】第五章:传输层

[计算机网络] UDP数据字段 划分 IP数据报 题目 : 一个UDP用户数据报的数据字段为8192字节。在链路层要使用以太网来传送。 试问应当划分为几个IP数据报片?说明每一个IP数据报片的数据字段长度和 片偏移字段的值。 分析 : 首先我们知道UDP数据报=首部8字节+数据部分UDP数据报=首部8字节+数据部分UDP数据报=首部8字节+数据部分 那么总共传输的长度应该是8192+8=82008192+8=82008192+8=8200字节 因为在以太网传输,最大传输单元MTU=1500MTU=1500MTU=1500 同时又因为每个IP数据报的首部 阅读详情

本章纲要

  • 传输层提供的服务
    • 传输层的功能
    • 传输层寻址和端口
    • 无连接服务和面向连接服务
  • UDP协议
    • UDP 数据报
    • UDP 校验
  • TCP协议
    • TCP 段
    • TCP 连接管理
    • TCP 可靠传输
    • TCP流量控制和拥塞控制

我们关键需要掌握传输层的功能,工作方式和原理,需要重点掌握UDP,TCP协议(包括报文分析,首部格式,可靠传输,流量控制,拥塞控制,连接管理)。


1. 传输层提供的服务

1.1 传输层的功能

传输层是一个介于面向通信和面向用户功能的中间人。

  • 传输层为应用进程提供逻辑通信,网络层提供的是主机的逻辑通信
  • 在网络层进行的差错校验是对IP数据报的首部进行校验,传输层还要对首部+数据进行同时的校验
  • 传输层提供了两种传输协议:无连接UDP和有连接TCP。
  • 和网络层不同,网络层要不只能提供有连接的虚电路,要不只能提供无连接的数据报,不可能在网络层同时提供两种方式的
  • 传输层只关注两个传输层的实体之间有一条端对端的信道,不再关注网络的拓扑了

1.2 端口和寻址

端口:端口是方便知道应用进程的对应标识。TSAP 我们叫做 传输层的服务访问点

数据链路层的SAP 是MAC地址,网络层的SAP 是IP地址,传输层的SAP是端口

应用进程用到了端口号来标识应用进程,端口号长度是16Bit,也就说我们最多能标识65536(2162^{16}216)个端口。

我们常用的一些服务会使用熟知服务口:

应用程序FTPTelnetSMTPDNSTFTPHTTPSNMP
端口号212325536980161
  • 熟知服务端口指派:0-1023
  • 等级服务端口范围:1024 - 49151
  • 客户端口范围:49152 - 65535

套接字 = [主机IP地址,端口号]

1.3 无连接服务和有连接服务

当采用TCP的时候,传输层对上提供的是一条可靠的全双工信道

采用UDP的是时候,传输层对上提供的是一条不可靠的信道

TCP:应用在FTP,HTTP,Telnet
UDP:应用在TFTP(小文件传送协议),DNS,SNMP和RTP(实时协议)

IP数据报和UDP数据报的区别:IP数据报在网络层需要进行路由的存储和转发,但是UDP数据报是端对端的,对路由的存储和转发不可见


2. UDP 协议

2.1 UDP数据报

如果我们的程序选择了UDP协议的话, 我们很大程度上需要直接和IP打交道

  • UDP数据报在IP数据报上增加了两个基本的服务:一个是复用和分用,一个是差错检测
  • UDP的优点的无需建立连接,分组开销小,TCP报文的首部是20B,UDP首部只需要8B的开销。
  • UDP没有拥塞控制,他能容忍一些数据的丢失
  • 适合一次性传输较少量的数据,保持实时性,视频会议等
  • 尽最大努力交付,UDP是面向报文的,UDP的报文是不可分割的,UDP的接收方受到了IP数据报之后拆掉UDP用户数据报就直接交给应用上层了。UDP数据报是最小的单位

UDP数据报首部:

UDP数据报保活两个部分:UDP首部和使用户数据,整个UDP数据报首部8B,四个字段,每个字段占2B(16位)

  • 源端口:
  • 目的端口:
  • 长度:UDP数据报的长度
  • 校验和:用来校验整个UDP数据报是否有错,有错就丢掉
    在这里插入图片描述
    伪首部并不传送和递交,仅仅是为了计算校验和

3. TCP 协议

TCP/IP是一个用来解决可靠,有序,无丢失,不重复的问题。

  • 面向连接的,每一条TCP连接只能有两个端点,支持全双工,接收和发送双发都有缓存
  • TCP 是面向字节的

3.1 TCP 报文段

TCP报文也是分为首部和数据两部分,结构如下:

首部长度20B
在这里插入图片描述

  • 源端口、目的端口:各占2B
  • 序号:占4B,保存报文数据第一个字节的序号
  • 确认号:占4B,保存报文数据最后字节序号+1。他的意思是前面N-1序号之前的数据都收到了
  • 数据偏移:首部长度。单位是4B
  • 保留字:为以后需要使用,目前为0
  • 窗口:占2B,告知接收方发送方的窗口大小
  • 校验和:占2B,计算校验和的时候需要用到伪首部
  • 紧急指针:紧急数据(放在报文的最前面)占了多少字节
  • 选项:保存数据字段的最大长度
  • 填充:为了使得首部的长度是4B的整数倍
  • ACK位(确认位):ACK=1确认号才有效,ACK=0确认号无效
  • PSH位(推送位):PSH=1的时候接收的时候需要马上交付,不能等缓冲区满了再交付
  • RST位(重置位):RST=1标识当前的连接出现了严重差错。
  • SYN位(同步位):SYN=1标识这是一个连接请求或者连接接收报文(用来建立连接)
  • FIN位(终止位):FIN = 1 标识已经发送完了,要求释放连接

3.2 TCP连接管理

  • TCP连接的确认:建立连接,数据传送,连接释放
  • 主动发起连接叫做客户机,等待被连接叫做服务机
  • TCP建立连接需要三次握手:客户机先发送一个连接请求报文,seq 标识起始的字节序号。

在这里插入图片描述
连接的释放我们叫做四次握手

在这里插入图片描述

我们如果用逻辑符号表示一下:

ack表示确认号,大写的ACK表示确认位

连接建立:

【1[CtS]】SYN=1,seq=xSYN=1,seq=xSYN=1,seq=x
【2[StC]】SYN=1,ACK=1,seq=y,ack=x+1SYN=1,ACK=1,seq=y,ack=x+1SYN=1,ACK=1,seq=y,ack=x+1
【3[CtS]】ACK=1,seq=x+1,ack=y+1ACK=1,seq=x+1,ack=y+1ACK=1,seq=x+1,ack=y+1

连接释放:

【1[CtS]】FIN=1,seq=uFIN=1,seq=uFIN=1,seq=u
【2[StC]】ACK=1,seq=v,ack=u+1ACK=1,seq=v,ack=u+1ACK=1,seq=v,ack=u+1
【3[StC]】FIN=1,ACK=1,seq=w,ack=u+1FIN=1,ACK=1,seq=w,ack=u+1FIN=1,ACK=1,seq=w,ack=u+1
【4[CtS]】ACK=1,seq=u+1,ack=w+1ACK=1,seq=u+1,ack=w+1ACK=1,seq=u+1,ack=w+1


3.3 TCP 可靠传输的实现

我们知道在IP层的传输可能是不可靠的,我们在TCP实现可靠的方法就是增加校验和重传的机制来保证可靠。

序号机制:

我们给每一个的字节进行编号,一句是我们的发送缓冲区有10个字节,那么我们从0开始编号,假如对面收到了数据之后则会发送ACK确认

什么时候出现重传?

超时和冗余ACK:

  • 超时:发送端发送了一个TCP报文之后没有在指定时间受到报文,那么就会重传
  • 冗余ACK:比如发送端发送了12345序号的字节,然后2在链路层丢失了,那么接收端因为在收到1之后,发现3不是他的期望的,因此,连续三次发送的ACK都是对1的确认,着三个多出来的ACK我们叫做冗余ACK。这个时候发送端收到了3个冗余ACK之后就会推测2序号丢失了,就会重发2。这种叫做快速重传技术

3.4 TCP 进行流量控制

所谓的流量控制就是发送方为了协调接收方缓冲区溢出的可能性而进行的操作。

TCP会提供一种滑动窗口机制,在通信当中接收方会根据自己接收的缓存的大小动态调整发送方的发送窗口大小。

我们利用TCP报文里面首部的字段来限制发送方的报文注入速率。

  • 接收窗口:rwnd
  • 拥塞窗口:cwnd

发送窗口的大小由接收窗口和拥塞窗口的最小值决定

我们可以看一个TCP进行流量控制的例子:

在这里插入图片描述
我们可以发现,发送端的发送控制权实际上掌握在接收方的手上的。

发送端的窗口大小也是由接收方进行调节的。

3.5 TCP 拥塞控制

流量控制和拥塞控制的区别在于:流量控制是防止发送端和接收端不协调而做的控制,拥塞控制是防止在中途的路由器和交换主机数据拥塞的情况发生。

流量控制是解决是端的问题,拥塞控制解决的是路上的问题。

例子:假如我们的某个链路的传输速率是10Gb/s,我们的一台主机用1Gb/s的速率发文件,那接收端的PC不一定能来得及接收,这个时候就需要流量控制。但现在有100万台主机同时以1Mb/s的速率发文件,这个时候我们就要考虑这个网络负载是否超过了能承受的范围了。

拥塞窗口实际上维护就是了全局的网络拥塞情况。

下面讲解一下怎样进行拥塞控制:

慢开始算法:在TCP刚刚连接好,开始发送TCP报文段的时候先令cwnd = 1(这个我们放在首部的选项字段MSS里面),每收到一个新的报文段的确认之后cwnd+1。

假如A向B发送数据,假如A的拥塞窗口是2的时候,一次可以发送两个TCP的报文段,经过一个传输轮次之后,A收到B对刚才两个报文的确认就会把拥塞窗口调到4,那么下一次发送的时候就能发送4个报文段。

当我们的慢开始算法达到一定的阈值之后,(因为每经过一个传输轮次拥塞窗口就会加倍),我们就开始改用拥塞避免算法。

慢开始算法会使得cwnd的大小是按照指数型的增加的。

拥塞避免算法:每经过一个RTT的话,cwnd就加1,就是无论确认多少ACK都+1,保证这个cwnd是按照线性增长。

如果出现一次超时,就使得变成原来的一半

总的来说就是:加法增加,乘法减少。

  • 当cwnd<threshold:使用慢开始算法
  • 当cwnd>threshold:转成使用拥塞避免算法

在这里插入图片描述

一般来说,我们更加倾向于(更加频繁)使用拥塞避免算法,因为指数的增加导致意外的出现更加频繁。


除了慢开始+拥塞避免这样的策略之外,我们还要其他的改进方案吗?

有的,快重传和快恢复就是对拥塞避免算法的改进。

快重传算法:就是之前说过的对于冗余ACK的处理。

快恢复算法:当我们的发送端收到了三个冗余的ACK之后,就执行乘法减少的算法。

在这里插入图片描述


附:第五章传输层知识框架

在这里插入图片描述

【专栏必读】王道考研408计算机网络+湖科大教书匠计算机网络+网络编程万字笔记使用说明及章节导航 本文档汇总了王道考研408计算机网络和湖科大教书匠计算机网络课程的重点内容,包括计算机网络体系结构、物理层、数据链路层、网络层、传输层和应用层的详细讲解。通过ISO/OSI和TCP/IP模型,深入探讨了通信基础、介质访问控制、IP地址、TCP/UDP协议、流量控制和网络编程等关键概念。此外,还提供了Linux网络编程实践,帮助读者巩固理论知识 阅读详情

相关推荐

告别反复刷写:用英飞凌XCP Overlay功能实现ECU标定与诊断的‘热更新’

本文详细介绍了英飞凌XCP Overlay功能在ECU标定与诊断中的应用,实现参数的'热更新',避免反复刷写Flash。通过地址重映射技术,将标定变量从Flash重定向到RAM,显著提升工作效率并保护Flash寿命。文章涵盖技术原理、工程实践、功能安全考量及高级应用场景,为汽车电子工程师提供完整解决方案。

weixin_30689307的博客 523

TCP报文段、UDP数据报、IP数据报区别

(1)TCP报文段(TCP segment) TCP传输给IP的数据单元称作TCP报文段。 segment : part of sth separated or marked off from the other parts. (数学解释:它是一个全集O的一个子集a) TCP报文段:TCP协议是面向有连接的协议,“有连接”的意思是TCP协议需要维护后续数据的状态信息,例

marvie_xie的博客 1万+

基于YOLOv8的多类别检测模型融合实战:从数据集重构到模型训练

本文详细介绍了如何将多个单一类别的YOLOv8检测模型融合为一个高效的多类别检测模型。通过重构数据集、利用预训练模型生成新标签,并重新训练,解决了多模型并行带来的速度慢、资源占用高和部署复杂等问题。实战流程涵盖数据准备、标签生成、模型训练与评估,旨在帮助开发者构建性能优异的YOLOv8多类别检测模型。

kmeans3miner的博客 227

IP协议和UDP协议的区别是什么?底层原理是什么?

而UDP协议没有提供类似的辅助协议,需要应用其他机制来保证数据传输的可靠性,如应用层协议中的重传机制、数据校验机制等。IP协议是互联网中最基本的协议之一,它提供了数据包的分组和转发等核心功能,为其他协议的运行提供了基础支持;IP协议主要负责数据包的分组和转发,在传输数据包时需要添加IP头信息,包括源IP地址、目的IP地址、协议类型等。在网络传输过程中,每个数据包都会被分割成多个IP数据包进行传输,每个IP数据包会经过一系列的网络设备(如路由器、交换机等)进行转发,直到到达目的地址。

长风破浪会有时的博客 2814

Unity 数字孪生笔记1 工具介绍

前言 工欲善其事必先利其器 流程思考 数字孪生本质上一种基于实际物理数据的可视化方案,通过对接实际数据,在三维界面中展示孪生结果。 那么这个流程就很简单了。 整个流程分为三块:数据来源-》数据分析-》数据展示 输入数据 首先我们需要考虑我们能拿到什么。第一,实际物体的三维数据从哪里来,第二,实际数据怎么获取到。 模型数据 工业上常常会用到CAD模型,CAD模型具有精确、统一的特点,但是CAD不是三角面片,我们不能直接导出到Unity中,而且导入之后有很多不合理的地方,例如面片杂乱、面数过高等问题。针对这个

Thissky的专栏 1万+

Zigbee智能开关和单火取电技术

ZigBee智能开关(单火线)是在ZigBee协议基础上开发由单火线供电的开关,它可以控制各种类型负载的开关,如LED灯,白炽灯,荧光灯和钨丝灯等。配合相应的主机用户可以使用手机远程控制它,进而达到控制灯光开关的目的。它具有自组网功能,使用简单方便,给你的居家生活带来无线享受。可应用于家庭,办公,医院和酒店等场合。

danhuoxian的博客 1万+

计算机网络 - 传输层

一. 传输层提供的服务 1. 传输层的功能 从通信和信息处理的角度看,传输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。 传输层位于网络层之上,它为运行在不同主机上的进程之间提供了逻辑通信,而网络层提供主机之间的逻辑通信。显然,即使网络层协议不可靠(网络层协议使分组丢失、混乱或重复),传输层同样能为应用程序提供可靠的服务。 从图 5.1 可以看出,网络的边缘部分的两台主机使用网络核心部分的功能进行端到端(端口到端口)的通信时,只有主机的协议栈才有传输层和应用层,

weixin_51490695的博客 9312

Python海康摄像头SDK二次开发

摘要:为解决海康威视摄像头RTSP拉流延迟严重的问题,本文提出改用海康私有SDK直接取流的方案。通过下载海康设备网络SDK并调用其Python接口,实现了低延迟的视频流获取。文中详细介绍了SDK配置流程,并提供了优化版的Python代码示例,重点解决回调函数处理、队列缓冲和CPU占用等问题。测试结果表明,该方案显著降低了延迟,同时保持了较高的帧率(30FPS以上)和较低的CPU占用率(约2%)。相较于传统OpenCV+FFmpeg的RTSP方案,海康SDK直接取流在实时性方面具有明显优势。

xiaohouzi112233的博客 2604

5-2传输层-UDP协议

UDP数据报、UDP校验、优缺点、应用

欢迎来到我的博客 2291

CXL ALMP(ARB/MUX Link Management Packet)理解

ALMP(ARB/MUX Link Management Packet) 是CXL协议中由ARB/MUX层生成和处理的专用管理报文,用于协调链路电源状态切换(如L0s/L1)和虚拟链路状态机(vLSM)同步。ALMP是ARB/MUX层的控制平面报文,专用于以下场景:协调多协议(CXL.io、CXL.cachemem等)的链路状态切换(如L1进入/退出)。维护各协议独立的虚拟链路状态机(vLSM) 状态同步。在物理层(PHY)与链路层(Link Layer)之间仲裁电源管理请求。

Summer的博客 1198

SAP 批次管理(分割评估)

批次分割评估: 业务场景:企业要求各批次物料成本价格不一样。此时可以采用分割批次来实现不同成本 后台配置: (1)、激活分割评估 后台---物料管理----评估与科目设置---分割评估-----激活分割评估 (2)、配置分割评估 后台---物料管理----评估与科目设置---分割评估-----配置分割评估 进入全局性分类后,批次分割采用已有的评估类型“X自动(批)”: ...

willieyuan的博客 1万+

计算机网络笔记(王道考研) 第五章:传输层

计算机网络笔记(王道考研) 第五章:传输层

zimuzi2019的博客 2068

控制科学与工程(自动化)保研经验【2】——南开、同济篇

禁止转载 1、南开人工智能学院夏令营   保研之旅第一个夏令营就是南开,南开夏令营非常早(6月份),当时我们专业仅有两人入营。夏令营前一天我们两个坐高铁来到了天津,几经辗转来到了南开的津南校区,非常偏僻。在自己找的酒店住了一晚,第二天一早去学院报到,资格审查、报销路费等等,然后开营仪式,吃饭,入住酒店,实验室参观。   开营仪式和实验室参观了解到,南开人工智能学院是国内第一批人工智能学院,和很多高...

Control Everything 6532

【考研易忘知识点】计网 第五章 传输层

TCP的数据偏移 就是首部长度

weixin_45628782的博客 719

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

计网,数据库学习思维导图

计网,数据库学习思维导图前言计算机网络思维导图参考书思维导图第一章:计算机网络体系第二章:物理层第三章:数据链路层第四章:网络层第五章:传输层第六章:应用层数据库思维导图参考书思维导图第一章:绪论第二章:关系数据库第三章:SQL语言第四、五章:数据安全性与完整性第六章:关系数据库理论第七章:数据库设计第八章:暂无第九章:关系查询处理和查询优化第十章:数据库恢复技术第十一章:并发控制概述总结 前言 ...

工程小猿的博客 3162

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

最值得收藏的 计算机网络 全部知识点思维导图整理(王道考研),附带经典5层结构的中英对照和框架简介

本文的思维导图根据王道的计算机网络整理而来并标记出重点内容,并且整理了常见的重点中英对照与计网的框架 思维导图源文件已经发布在我的资源当中,有需要的可以去 我的主页 了解更多学科的精品思维导图整理 本文可以转载,但请注明来处,觉得整理的不错的小伙伴可以点赞支持一下哦! 一、计网重要中英对照与框架 二、知识点 第一章 计算机网络体系结构 第二章 物理层 第三章 数据链路层 第四章 网络层 第五章 传输层 第六章 应用层 第七章 网络管理 ...

孤柒的博客 2万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

计算机网络笔记(王道考研) 第一章:计算机网络体系结构

计算机网络笔记(王道考研) 第一章:计算机网络体系结构

zimuzi2019的博客 5508

Missashe考研日记—Day44-Day50

记录me的考研日常

LVerrrr的博客 862

计网高效学习指南:重点突破策略

本文针对计算机网络考试,提供高效学习策略,重点解析网络层IPv4、传输层TCP及数据链路层滑动窗口等核心知识点,避开IPv6等非重点内容,帮助考生快速拿分。包含关键词:计算机网络、学习重点、考试策略、网络层、传输层、数据链路层、TCP、IPv4。

1onetw的博客 333

计算机网络笔记(王道考研) 第六章:应用层

计算机网络笔记(王道考研) 第六章:应用层

zimuzi2019的博客 4337

计算机考研408终极备考指南:3个月高效复习方案

计算机考研408专业课复习是许多计算机专业考生面临的重大挑战。cs-408项目为考研学子提供了完整的408复习资料体系,涵盖数据结构、计算机组成原理、操作系统、计算机网络四门核心课程,包含2023-2024年王道考研复习指导书、选择题刷题本、大题刷题本、历年真题考频统计以及精心整理的OneNote电子笔记。这个开源项目通过系统化的资源整合和创新的学习方法,帮助考生在有限时间内实现高效复习,应对40

gitblog_00425的博客 335

计算机网络整理-简称&缩写【期末复习|考研复习】

计算机网络中涉及的缩写以及简称汇总

bblb的博客 1680

计算机网络笔记(王道考研) 第二章:物理层

计算机网络笔记(王道考研) 第二章:物理层

zimuzi2019的博客 3913

计算机网络笔记(王道考研) 第四章:网络层

计算机网络笔记(王道考研) 第四章:网络层

zimuzi2019的博客 4181

计算机网络笔记(王道考研) 第三章:数据链路层

计算机网络笔记(王道考研) 第三章:数据链路层

zimuzi2019的博客 5090

吐血总结~ 计算机网络基础汇总

本篇总结了谢希仁老师版的计网,王道考研计网等书籍汇总,标红处为重点,本人转行小白一个,兴许理解不深有待指正,希望和大家共同进步。 第一章计算机网络体系结构 导图 1.1、计算机网络概述 1.1.1、互联网概述 计算机网络是一个将分散的、具有独立功能的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统。简而言之,计算机网络就是一些互联的、自治的计算机系统的集合。 互联网基础结构发展的三个阶段第一阶段:是从单个网络ARPANET向互连网发展的过程。美国.

chengxuyuanlee的博客 4532
上一篇: 【考研计网:基础版】第四章:网络层
下一篇: 【考研计网:基础版】第六章:应用层
JintuZheng
博客等级 码龄11年 1483粉丝 109原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值