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

news2024/11/15 7:49:22

在这里插入图片描述

一、传输层概述

  • 传输层为应用层提供通信服务,使用网络层服务
  • 传输层的功能:
    1. 提供进程和进程之间的逻辑通信(网络层提供主机之间的逻辑通信)
    2. 复用(发送发不同的应用进程)和分用(接收方正确的数据传送)
    3. 对收到的报文进行差错检测
    4. 两个协议:面向连接的传输控制协议TCP、无连接的用户数据协议UDP
  • TCP协议的特点:可靠、面向连接、时延大,适用于大文件
    1. 传送数据之前必须建立连接,数据传送结束后要释放连接
    2. 不提供广播/多播服务
    3. 增加开销:确认、流量控制、计时器及连接管理等
  • UDP协议的特点:不可靠、无连接、时延小,适用于小文件
    1. 传送数据之前无需连接,收到UDP报文后不需给出任何确认

1.1 传输层的寻址与端口

  • 复用:应用层所有的应用进程都可以通过传输层再传输到网络层
  • 分用:传输层从网络层收到数据后交付指明的应用进程
  • 端口(逻辑/软件端口)是传输层的SAP,标识主机中的应用进程
    1. 端口号只有本地意义,在因特网中不同计算机的相同端口没有联系
    2. 端口号的长度为16bit,能标识65536个不同的端口号
      在这里插入图片描述
  • 套接字Socket = (主机IP地址,端口号):在网络中采用发送方和接收方的套接字组合来识别端点,套接字唯一标识了网络中的一个主机和它上面的一个进程

二、UDP协议

  • UDP只在IP数据服务之上增加了:复用分用、差错检测
  • UDP的主要特点:
    1. UDP是无连接的,减少开销和发送数据之前的时延
    2. UDP使用最大努力交付,即不保证可靠交付
    3. UDP是面向报文的,适合一次性传输少量数据的网络应用
    4. UDP无拥塞控制,适合很多实时应用。
    5. UDP首部开销小8B,TCP20B
      在这里插入图片描述
  • UDP首部格式
    在这里插入图片描述
  • UDP校验
    在这里插入图片描述

三、 TCP协议

  • TCP协议的特点
    1. 面向连接(虚连接)的传输协议
    2. 每一条TCP只能有两个端点,即点对点的单播通信
    3. 提供可靠交付的服务,无差错、不丢失、不重复、按序到达;可靠有序、不丢不重
    4. 提供全双工通信:发送缓存、接收缓存
    5. 面向字节流:应用程序交下来的数据看成一连串无结构的字节流
  • TCP报文段首部格式
    在这里插入图片描述

3.1 TCP连接

  • TCP连接传输三个阶段:连接建立、 数据传送、连接释放

3.3.1 连接建立

  • TCP连接建立采用客户(主动发起连接建立的应用进程)服务器(被动等待连接建立的应用程序)方式
  • SYN洪泛攻击:
    1. SYN洪泛攻击发生在OSI第四层,这种方式利用TCP协议的特性,即三次握手
    2. 攻击者发送TCP SYN(SYN是TCP三次握手中的第一个数据包);当服务器返回ACK后,该攻击者就不对其进行再确认,那这个TCP连接就处于挂起状态(即,半连接状态);服务器收不到再确认的话,还会重复发送ACK给攻击者。
    3. 攻击者对服务器发送非常大量的这种TCP连接,由于每一个都没法完成三次握手,所以在服务器上,这些TCP连接会因为挂起状态而消耗CPU和内存,最后服务器可能死机,就无法为正常用户提供服务了
    4. SYN洪泛攻击的解决:SYN cookie
  • TCP连接的建立与释放
    在这里插入图片描述

3.2 可靠传输

  • 可靠:保证接收方进程从缓存区读出的字节流与发送方发送的字节流完全一致
  • TCP实现可靠传输的机制
    1. 校验:增加伪首部,使用二进制反码求和
    2. 序号:一个字节占一个序号,序号字段是一个报文段第一个字节的序号
    3. 确认:TCP默认使用累计确认(TCP只确认这个数据流中第一个丢失字节为止的报文段)
    4. 重传:TCP发送方在规定时间内没有收到确认就要重传已发送的报文段(超时重传)
  • 重传时间:TCP采用自适应算法,动态改变重传时间RTTs(加权平均往返时间 )
  • 冗余ACK(冗余确认):快速重传
    1. 每当比期望序号大的失序报文段到达时,发送一个冗余ACK,指明下一个期待字节的序号
    2. 发送方收到3个对于报文段n的冗余ACK → 认为n+1报文段丢失,重传该报文段

