【计算机网络原理】第三章 传输层

举报
前端小刘不怕牛牛 发表于 2022/08/08 16:12:25 2022/08/08
【摘要】 一,传输层的基本服务 传输层功能核心任务:为==应用进程==之间提供端到端的==逻辑通信服务==主要内容:传输层寻址;应用层报文的分段和重组;报文的差错检测;进程间的端到端可靠数据传输控制;面向应用层实现复用与分解;端到端流量控制;拥塞控制。注意:传输层协议只需在端系统实现通信的真正端口是主机中运行的应用进程而非主机 传输层寻址与端口端口号:用统一的寻址方法对应用进程进行标识IP地址+端口...

一,传输层的基本服务

传输层功能

  • 核心任务:为==应用进程==之间提供端到端的==逻辑通信服务==
  • 主要内容:
    传输层寻址;
    应用层报文的分段和重组;
    报文的差错检测;
    进程间的端到端可靠数据传输控制;
    面向应用层实现复用与分解;
    端到端流量控制;
    拥塞控制。

注意:
传输层协议只需在端系统实现
通信的真正端口是主机中运行的应用进程而非主机

传输层寻址与端口

  • 端口号:用统一的寻址方法对应用进程进行标识
  • IP地址+端口号 实现唯一标识一个通信端点,这个端点便是应用进程
  • 端口号16位整数,包含三类端口:
    (1)熟知端口号,0~1023 ——如HTTP的80端口
    (2)登记端口号,1024~49151——也是固定分配,使用该范围的端口号需要在IANA登记,以防止重复
    (3)客户端口号或短暂端口号,留给客户进程选择==暂时使用==

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

无连接服务

数据传输之间无需对端进行任何信息交换,直接构造传输层报文端并向接收端发送

——UDP

面向连接服务

在数据传输之前,需要双方交换一些控制信息,建立逻辑连接,然后再传输数据,数据传输后还需要==拆除连接==

——TCP

二,传输层的复用和分解

多路复用与多路分解

支持众多应用进程公用同一个传输层协议,并能够将接收到的数据准确交付给不同的应用进程

在这里插入图片描述

DCP式

DCP的多路复用和多路分解

靠DCP套接字<目的IP地址,目的端口号>判断给哪个端口的应用程序

TCP式

TCP套接字 <源IP地址,源端口号,目的IP地址,目的端口号>

与DCP的区别就是TCP式的多路复用和多路分解是面向连接服务

即==着重分清源端与目的端的连接关系==

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

可靠数据传输基本原理

实现措施

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

停——等协议

  • 主要特点:
    每发送一个报文段后就==停==下来==等==待接收方的确认
    这就是停——等
  • 基本工作进程
  1. 发送方发送经过差错编码和编号的报文段,等待接收方的确认
  2. 若接收方查得差错检测无误同时序号正确,则接收报文段并向发送方发送==ACK==,否则丢弃报文段并向发送方发送==NAK==
  3. 接收方收到ACK,继续发送剩余报文段
    接收方收到NAK,重发刚发送的报文段

滑动窗口协议

停——等协议的主要性能问题

==停——等机制降低了信道的利用率==

解决方法

==流水线协议或管道协议==——允许发送方在没有收到确认前连续发送多个分组

流水线协议的改进

增加分组序号范围

发送方和(或)接收方必须缓存多个分组

滑动窗口协议便是典型流水线协议

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

  1. 回退N步(GBN)协议
    发送端窗口较大,可以在未得到确认前连续发送多个分组;但接收窗口仅为1,未按序到达的分组或某个分组出错,==都会使发送方重新发送==
  2. 选择重传(SR)协议
    接收方窗口>1,缓存正确到达但失序分组,仅要求发送方重传未被接收方确认的分组,等缺失分组到达后一并向上层按序提交
    即==只要分组内不出现错误就缓存下来,获得全部分组在按序发送==

四,用户数据报协议(UDP)

==无连接,不可靠==

UDP数据报结构

  1. 源与目的端口号:用于UDP实现复用和分解
  2. 长度字段:字节数——首部和数据总和
  3. 校验和:接收方用来检测该报文段是否出现差错

UDP校验和

  1. 对所有参与运算的内容(包括UDP报文段)按16位求和
  2. 求和过程中的进位与和的最低位再加
  3. 最后取反码

在这里插入图片描述

五,传输控制协议(TCP)

TCP报文段结构


实现数据分段传输、可靠传输、流量控制、避免网络拥塞

TCP连接管理

连接建立——三次握手

  1. SYN连接请求
    同步请求,在连接建立时用来同步序号
  2. SYNACK确认
    同步确认
  3. ACK确认
    由客户端进行最后一次确认
  4. 握手成功,双方开始数据传输

  • 当SYN=1而ACK=0时,表明这是一个连接请求报文段
  • 对方若同意建立连接,则应在响应的报文段中使SYN=1和ACK=1
  • ACK确认:ACK等于1时确认号字段才有效
  • TCP规定,连接建立后所有传送的报文段都必须将ACK置1

断开连接——四次挥手

  • 终止FIN:用来释放一个连接,当FIN=1,表明报文段的发送方数据已发送完毕,并要求释放传输连接

TCP可靠数据传输

  1. TCP的可靠数据传输实现机制包括差错编码、确认、序号、重传、计时器(上述有提到)
  2. TCP的可靠数据传输基于滑动窗口协议,但发送窗口大小是动态变化
    流程:
    (1)封装TCP报文段,包括校验,序号…
    (2)发出一个报文段后启动一个计时器,通过计时器判断是否重传
    (3)通过校验和发现数据差错
    (4)通过序号重新排序,丢弃重复的报文段
    (5)流量控制

TCP流量控制

利用窗口机制实现流量控制

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

  • 接收端在给发送端发送确认段时,通告接收窗口大小
  • 发送端在接下来发送数据端是,确保未确认段的应用层总量不超过接收端通告的接收窗口大小

TCP拥塞控制

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

  • 窗口调整的基本策略
    AIMD
    网络不拥堵时,窗口可以逐渐增大,速率加快
    网络拥堵,则快速减小窗口大小
    被称为:加性增加,乘性减小
    如当网络不拥堵,可以加性逐步增加窗口的大小,直到网络拥堵,便乘性快速减小

  • 拥塞控制算法
    慢启动,拥塞避免,快速重传,快速恢复

各位看官觉得还不错可以点赞关注一下吗,我是前端小刘不怕牛牛,期待与您共同进步🤗🤗🤗

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。