第三章、运输层(重点知识梳理)

《计算机网络--自顶向下方法》第三章--运输层 计算机网络-自定向下方法:包括UDP协议,TCP协议(数据的可靠交付、时延保证、带宽保证),结合确认,定时器,重传,序号机制,连接管理,流量控制,往返事件估计以及可靠数据传输。TCP端到端的拥塞控制机制等 阅读详情

3.1概述和运输层服务

 

3.1.1运输层概述

运输层协议是为运行在不同主机上的应用进程之间提供逻辑通信

传输协议运行在端系统

  • 发送方:将应用层的报文分成报文段,然后传递给网络层
  • 接收方:将报文段重组成报文,然后传递给应用层

有多个传输层协议可供应用选择

  • Internet:TCP和UDP

3.1.2传输层和应用层的关系

传输层vs网络层

网络层服务:主机之间的逻辑通信

传输层服务:进程之间的逻辑通信

  • 依赖于网络层的服务(延时、带宽)
  • 并对网络层的服务进行增强(数据丢失、顺序混乱、加密)

有些服务是可以加强的,(不可靠到可靠、安全);但有些服务是不可以被加强的(带宽、延迟)。

3.2多路复用和多路分解

多路分解:将传输层报文段的数据到正确的套接字的工作。

多路复用:在源主机从不同套接字中收集数据块,并为每个数据块装上首部信息(这将在以后用于分解)从而生成报文段,然后将报文段传递到网络层的工作。

多路解复用的工作原理:

  • 解复用作用:TCP或者UDP实体采用哪些信息,将报文段的数据部分交给正确的进程
  • 主机收到IP数据报

              每个数据报有元IP地址和目标地址

              每个数据报承载一个传输层报文段

              每个报文段有一个源端口号和目标端口号(特定应用有署名的端口号)

  • 主机联合使用IP地址和端口号将报文段发送给合适的套接字

 1.无连接的多路复用与多路分解

  • 创建套接字

服务器端:

server socket=socket(PF_INET,SOCK_DGRAM,O);

