【计算机网络】第五章 传输层

news/2024/5/19 5:14:51/文章来源:https://blog.csdn.net/weixin_45434953/article/details/126953684

第五章 传输层

一、传输层概述

传输层功能

协议:TCP和UDP
是只有主机才有的层次
功能:

  • 提供进程和进程之间的通信,网络层提供的是主机之间的通信
  • 复用和分用:将数个进程的信息复用起来,发送出去;收到信息后,将各个进程的数据分离开来
  • 传输层对收到的报文进行差错检测
  • 提供TCP和UDP两种协议

1.2 传输层的寻址和端口

端口是传输层的SAP,用于标识主机中的应用进程。用一串数字标识端口,称之为端口号,只在本机内有意义。其长度为16bit,能表示65536个端口。
在这里插入图片描述
套接字Socket的构成为(主机IP地址,端口号),套接字唯一标识了一个网络中的一个主机和他上面的一个进程。

二、UDP协议

2.1 功能

UDP只在IP数据报服务商增加了很少功能,只有复用分用和差错检测功能
主要特点:

  • UDP无连接,减少了开销和发送数据之前的时延
  • UDP是不保证可靠交付的,如果报文很长,一旦丢失则会造成很大的重发时延,因此适合短报文
  • UDP是面向报文的,不会对报文进行切割,适合一次性传输少量数据的网络应用
  • 没有拥塞控制,适合很多实时应用

2.2 UDP首部格式

在这里插入图片描述

2.3 UDP校验

UDP校验的关键在于伪首部,伪首部只会在发送端准备发送或者说接收端接收到并进行差错检测的时候被添加上,发送时会将伪首部去除。
在这里插入图片描述
在这里插入图片描述

三、TCP协议

3.1 特点

  1. 面向连接的传输协议,是一种虚电路连接
  2. 每一条TCP链接只能有两个端点,每一条TCP连接只能是点对点的
  3. 提供可靠的交付服务,无差错、不丢失、不重复、按需抵达
  4. TCP提供全双工通信,需要有发送缓存(准备发送的数据或者已发送但未确认的数据)和接收缓存(已按序到达但上层未读取或者未按需抵达)
  5. 面相字节流,会把应用程序交付的数据看作为无结构的字节流

3.2 TCP报文段首部格式

在这里插入图片描述
TCP首部有20B的固定部分

  • 源端口、目的端口:各占2位

  • 序号:表示本报文段所发送数据的第一个字节的编号是多少

  • 确认号:希望收到对方下一个报文段的第一个字节的编号是多少,如果确认号为n则表示前n-1个字节已经正确接受了

  • 数据偏移:报文段的数据起始处距离TCP报文段起始处有多远,以4B为单位,可以通过此知道首部长度

  • 控制位:

    • 紧急位URG:表明该报文段有一个紧急数据,不会在发送方的TCP缓存中排队而是直接发送,可用于向对方发送接收缓存已满等紧急信息
    • 确认为ACK:ACK=1时确认号有效
    • 推送位PSH:接收方会直接向上交付数据,而不会等待报文全部到达后再交付
    • 复位RST:TCP链接出现严重差错,必须释放连接,然后重新建立传输链接
    • 同部位SYN:表明是一个连接请求/连接接受报文
    • 钟志伟FIN:表明报文段发送方数据已经发送完毕,请求终止链接
  • 窗口:指的是发送本报文段的一方的接收窗口,就是现在允许对方发送的数据量,单位为B

  • 检验和:检验首部+数据部分,检验的时候需要加上12B的伪首部,第四个字段为6

  • 紧急指针:只有在控制位URG=1才有用,指出紧急数据在本报文段中的位置和所占字节数

  • 选项:最大保温长度MSS,窗口扩大、时间戳、选择确认

  • 填充:为了保证TCP首部长度为4字节的整数倍

3.3 TCP连接管理

连接的建立

在这里插入图片描述

SYN洪泛攻击

发生在OSI的第四层网络层,攻击者只会发送TCP三次握手中的第一次握手的SYN报文段,而收到连接请求的服务器会发回ACK确认报文段,并且为该TCP链接分配缓存和变量。但是攻击者不会再进行下一步操作,而是不断的发送SYN请求建立连接报文,从而使得服务器建立大量的无用TCP链接,占满服务器的资源,从而使得服务器无法被正常访问

连接的释放

在这里插入图片描述
设置2MSL是为了防止第四个报文在传输过程中丢失。如果第四个报文在传输过程中丢失,那么服务器会再度传输一个3号报文来请求客户端断开连接,这个一来一回的过程一定发生在2MSL时间内。而客户收到重传的3号报文则会再次发送4号报文,并且重置计时器,再次等待2MSL。上述就是为什么要等待2MSL的原因