3.3 流量控制

  • 流量控制:让发送方慢点,让接收方来得及接收
  • TCP利用滑动窗口机制实现流量控制
  • 流量控制的具体过程:
    1. 接收窗口rwnd:在通信过程中,接收方根据自己接收缓存的大小(接收方设置确认报文段的窗口字段来将rwnd通知给发送方),动态地调整发送方的发送窗口大小
    2. 发送方的发送窗口取决于:接收窗口rwnd、拥塞窗口cwnd的最小值
    3. 发送窗口大小可以动态变化
    4. TCP为每一个连接设有一个持续计时器,只要连接的一方收到对方的零窗口通知就启动持续计时器:若持续计时器设置的时间到期,就发送一个零窗口探测报文段,接收方收到后给出现在的窗口值;若窗口仍为0,则重置持续计时器

3.4 拥塞控制

  • 出现拥塞的条件:对资源需求的总和 > 可用资源
  • 网络总许多资源同时呈现供应不足 → 网络性能变坏 → 网络吞吐量将随输入负荷增大而下降
  • 拥塞控制(全局性):防止过多的数据注入到网络

3.4.1 拥塞控制四种算法

  • 拥塞控制四种算法:慢开始、拥塞避免、快重传、快恢复
  • 假定:
    1. 数据单方向传送,另一个方向只传送确认;无捎带确认的情形
    2. 接收方总是有足够大的缓存空间,因而发送窗口的大小取决于拥塞程度
  • 发送窗口 = Min{接收窗口rwnd,拥塞窗口cwnd}
    1. 接收窗口:接收方根据缓存设置的值,并告知给发送方,反应接收方容量
    2. 拥塞窗口:发送方根据自己估算的网络拥塞程度而设置的窗口值,反应网络当前容量
  • 一个传输轮次:
    1. 发送了一批报文段并收到它们的确认的时间
    2. 一个往返时延RTT
    3. 开始发送一批拥塞窗口内的报文段到开始发送下一批拥塞窗口内的报文段的时间
  • 慢开始与拥塞避免
    在这里插入图片描述
  • 快重传与快恢复
    在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【网络协议详解】——PPP协议(学习笔记)

目录 🕒 1. 数据链路层协议概述🕒 2. PPP协议分析🕘 2.1 概述🕘 2.2 工作流程🕘 2.3 帧格式 🕒 3. LCP协议🕘 3.1 概述🕘 3.2 报文格式🕘 3.3 报文种类🕤 3.3…

3年经验,面试测试岗只会功能测试开口要求18K,令我陷入沉思

由于朋友临时有事, 所以今天我代替朋友进行一次面试,公司需要招聘一位自动化测试工程师,我以很认真负责的态度完成这个过程, 大概近30分钟。 主要是技术面试, 在近30分钟内, 我与被面试者是以交流学习的方式…

STM32F407+LWIP+DP83848以太网驱动移植

最近有个项目上需要用到网络功能,于是开始移植网络相关代码。在移植的过程中感觉好难,网上找各种资料都没有和自己项目符合的,移植废了废了好的大劲。不过现在回头看看,其实移植很简单,主要是当时刚开始接触网络&#…

【数据分享】2020年我国地级市医疗资源空间分布数据(Shp格式/Excel格式)

医疗资源的配置情况直接反映了一个城市的发展水平,医疗资源相关数据也是经常使用到的数据! 我们发现学者刘海猛在科学数据银行(ScienceDB)平台上分享了2020年我国341个城市(地区、州、盟)的基础医疗资源数…

电脑安装软件时,如何避免捆绑安装?

在网络上非正规网站下载安装软件时,经常会遇到捆绑安装的情况。你明明下载了一个软件,电脑上却多出好几个。那么我们在安装软件时,如何才能避免捆绑安装呢? 什么是捆绑安装? 捆绑安装是指用户安装一个软件时&#xff…

Spring boot框架 JWT实现用户账户密码登录验证

目录 1、JWT定义 1、1 JWT工作流程 1、2 JWT优点 2、添加依赖项到pom.xml 3、创建用户实体类 4、实现认证服务 5、登录请求处理 6、生成JWT 1、JWT定义 JWT(JSON Web Token)是一种用于在网络应用间传递信息的安全传输方式。它是一种紧凑且自包含…

tolua源码分析(五)lua使用C#的enum

tolua源码分析(五)lua使用C#的enum 上一节我们讨论了C#类是如何注册到lua的过程,以及lua调用C#函数时底层所做的事情。在此基础之上,本节我们来看看C#的enum是如何注册到lua的,它和一般类的注册有哪些区别。 老规矩&a…