bind(server socket,&sad,sizeof(sad);

server socket和sad的端口号捆绑

客户端:

没有Blind,client socket和OS为之分配的某个端口号捆绑(客户端使用什么端口号无所谓,客户端主动找服务器)

  • 在接收端,UDP套接字用二元组标识(目标IP地址,目标端口号)
  • 当主机收到UDP报文段:检查报文段的目标端口号    用该端口号将报文段定位给套接字
  • 如果两个不同源IP地址/源端口号的数据报,但是有相同的目标IP地址和端口号,则北定位到相同的套接字
2.面向连接的多路复用和多路分解
3.Web服务器与TCP

3.3无连接运输:UDP(User Datagram Protocol)---用户数据报协议

“尽力而为的服务”,报文段可能

  • 丢失
  • 送到的应用进程的报文段乱序

无连接

  • UDP发送端和接收端之间没有握手
  • 每个UDP报文段都被独自的处理

UDP被用于

  • 流媒体(丢失不敏感,速率敏感,应用可控制传输速率)
  • DNS
  • SNMP

在UDP上实现可靠传输:

  • 在应用层增加可靠性
  • 应用待定的差错恢复

为什么要有UDP?

  • 不建立连接(会增加延时)
  • 简单:在发送端和接收端没有连接状态
  • 报文段的头部很小(开销很小)
  • 无拥塞控制和流量控制,UDP可以尽可能快的发送报文段

应用--传输速率=主机--网络的速率

3.1.1UDP报文段结构

3.3.2 UDP检验和

目标:检测在被传输报文段中的差错(如比特反转)

发送方:

  • 将报文段的内容视为16比特的整数
  • 校验和:报文段的加法和(1的补运算)
  • 发送方将校验和放在UDP的校验和字段

接收方:

  • 计算接收到的报文段的校验和
  • 检查计算出的校验和字段的内容是否相等,不相等---检查到差错;相等---没有检查到差错(可能还存在差错)

 3.4可靠数据传输

3.4.1可靠数据(rdt)传输的原理

  • rdt在应用层,传输层和数据链路层都很重要
  • 是网络Top10问题之一
  • 信道的不可靠特点决定了可靠数据传输协议(rdt)的复杂性

我们将:

  • 渐增式地开发可靠数据传输协议(rdt)的发送方和接受方
  • 只考虑单向传输    但控制信息是双向流动的!
  • 双向流动的数据传输问题实际上是2个单向数据传输问题的综合
  • 使用有限状态机(FSM)来描述发送方和接受方

3.4.2 rdt1.0:在可靠信道上的数据传输

下层的信道是完全可靠的

  • 没有比特差错
  • 没有分组丢失

发送方和接收方的FSM

  • 发送方和数据发送到下层信道
  • 接收方从下层信道接收数据

3.4.3 rdt2.0:具有比特差错的信道

用校验和来检验比特差错

问题:怎么从差错中恢复;

  • 确认(ACK):接收方显式地告诉发送分组已被正确接收
  • 否认确认(NAK):接收方显式地告诉发送方分组发生了丢失    发送方收到NAK后,发送方重传分组

rdt2.0中的新机制:采用差错控制编码进行差错检测

  • 发送方差错控制编码,缓存
  • 接收方使用编码检错
  • 接收方的反馈:控制报文(ACK,NAK):接收方----发送方
  • 发送方收到反馈相应的动作

3.4.4 rdt2.1发送方和接收方处理出错的ACK/NAK 

rdt2.1:讨论

发送方:

  • 在分组中加入序列号
  • 两个序列号(0,1)就足够了    一次只发送一个未经确认的分组
  • 必须检测ACK/NAK是否出错(EDC)
  • 状态数变成了两倍           必须记住了当前分组的序列号为0还是1

接收方:

  • 必须检测接收方的分组是否是重复的    状态会指示希望接收到的分组的序号为0还是1

注意:接收方并不知道发送方是否正确接收到了其ACK/NAK

  •     没有安排确认的确认
  • 具体解释见下

接收方不知道最后发送的ACK/NAK是否被正确地收到

  • 发送方不对收到的ACK/NAK给确认,没有所谓的确认的确认;
  • 接收方发送ACK,如果后面接收方收到的是:

           老分组PO?  则ACK错误

           下一个分组?p1,ACK正确

3.4.5 rdt2.2:无NAK的协议 

功能同rdt2.1,但只使用ACK(ACK要编号)

接收方对最后正确接收的分组发送ACK以代替NAK

  • 接收方必须是显示地包含被正确接受分组的序号

当收到重复的ACK(如:再次收到ack0),发送方与收到NAK采取相同的动作:重传当前分组

为后面的一次发送多个数据单位做一个准备

  • 一次发送多个
  • 每一个的应答都有:ACK,NAK;麻烦
  • 使用对前一个数据单位的ACK,代替本数据单位的NAK
  • 确认信息减少的一半,协议处理简单

3.4.6 rdt3.0:具有比特差错和比特丢失的信道 

  • 新的假设:下层信道可能会丢失分组(数据或ACK)
  • 会锁死
  • 机制还不够处理这种状况:

        检验和    序列号    ACK    重传

方法:发送方等待ACK一段合理的时间

  • 发送方端时重传;如果到时没有收到ACK----重传
  • 问题;如果分组(ACK)只是被延迟了;

                重传将会导致数据重复,但利用序列号已经可以处理这个问题

                接收方必须指明备被正确接收的序列号

  • 需要一个倒计时定时器

链路层的time out时间是确认的

传输层timeout时间是适应式的

  • 过早超时(延迟的ACK)也能够正常工作;但是效率较低,一般的分组和确认是重复的
  • 设置一个合理的超时时间也是比较重要的

rdt3.0的性能

  • rdt3.0可以工作,但是链路容量比较大的情况下,性能较差

链路容量比较大,一次发一个PDU的不能够充分利用链路的传输能力

 3.4.7 选择重传(SR)

  • 接收方对每一个正确接收的分组,分别发送ACKn(非累计确认)

接收方窗口>1    可以缓存乱序的分组

  • 发送方只对那些没有收到ACK的分组进行重发-选择性重发

        发送方为每一个未确认的分组设定一个计时器

  • 发送窗口的最大值(发送缓冲区)限制发送未确认分组的个数

选择重传

发送方:

从上层接收数据:

  • 如果下一可用该分组的序号可在发送窗口中,则发送time out(n):
  • 重新发送分组n,重新设定定时器 
  • 将分组n标记为已接收
  • 如n为最小未确认的分组序号,将base移到下一未确认序号

接收方:

  • 发送ACK(n)
  • 乱序:缓存
  • 有序:该分组及以前缓存的序号连续的分组交付给上层,然后将窗口移动到下一个仍未被接收的分组
  • 忽略该分组

3.5面向连接的传输:TCP

  •  点对点:

一个发送方,一个接收方

  • 可靠的,按顺序的字节流:

没有报文边界

  • 管道化(流水线):

TCP拥塞控制和流量控制设置窗口大小

  • 发送和接收缓存
  • 全双工数据:

在同一连接中数据流双向流动

MSS:最大报文段大小

  • 面向连接    在数据交换之前,通过握手(交换控制报文)初始化发送方,接收方的状态变量
  • 有流量控制    发送方不会淹没接收方

TCP序号,确认号

  • 序号:报文段首字节在字节流的编号
  • 确认号:

                   期望从另一方收到的下一字节的序号

                    累计确认

     Q:接收方如何处理乱序的报文段--没有规定

       TCP往返时延(RTT)和超时

Q:怎样设置TCP超时?

  • 比RTT要长  但RTT是变化的
  • 太短:太早超时           不必要的重传
  • 太长:对报文段丢失    反应太慢,消极 
运输层知识梳理 目录 目录 运输层概述 运输层的多路复用与多路分解 运输层协议概述 UDP协议 TCP协议 TCP连接建立与关闭 TCP可靠数据传输问题 TCP拥塞控制问题 运输层概述 定义 运输层,也叫传输层,实现端对端的传输,应用层进程得到消息后交给传输层变成数据段,然后交予网络层。 它位于网络层之上,应用层之下,为运行在不同主机上的应用进程之间提供了逻辑通信功能。 与... 阅读详情

相关推荐

《嵌入式系统原理与应用》 | 嵌入式系统 重点知识梳理

写在前面: 参考资料: 清华大学出版社 嵌入式系统原理及应用:基于ARM Cortex-M3 内核的STM32F103系列微控制器 同类梳理: 《数据库系统概论》第五版(王珊版)全书知识梳理 《计算机组成原理》第五版(唐朔飞考研版) 全书知识梳理 《数据结构》C语言版 (清华严蔚敏考研版) 全书知识梳理 ...

12 26 25 的博客 1万+

运输层:TCP报文段的首部格式

这里写自定义目录标题1 引入2 源端口、目的端口3 与TCP实现可靠传输相关的:序号字段、确认号字段、确认标志位ACK4 数据偏移5 保留字段6 窗口7 校验和字段8 同步标志位SYN9 终止标志位FIN(表明发送的是连接释放报文段)10 符位标志位RST11 推送标志位PSH12 紧急标志位URG、紧急指针字段用于实现紧急操作13 选项部分14 填充15 小结 1 引入 2 源端口、目的端口 下面举例说明源端口和目的端口的作用。 假设主机中的浏览器进程要访问Web服务器中的Web服务器进程。 为简单

qq_60225495的博客 472

【复习】物联网导论知识梳理

物联网导论复习——知识梳理 二到八章重点思维导图 第二章:《RFID与物联网应用》 第三章:《传感器与传感网技术》 第四章:《物联网智能硬件与嵌入式系统》 第5章:《物联网通信与网络技术》 第六章:《位置信息、定位技术与位置服务》 第七章:《物联网智能数据处理技术》 第八章:《物联网网络安全》

weixin_52777510的博客 6291

5.运输层(TCP报文段)

进程之间的通信从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。当网络的边缘部分中的两个主机使用网络的核心部分的功能进行端到端的通信时,只有位于网络边缘部分的主机的协议栈才有运输层,而网络核心部分中的路由器在转发分组时都只用到三层(到网络层)的功能。① 传输层 : 主机才有传输层;② 网络层 : 网络层设备 , 如 : 路由器 , 最高只到 网络层;

m0_46250597的博客 1531

运输层之 TCP 报文段首部格式 与可靠传输的实现

每篇一句:方如棋盘,圆如棋子,动如棋生,静如棋死;  ——《曾国藩》   TCP 报文段首部格式 TCP 传送的数据单元是 报文段。一个 TCP 报文段可分为 首部 和 数据 两部分。首部的前 20 个字节是固定的,后面有 4n 字节是根据需要而增加的选项 首部固定部分各字段意义: 1.源端口和目的端口 各占 2 个字节。分别为 源端口号 和 目的端口号 2.序号 ...

TimberLiu 的博客 1426

第五章.运输层:5.5TCP报文段的首部格式

TCP报文段的首部格式。

月光晒了很凉快的博客 751

C语言重点知识梳理

核心定义C 语言无专门 “字符串类型”,字符串是以空字符'\0'(ASCII 值为 0)结尾的字符数组'\0'是字符串的终止标志,不计入字符串长度,但占用内存空间与字符数组的区别字符数组:仅存储字符序列,未必以'\0'结尾(如字符串:字符数组 + 末尾'\0'(如总结:逻辑关系上,字符串包含于字符数组。即字符数组不一定是字符串,但是字符串一定是字符数组。1.核心概念:(1)指针是地址的别名(2)指针变量是存储内存地址的变量(本质是“地址容器”,其值为另一个变量的内存地址)

2401_86628113的博客 1401

运输层核心总结

运输层位于网络层之上、应用层之下,核心职责是为应用进程提供,屏蔽网络层的异构性和不可靠性。通过 UDP 和 TCP 两种核心协议,分别提供无连接的尽最大努力交付和面向连接的可靠交付服务,依托端口实现进程间通信的复用与分用,搭配流量控制、拥塞控制、连接管理等机制,为上层应用提供灵活、可靠的传输支撑,是实现进程间高效通信的关键层。

m0_71868960的博客 1198

NPDP产品经理认证知识体系指南重点知识梳理PDF下载:你的学习助力工具

NPDP产品经理认证知识体系指南重点知识梳理PDF下载:你的学习助力工具 【下载地址】NPDP产品经理认证知识体系指南重点知识梳理PDF下载 《NPDP产品经理认证知识体系指南》重点知识梳理PDF,是一份针对《产品经理认证(NPDP)知识体系指南》一书核心内容的精华提炼。该文档通过摘录和整理书中各章节的关键知识点,帮助初...

gitblog_06784的博客 752

《NPDP产品经理认证知识体系指南》重点知识梳理PDF下载

《NPDP产品经理认证知识体系指南》重点知识梳理PDF下载 【下载地址】NPDP产品经理认证知识体系指南重点知识梳理PDF下载 《NPDP产品经理认证知识体系指南》重点知识梳理PDF,是一份针对《产品经理认证(NPDP)知识体系指南》一书核心内容的精华提炼。该文档通过摘录和整理书中各章节的关键知识点,帮助初学者快速掌握核...

gitblog_06796的博客 602

CDGP重点知识梳理

CDGP合计82个重点知识梳理

百老讲数据 281

C++重点知识梳理(上)

学习C++的知识梳理

qq_42882091的博客 1188

人工智能课程重点知识梳理与复习指南

模糊计算则通过隶属度函数处理不精确信息,需了解模糊化、模糊推理和解模糊的全过程。三大主要学派(符号主义、连接主义、行为主义)各有侧重,分别从功能模拟、结构模拟和行为模拟的角度探索智能实现路径。可信度方法采用[-1,1]区间的CF值直观表示确定性程度,三种不同情况下的CF值组合公式需要重点掌握。平台的一键部署功能让学生能快速搭建各种AI算法演示环境,将抽象理论转化为可视化的运行实例,大大降低了学习门槛。重点攻克状态空间表示、消解原理、A*算法等高频考点,通过模拟试题检验知识掌握程度。

BlueTiger92的博客 255

《离散数学》每章内容及其重点梳理

梳理下《离散数学》的每章内容及其重点(老师给的课件),放在一起方便看。 一、数理逻辑 典型例题: 二、集合论 典型例题: 三、代数结构 典型例题: 四、图论 典型例题: ...

Until_U的博客 1万+

梳理概括 将知识系统化并梳理重点,形成初步的框架

作者:禅与计算机程序设计艺术 1.简介 随着科技的飞速发展,计算机技术已经成为人类历史上最具革命性的发明之一。通过计算机技术,我们可以快速、高效地处理大量的数据,实现高精度的计算,解决复杂的问题。然而,仅仅掌握了基础的算法和数据结构,并不能胜任实际应用场景的需求。因此,必须学习复杂的算法理论才能更好地理

AI天才研究院 1217

JVM16个知识梳理&JMM重点

文章目录JVM0 面试题0.0 知识点 JVM 0 面试题 1、请你谈谈对JVM的理解 2、java8虚拟机和之前的变化更新? 3、什么是OOM,什么是栈溢出StackOverFlowError?怎么分析 4、JVM的常用调优参数有哪些? 5、内存快照如何抓取,怎么分析Dump文件?知道吗? 6、谈谈JVM中,类加载器你的认识? rt-jar等 7、补充:new一个对象的内存分析 0.0 知识点 1、JVM的位置 2、JVM的体系结构 3、类加载器 作用:加载

ThetaQing的博客 516

Hive 知识重点梳理

Hive 知识网络梳理 1. Hive数据倾斜 原因 key分布不均匀 业务数据本身的特性 SQL语句造成数据倾斜(示例如下) 解决方法 1. hive设置如下 hive.map.aggr=true 在map中会做部分聚集操作,效率更高但需要更多的内存。 hive.groupby.skewindata=true 有数据倾斜的时候进行负载均衡,当选项设定为true,生成的查询计划会有两个MR Jo...

djx1085213329的博客 568

开学季干货:知识梳理与经验分享全攻略

新学期伊始,如何高效学习成为关键。本文提供实用的知识梳理方法(思维导图、分类法、费曼学习法等),针对不同学科(理科重逻辑推导、文科重时间线)的整理要点,分享课堂技巧、时间管理及错题管理经验,并推荐XMind、Notion等优质学习工具。帮助同学们建立系统学习体系,在新学期实现成绩与能力的双重提升。

互联网改遍了世界。 1207
上一篇: Vsftpd服务的部署及优化
下一篇: Linux中内核加强型火墙的管理
Z_RINGRUI
博客等级 码龄5年 31粉丝 · 62原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值