3.4 可靠传输

1.校验

和UDP一样,增加伪首部

2.序号

会对字节流进行编制,一个字节占一个序号,序号字段指的是一个报文段的第一个字节的序号。收到报文段之后,会返回ACK确认报文,用于表明下一个想要收到的字节的序号是多少。

3.确认

使用累次确认,如果1,2,3号字节已到达,4,5,6号中途丢失,但是7,8号到达,那么将会收下7,8号并且回传一个ACK=4的确认报文,用于表明下一个想要收到的报文段是序号为4开头的报文段

4.重传

TCP发送方在规定时间内没有收到确认就要重传报文段。TCP采用自适应算法,根据网络的情况动态改变重传时间RTTs

也有可以不需要等待的效率更高的重传机制:冗余ACK,指明下一个期待的字节序号
在这里插入图片描述

3.5 流量控制

如果发送方发送速率太快,接收方来不及接受,会导致大量丢包,TCP利用华东窗口机制实现流量控制。

在通信过程中,接收方根据自己接收缓存的大小没动态调整发送的发送窗口大小,接收方主要是用确认报文段中的窗口字段来控制发送方的窗口大小。如果rwnd=400,那么在下一次收到确认报文之前,最多只能发送400个字节的信息。而接收方的累次确认,也要在收到400个字节内给出下一个累次确认的ACK
在这里插入图片描述
在最后,接收方回传的ACK报文中rwnd=0,也就是不允许发送方发送数据了。此时发送方会启动一个持续计时器,如果计时器到期了接收方 依旧不允许发送,则发送一个零窗口的探测报文段,接收方接收后要给出现在的窗口值;如果窗口仍然为0,则重置计时器。

3.6拥塞控制

出现拥塞的条件:对资源要求的总和大于可用资源。拥塞控制是防止过多的数据注入到网络中。流量控制是防止传输速率过快导致接收方来不及接收;拥塞控制是保证不会因为链路上数据过多而导致传输速率下降

接收窗口:接收方根据接收缓存设置的值
拥塞窗口:发送方根据自己估算的网络拥塞程度而设置的窗口值

慢开始和拥塞避免

在开始时惠设置一个ssthresh值(慢开始门限),一开始每次只发送1个报文段,然后下一次发送报文段的数量指数型规律增长。在超过ssthresh值之后,则变为线性增长,直到发生了网络拥塞。一旦出现了网络拥塞,则将每次发送的报文段充分变为1,并且将ssthresh设置为拥塞发生时的单次发送报文段数量的一半
在这里插入图片描述

快重传和快恢复

快重传发生网络拥塞后不会将创建偶设为1,而是直接设为新的ssthresh值
在这里插入图片描述

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

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

相关文章

安装 Windows Server 2019 VM虚拟机