互联网医院资质代办|互联网医院牌照的申请流程

随着互联网技术的不断发展,互联网医疗已经逐渐成为人们关注的热点话题。而互联网医院作为互联网医疗的一种重要形式,也越来越受到社会各界的关注。若想开展互联网医院业务,则需要具备互联网医院牌照。那么互联网医院牌照的申请流程和需要的资…

算法——归并排序和计数排序

Ⅰ. 归并排序 1. 基本思想 归并排序( MERGE-SORT )是建立在归并操作上的一种有效的排序算法 , 该算法是采用分治法( Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;…

Python爬虫| 一文掌握XPath

本文概要 本篇文章主要介绍利用Python爬虫爬取付费文章,适合练习爬虫基础同学,文中描述和代码示例很详细,干货满满,感兴趣的小伙伴快来一起学习吧! 🌟🌟🌟个人简介🌟&…

公司来了个00后,我愿称之为卷王之王,卷的让人崩溃...

前几天我们公司一下子来了几个新人,看样子好像都是一些00后,这些年轻人是真能熬啊,本来我们几个老油子都是每天稍微加会班就打算下班走了,这几个新人一直不走,搞得我们也不好提前走。 2023年春招已经过去了&#xff0…

网络安全前景怎么样?怎么自学?看这一篇就够了

一、网络安全前景 网络安全行业细分岗位比较多,目前需求量比较大的几类网络安全岗位有渗透测试、安全运维、等保测评等,在岗位需求量和薪资待遇方面都比较可观。 这时很多人就会问,网络安全人才需求量这么大,进入行业的人就会越来…

【redis】案例--迷你版微信抢红包

系列文章目录 文章目录 系列文章目录前言在这里插入图片描述 一、业务描述二、需求分析三、架构设计关键点拆红包算法 二倍均值算法 图解 四、编码实现 RedPackageController整体思路:发红包代码进入拆分红包算法抢红包代码 五、多学一手 前言 一、业务描述 二、需求…

鲁棒优化入门(四)——超详细讲解:两阶段鲁棒优化以及列与约束生成算法(CCG)的matlab+yalmip代码实现

本文的主要参考文献: Zeng B , Zhao L . Solving Two-stage Robust Optimization Problems by A Constraint-and-Column Generation Method[J]. Operations Research Letters, 2013, 41(5):457-461. 1.两阶段鲁棒优化问题的引入 鲁棒优化是应对数据不确定性的一种优…

从零玩转设计模式之单例模式-danlimos

title: 从零玩转设计模式之单例模式 date: 2022-12-12 12:41:03.604 updated: 2022-12-23 15:35:29.0 url: https://www.yby6.com/archives/danlimos categories: - 单例模式 - 设计模式 tags: - Java模式 - 单例模式 - 设计模式 前言 单例设计模式是23种设计模式中最常用的设…

面试题背麻了,花3个月面过华为测开岗,拿个26K不过分吧?

计算机专业,代码能力一般,之前有过两段实习以及一个学校项目经历。第一份实习是大二暑期在深圳的一家互联网公司做前端开发,第二份实习由于大三暑假回国的时间比较短(小于两个月),于是找的实习是在一家初创…

基于 ZYNQ 的电能质量系统高速数据采集系统设计

随着电网中非线性负荷用户的不断增加 , 电能质量问题日益严重 。 高精度数据采集系统能够为电能质 量分析提供准确的数据支持 , 是解决电能质量问题的关键依据 。 通过对比现有高速采集系统的设计方案 , 主 控电路多以 ARM 微控制器搭配…

抖音seo排名系统/账号矩阵源码关键词开发部署

抖音seo排名系统/账号矩阵源码关键词开发技术 如何提高 抖音 搜索排名?如何优化抖音搜索排名? 部分代码分析:场景:创建一个Tree()函数来实现以下特性,当我们需要时,所有中间对象 branch1、branch2 和 bra…

Mysql常见的索引模型

目录 有序数组哈希表二叉搜索树B-TreeBTree 有序数组 我们指定一个列为索引,然后按照这个列的值排序,以有序数据存放入数据表中,如下所示 这样,我们在查找数据的时候,就可以通过id这个列,在数据表中进行二…

阿里 P8 整理的《百亿级并发系统设计》实战手册,实在是太香了

面试官问:如何设计一个高并发系统? 说实话,如果面试官问你这个题目,那么你必须要使出全身吃奶劲了。为啥?因为你没看到现在很多公司招聘的 JD 里都是说啥有高并发经验者优先。 如果你确实有真才实学,在互…