文章目录

  • 1 运输层协议概述
  • 2 用户数据报协议 UDP
  • 3 传输控制协议 TCP 概述
  • 5 可靠传输的工作原理
  • 6 TCP 报文段的首部格式
  • 7 TCP 可靠传输的实现
  • 8 TCP 的流量控制
  • 9 TCP 的拥塞控制
  • 10 TCP 的运输连接管理

1 运输层协议概述

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

在一台主机中经常有多个应用进程同时分别和另一台主机中的多个应用进程通信。
这表明运输层有一个很重要的功能——复用 (multiplexing)和分用 (demultiplexing)。
根据应用程序的不同需求,运输层需要有两种不同的运输协议,即面向连接的 TCP 和无连接的 UDP 。
但这条逻辑通信信道对上层的表现却因运输层使用的不同协议而有很大的差别。
当运输层采用面向连接的 TCP 协议时,尽管下面的网络是不可靠的(只提供尽最大努力服务),但这种逻辑通信信道就相当于一条全双工的可靠信道。
当运输层采用无连接的 UDP 协议时,这种逻辑通信信道是一条不可靠信道。

UDP:一种无连接协议
提供无连接服务。
在传送数据之前不需要先建立连接。
传送的数据单位协议是 UDP 报文或用户数据报。
对方的运输层在收到 UDP 报文后,不需要给出任何确认。
虽然 UDP 不提供可靠交付,但在某些情况下 UDP 是一种最有效的工作方式。
TCP:一种面向连接的协议
提供面向连接的服务。
传送的数据单位协议是 TCP 报文段 (segment)。
TCP 不提供广播或多播服务。
由于 TCP 要提供可靠的、面向连接的运输服务,因此不可避免地增加了许多的开销。这不仅使协议数据单元的首部增大很多,还要占用许多的处理机资源。
两个不同的概念。
在协议栈层间的抽象的协议端口是软件端口。
路由器或交换机上的端口是硬件端口。
硬件端口是不同硬件设备进行交互的接口,而软件端口是应用层的各种协议进程与运输实体进行层间交互的一种地址。

2 用户数据报协议 UDP

(1) UDP 是无连接的,发送数据之前不需要建立连接,,因此减少了开销和发送数据之前的时延。
(2) UDP 使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的连接状态表。
(3) UDP 是面向报文的。UDP 对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。UDP 一次交付一个完整的报文。
(4) UDP 没有拥塞控制,因此网络出现的拥塞不会使源主机的发送速率降低。这对某些实时应用是很重要的。很适合多媒体通信的要求。

3 传输控制协议 TCP 概述

TCP 是面向连接的运输层协议。
每一条 TCP 连接只能有两个端点 (endpoint),每一条 TCP 连接只能是点对点的(一对一)。
TCP 提供可靠交付的服务。
TCP 提供全双工通信。
面向字节流
TCP 中的“流”(stream)指的是流入或流出进程的字节序列。
“面向字节流”的含义是:虽然应用程序和 TCP 的交互是一次一个数据块,但 TCP 把应用程序交下来的数据看成仅仅是一连串无结构的字节流。

TCP 把连接作为最基本的抽象。
每一条 TCP 连接有两个端点。
TCP 连接的端点不是主机,不是主机的IP 地址,不是应用进程,也不是运输层的协议端口。TCP 连接的端点叫做套接字 (socket) 或插口
端口号拼接到 (contatenated with) IP 地址即构成了套接字

5 可靠传输的工作原理

理想的传输条件有以下两个特点:
(1) 传输信道不产生差错。
(2) 不管发送方以多快的速度发送数据,接收方总是来得及处理收到的数据。
在这样的理想传输条件下,不需要采取任何措施就能够实现可靠传输。
然而实际的网络都不具备以上两个理想条件。必须使用一些可靠传输协议,在不可靠的传输信道实现可靠传输。
在接收方 B 会出现两种情况:
B 接收 M1 时检测出了差错,就丢弃 M1,其他什么也不做(不通知 A 收到有差错的分组)。
M1 在传输过程中丢失了,这时 B 当然什么都不知道,也什么都不做。
在这两种情况下,B 都不会发送任何信息。
如何保证 B 正确收到了 M1 呢?
解决方法:超时重传
A 为每一个已发送的分组都设置了一个超时计时器。
A 只要在超时计时器到期之前收到了相应的确认,就撤销该超时计时器,继续发送下一个分组 M2 。

6 TCP 报文段的首部格式

7 TCP 可靠传输的实现

TCP 连接的每一端都必须设有两个窗口——一个发送窗口和一个接收窗口。
TCP 的可靠传输机制用字节的序号进行控制。TCP 所有的确认都是基于序号而不是基于报文段。
TCP 两端的四个窗口经常处于动态变化之中。
TCP连接的往返时间 RTT 也不是固定不变的。需要使用特定的算法估算较为合理的重传时间。
选择确认 SACK

接收方收到了和前面的字节流不连续的两个字节块。
如果这些字节的序号都在接收窗口之内,那么接收方就先收下这些数据,但要把这些信息准确地告诉发送方,使发送方不要再重复发送这些已收到的数据。

8 TCP 的流量控制

利用滑动窗口实现流量控制

9 TCP 的拥塞控制

在某段时间,若对网络中某资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏。这种现象称为拥塞 (congestion)。
若网络中有许多资源同时产生拥塞,网络的性能就要明显变坏,整个网络的吞吐量将随输入负荷的增大而下降。
出现拥塞的原因:

四种( RFC 5681) :

慢开始 (slow-start)
拥塞避免 (congestion avoidance)
快重传 (fast retransmit)
快恢复 (fast recovery)