目录(1)系统语言设置(2)点击【Install now】(3)激活Windows(4)选择安装版本(5)同意【license terms】(6)选择安装类型(7&a…

新华三学习记录

文章目录前言计算机网络基础基本概念TCP/IP四层和OSI七层模型LAN/WAN冲突域基本组网基本协议总结前言 本博客仅做学习笔记,如有侵权,联系后即刻更改 科普: 计算机网络基础 参考文章 基本概念 计算机网络 分布各地的具有独立功能的计算机…

【云原生-Docker】Docker 安装 MySQL

🍁博客主页:👉不会压弯的小飞侠 ✨欢迎关注:👉点赞👍收藏⭐留言✒ ✨系列专栏:👉Docker学习专栏 ✨学习社区:👉不会压弯的小飞侠 ✨知足上进,不负…

5.Eureka服务注册的源码分析(springcloud)

一、Eureka 概念的理解 1 服务的注册 当项目启动时(eureka 的客户端),就会向 eureka-server 发送自己的元数据(原始数据)(运行的 ip,端口 port,健康的状态监控等,因为使用…

P02 反射

P02 反射1.反射概述1.1 反射的基本作用1.2 反射的关键2.反射获取类对象2.1 forName(String className)2.2 类名.class2.3 对象.getClass()3.反射获取构造器对象![在这里插入图片描述](https://img-blog.csdnimg.cn/e234dd155af94a5c80223d64b112f4bf.png)3.1 Class 类中用于获取…

18.Composition API(四)高级语法补充

1.自定义指令 之前我们学习了各种指令:v-model、v-for、v-show等,除了这些指令外,Vue允许我们自定义指令。 什么时候使用自定义指令? 需要对DOM元素进行底层操作,这个时候就会用到自定义指令。 注意:在V…

第二章 ES数据操作与集群

一、回顾 1.介绍ES 2.ES原理 3.ES功能 4.ES使用场景 5.ES安装 1)ES配置文件(单点配置) [root@es01 ~]# grep ^[a-z] /etc/elasticsearch/elasticsearch.yml node.name: es-1 path.data: /data/es/data path.logs: /data/es/log bootstrap.memory_lock: true network.host: 1…

Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8

因为另一台机器开发时,android studio提示更新什么东西,无脑点了。 导致原先的那台开发机器,无法build,报异常: Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8 有两个方法解决: 1、修改jdk从1.8改到11如果没有这个选项,可能需要安装…

高项重点内容

BI,商业智能 联机事务处理OLTP主要是执行基本日常的事务处理,比如数据库记录的增删查改。比如在银行的一笔交易记录,就是一个典型的事务。联机分析处理是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持&…

Java高级:IO

笔记来源:尚硅谷Java入门视频教程(在线答疑Java面试真题) 文章目录一 File类的使用1.1 基本概述1.2 File类的常用构造器1.3 路径分隔符1.4 File类常用方法二 IO流原理及流的分类2.1 IO原理2.2 流的分类2.3 节点流和处理流2.4 InputStream & Reader2.4.1 InputSt…

mini LED显示屏—点胶测量

mini LED显示屏作为一种LED的一种技术,其产品已开始应用于超大屏高清显示,如监控指挥、高清演播、高端影院、医疗诊断、广告显示、会议会展、办公显示、虚拟现实等商用领域。 而本次测量mini LED显示屏胶水高度。测试采样步距间隔大小的测量精度&#xf…

基于PHP的校园二手信息网站的设计与实现毕业设计源码251656

目 录 摘要 1 绪论 1.1 研究背景 1.2国内外研究现状 1.3论文结构与章节安排 2 校园二手信息网站系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 操作可行性分析 2.2 系统流程分析 2.2.1 数据流程 3.3.2 业务流程 2.3 系统功能分析 2…

压裂反排液除氨氮树脂技术

项目名称 中国石油工程建设除氨氮项目 工艺选择 沉淀工艺软化系统膜系统离子交换脱氨系统,出水稳定在0.2mg/l 工艺原理 页岩气开采反排液,经过沉淀工艺后进入软化系统,然后经过反渗透工艺后进行离子交换脱氨工艺。 下面这个案例分享是科…

戴尔笔记本重装系统硬盘加密怎么解除

​bitlocker加密可以很好地保护计算机中的数据,那么dell电脑硬盘的bitlocker加密如何解除 ?小编给大家介绍一下解除戴尔笔记本硬盘加密的方法。 工具/原料: 系统版本:windows10系统 品牌型号:戴尔 方法/步骤: 解…

Methyltetrazine-Maleimide,甲基四嗪-马来酰亚胺 一种可降解ADC linker

●中文名:甲基四嗪-马来酰亚胺 ●英文:Methyltetrazine-Maleimide ●外观以及性质:红色固体,Methyltetrazine-Maleimide 是一种可降解 (cleavable) 的 ADC linker,可用于合成抗体偶联药物 (ADC)。其次是一种点击化学马…

【云原生 | 从零开始学Kubernetes】二十二、kubernetes持久化存储下

该篇文章已经被专栏《从零开始学k8s》收录 上一篇文章:kubernetes持久化存储上 点击跳转 持久化存储下k8s 持久化存储:hostPathk8s 持久化存储:nfsk8s 持久化存储: PVCk8s PV 是什么?k8s PVC 是什么?k8s PV…

【Docker】简单搭建Portainer

既然是家用的Docker那就不上Rancher了,直接通过Portainer轻量化解决所有问题。还好最新的Portainer还是很人性化的,搭建也比较简单,说白了原理就是直接通过宿主机的Docker进行同调(这个可以通过下面的启动语句得知)。 …

MySQL数据库之进阶查询语句

目录 一、常用查询 1、按关键字查询 ①升序排序 ②降序排序 ③结合where进行条件过滤 ④多字段排序 2、and和or判断 ①and和or的使用 ②嵌套、多条件使用 3、distinct 查询不重复记录 4、group by 对结果进行分组 5、limit限制结果条目 6、设置别名&#xff…

Sentinel核心算法设计与实现

这里我们先一起了解一下Sentinel的一些比较重要的概念 ,Sentinel 整体工作流程采用责任链模式,功能定义Slot,计数通过Node,在Slot中通过选用不同的Node实现不同的流控模式。 Node 用于不同纬度的计数Slot 实现不同的功能Resource 受保护的资源Rule 保护资源规则 回顾完了S…

跟踪元素可视?试试Intersection Observer

本文将讲解Intersection Observer的用法及其polyfill的原理,我们一起来看下。背景现在有以下几种场景。页面滚动时懒加载图片实现无线滚动页面(Infinite scrolling)根据某个元素是否出现在视窗从而执行某些逻辑对于这些传统的实现…