IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 计算机网络原理系列学习笔记(三)——传输层 -> 正文阅读

[网络协议]计算机网络原理系列学习笔记(三)——传输层

前言

网课学习的视频来源:b站《自考04741 计算机网络原理》

本章知识结构

  1. 传输层的基本服务
  2. 传输层的复用与分解
  3. 停—等协议与滑动窗口协议
  4. 用户数据报协议(UDP)
  5. 传输控制协议(TCP)

传输层的基本服务

一、传输层功能
核心任务:为应用进程提供端到端的逻辑通信服务
主要功能

  • 传输层寻址
  • 应用层报文的分段与重组
  • 报文的差错检测
  • 进程间的端到端可靠数据传输控制
  • 面向应用层实现复用与分解
  • 端到端的流量控制
  • 拥塞控制
    需要注意的是:传输层协议提供的是逻辑通信服务,只需在端系统中实现。通信的真正端点并不是主机,而是主机中运行的应用进程。

二、传输层寻址与端口

1.用统一的寻址方法对应用进程进行标识——端口号

2.在全网范围内利用“IP地址+端口号”唯一标识一个通信端点。

3.传输层端口号为16位整数,包含三类端口∶
(1)熟知端口号,数值为0~1023。

(2)登记端口号,数值为1024~49151,为没有熟知端口号的应用程序使用的。使用这个范围的端口号必须在IANA 登记,以防止重复。

(3)客户端口号或短暂端口号,数值为49152~65535,留给客户进程选择暂时使用(具有不固定性)。

  • 例题:以下TCP熟知端口号中,错误的是( )。
    A.POP3:110
    B.SMTP:25
    C.HTTP:80
    D.DNS:53
    【答案】D
    【解析】POP3、SMTP、HTTP都是基于TCP的应用层协议,端口号分别为110,25和80,但DNS是基于UDP的协议,采用UDP 53端口号,而不是 TCP端口。

三、无连接服务与面向连接服务

  • 无连接服务:数据传输之前无需与对端进行任何信息交换(即“握手”),直接构造传输层报文段并向接收端发送。 ——UDP
  • 面向连接服务:在数据传输之前,需要双方交换传输控制信息,建立逻辑连接,然后再传输数据,数据传输结束后还需要再拆除连接。 ——TCP

传输层的复用与分解

  • 多路复用与多路分解:是传输层的一项基本功能,支持众多应用进程共用同一个传输层协议,并能够将接收到的数据准确交付给不同的应用进程。

在这里插入图片描述
无连接与面向连接的多路复用与分解:

  • 无连接:UDP套接字——<目的IP地址,目的端口号>
  • 面向连接:TCP套接字——<源Ip地址,源端口号,目的IP地址,目的端口号> 标识一条TCP连接

停—等协议与滑动窗口协议

一、可靠数据传输基本原理

实现可靠数据传输的措施:

  1. 差错检测:利用差错编码实现数据包传输过程中的比特差错检测。
  2. 确认:接收方向发送方反馈接收状态。
  3. 重传:发送方重新发送接收方没有正确接收的数据。
  4. 序号:确保数据按序提交。
  5. 计时器:解决数据丢失问题。

二、停—等协议
1、停—等协议的主要特点:每发送一个报文段后就停下来等待接收方的确认。