可以看出,在拥塞避免阶段,拥塞窗口是按照线性规律增大的。这常称为“加法增大” AI (Additive Increase)。
当出现超时或3个重复的确认时,就要把门限值设置为当前拥塞窗口值的一半,并大大减小拥塞窗口的数值。这常称为“乘法减小”MD (Multiplicative Decrease)。
二者合在一起就是所谓的 AIMD 算法。

10 TCP 的运输连接管理



【408预推免复习】计算机网络(谢希仁第七版)第五章——运输层相关推荐

  1. (~最新合集~)计算机网络谢希仁第七版 第五章课后答案

    5-01 试说明运输层在协议栈中的地位和作用,运输层的通信和网络层的通信有什么重要区别?为什么运输层是必不可少的? 答:运输层处于面向通信部分的最高层,同时也是用户功能中的最低层,向它上面的应用层提供 ...

  2. (最新合集)计算机网络谢希仁第七版 第四章课后答案

    1.网络层向上提供的服务有哪两种?是比较其优缺点. 网络层向运输层提供 "面向连接"虚电路(Virtual Circuit)服务或"无连接"数据报服务前者预约了 ...

  3. (最新合集)计算机网络谢希仁第七版 第三章课后答案

    3-01数据链路(即逻辑链路)与链路(即物理链路)有何区别? "电路接通了"与"数据链路接通了"的区别何在? 答案:数据链路与链路的区别在于数据链路出链路外,还 ...

  4. 考研408 笔记 计算机网络【谢希仁第七版】第二章【物理层】几种复用方式 信道复用技术,频分复用FDM,时分复用TDM,波分复用WDM,码分复用CDM

    2.1物理层基本概念 目的:启动.维护和关闭数据链路实体之间进行比特传输的物理连接. 一些特性: 机械特性:指明接口所用接线器的形状和尺寸.引线数目和排列.固定和锁定装置等等. 电气特性:指明在接口电 ...

  5. 计算机网络总复习(谢希仁第七版)

    计算机网络(谢希仁第七版) 文章目录 计算机网络(谢希仁第七版) 第一章 1.2 互联网概述 1.2.1 网络的网络 1.2.2 互联网的发展(略) 1.3 互联网的组成 1.3.1 边缘部分 1.3 ...

  6. (~最新合集~)计算机网络谢希仁第七版 第二章课后答案

    2-01 物理层要解决哪些问题?物理层的主要特点是什么? 答案:物理层要解决的主要问题: (1)物理层要尽可能地屏蔽掉物理设备和传输媒体,通信手段的不同,使数据链路层感觉不到这些差异,只考虑完成本层的 ...

  7. 计算机网络-谢希仁-第7版 第6章 应用层

    计算机网络-谢希仁-第7版 第6章 应用层 6-01 6-02 6-03 6-04 6-05 6-06 6-07 6-08 6-10 6-14 6-15 6-16 6-19 6-20 6-21 6-2 ...

  8. 计算机网络谢希仁第七版答案

    计算机网络第七版答案 第一章 概述 1-01 计算机网络向用户可以提供那些服务? 答: 连通性和共享 1-02 简述分组交换的要点. 答:( 1 )报文分组,加首部( 2 )经路由器储存转发( 3 ) ...

  9. 计算机网络谢希仁第七版课后答案完整版 微课视频 配套课件

    课后答案完整版 腾讯文档: https://docs.qq.com/doc/DRXNVYWRDRHN0VExi 如何下载腾讯在线文档? https://blog.csdn.net/COCO56/art ...

  10. 计算机网络谢希仁第七版知识点总结

    第一章 概述 1.计算机网络的定义 计算机网络主要是由一些通用的.可编程的硬件互联而成的,而这些硬件并非专门用来实现某一特定目的(例如传送数据或视频信号).这些可编程的硬件能够用来传送不同类型的数据, ...

最新文章

  1. linux setup 进步了网卡,linux 网卡修改小结
  2. 大数据学习笔记二:Ubuntu/Debian 下安装大数据框架Hadoop
  3. 深度学习~卷积神经网络(CNN)概述
  4. 【深度学习】全连接层的作用
  5. python dataframe取列名_python – 获取列名在DataFrame中按其值排序
  6. u盘复制不进去东西_禁止U盘拷贝,再也不让别人复制你电脑里的东西了!
  7. mysql in 数字类型_关于sql where id in 转换成数据类型 int 时失败
  8. Win11cpu不支持怎么办,Win11cpu不支持解决方法
  9. mybatis(二)
  10. ios 图片合成 处理合成模糊 水印 模板图片合成
  11. java连接达梦数据库_java连接达梦数据库的简单代码
  12. flstudio插件找不到_大家都用啥插件啊
  13. CentOS配置静态IP
  14. 案例 | 上海移动:数字化通向互联网的三个路标
  15. js代码实现百度换肤
  16. MATLAB解决常微分方程
  17. 搭建微商城平台,新商云提供源码部署只需3分钟
  18. 记录ubuntu20.04成功编译安装opencv4 c++环境
  19. SEOer必读:50个网站推广方法
  20. 交换机的Zoning技术

热门文章

  1. Initializing libiomp5md.dll, but found libiomp5md.dll already initialized.
  2. 3D Object Detection——BEV-based methods
  3. cannot import name '_C'
  4. 应用程序-特定 权限设置并未向在应用程序容器 不可用 SID
  5. android操作ui线程
  6. vs代码显示波浪线,但没编译错误
  7. 轻量级神经网络:ShuffleNetV2解读
  8. pybind播放视频
  9. 图像的低频是轮廓,高频是噪声和细节 小波变换
  10. ffmpeg解码优化参数