2、停—等协议的基本工作过程是:

  1. 发送方发送经过差错编码和编号的报文段,等待接收方的确认;(发送并等待确认)
  2. 接收方如果正确接收报文段,即差错检测无误且序号正确则接收报文段,并向发送方发送ACK,否则丢弃报文段,并由发送方发送NAK;(接收并确认/否认
  3. 发送方如果收到ACK,则继续发送后续报文段,否则重发刚刚发送的报文段。(继续发送/重发)

3、停—等协议的主要性能问题:停止—等待机制降低了信道利用率。

4、解决方法:流水线协议或管道协议——允许发送方在没有收到确认前连续发送多个分组。

5、流水线协议的改进:增加分组序号范围;发送方和(或)接收方必须缓存多个分组。

6、典型的流水线协议:滑动窗口协议

三、滑动窗口协议
在这里插入图片描述
注释:上图中发送/接收窗口中数字下面带横线意味着是待确认/接收的报文段,而无横线的则是已经确认/接收的报文段

两种最具有代表性的滑动窗口协议:

  • 回退N步(Go-Back-N,GBN)协议:
    发送端窗口大小较大,可以在未得到确认前连续发送多个分组但接收窗口大小仅为1,只能接收1个按序到达的分组,未按序到达的分组或者某个分组差错,就会引起发送方重发该分组及其之后的所有分组。
  • 选择重传(Selective Repeat,SR)协议:
    增加接收方缓存能力(接收窗口>1),缓存正确到达但失序的分组,仅要求发送方重传未被接收方确认的分组,等缺失分组到达后一并向上层按序提交。

用户数据报协议(UDP)

定义:用户数据报协议(UDP)是Internet传输层协议,提供无连接、不可靠、数据报尽力传输服务。

一、UDP数据报结构

  1. 源和目的端口号:用于UDP实现复用与分解。

  2. 长度字段:在UDP报文段中的字节数(首部和数据的总和)。

  3. 校验和:接收方用来检测该报文段是否出现了差错。
    在这里插入图片描述
    计算校验和:

    1.对所有参与运算的内容(包括UDP报文段)按16位(16位对齐)求和;
    
    2.求和过程中遇到的任何溢出(即进位)都被回卷(即进位与和的最低位再加);
    
    3.最后得到的和取反码。
    

传输控制协议(TCP)

一、TCP报文段结构
在这里插入图片描述

  1. 序号:总的一个报文进行划分得到的报文段进行编号
  2. 确认号:接收方接收到数据以后,告知发送方已接收到哪些数据并且希望接下来接收哪些数据
  3. 数据偏移:TCP报文在传输过程中仍然可能会被切分成小的段,由数据偏移来标识同一个序号里的不同小段
  4. URG:紧急指针位——一些特殊情况下紧急指针有效(URG为1,若URG为0则紧急指针位的数据无效)
  5. ACK:为1,确认号的数据则有效
  6. PSH:告知TCP协议此数据可以很快地提交
  7. RST:复位,通知对方需要重新建立TCP连接
  8. SYN:同步请求,在连接时和对方协商报文的起始编号等等
  9. FIN:拆除连接,通信结束

二、TCP连接管理

连接建立——三次握手:

  1. SYN连接请求
  2. SYN/ACK请求
  3. ACK确认

TCP三次握手建立连接过程:
在这里插入图片描述

TCP断开连接的过程——四次挥手
在这里插入图片描述

三、TCP可靠数据传输

1.TCP的可靠数据传输实现机制包括差错编码、确认、序号、重传、计时器等。

2.TCP的可靠数据传输是基于滑动窗口协议,但是发送窗口大小动态变化。

  1. 封装TCP报文段
  2. 发出一个报文段后启动一个计时器
  3. 通过校验和发现数据差错
  4. 通过序号重新排序,丢弃重复的报文段
  5. 流量控制

四、TCP流量控制

1.TCP协议利用窗口机制实现流量控制,但不是简单的滑动窗口协议。

2.TCP连接建立时,双方都为之分配了固定大小的缓冲空间;TCP的接收端只允许另一端发送其缓冲区所能接纳的数据。

  1. 接收端在给发送端发送确认段时,通告接收窗口大小
  2. 发送端在接下来发送数据段时,确保未确认段的应用层数据总量不超过接收端通告的接收窗口大小,从而确保接收端不会发生缓存溢出。

五、TCP拥塞控制

1.窗口机制:
通过调节窗口的大小实现对发送数据速率的调整。

2.窗口调整的基本策略:
AIMD (Additive Increase,Multiplicative Decrease)加性增加,乘性减小;
网络未发生拥塞时,逐渐“加性”增大窗口大小,当网络拥塞时“乘性”快速减小窗口大小。

3.TCP的拥塞控制算法:
包括了慢启动、拥塞避免、快速重传和快速恢复4部分。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-02-14 21:34:12  更:2022-02-14 21:35:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年10日历 -2024/10/5 11:19:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码