当前位置: 首页 > news >正文

计算机网络---传输层

文章目录

  • 1. 传输层提供的服务
    • 1.1 要点概述
    • 1.2 服务介绍
  • 2. UDP
    • 2.1 UDP数据报
    • 2.2 UDP校验
  • 3. TCP
    • 3.1 TCP报文段
    • 3.2 TCP连接管理
    • 3.3 可靠传输 & 流量控制
    • 3.4 拥塞控制
      • 3.4.1 慢开始 & 拥塞避免
      • 3.4.2 快重传 & 快恢复

1. 传输层提供的服务

1.1 要点概述

在这里插入图片描述
强调:

  • 复用(从上到下):在发送数据的时候,同一台主机上的多个进程可以使用同一个传输层协议
  • 分用(从下到上):在接收数据的时候,传输层可以把数据正确交付到目的进程

1.2 服务介绍

在这里插入图片描述
在这里插入图片描述

  • 网络层实现了“主机到主机”的通信。网络层在IP数据报的首部,指明源IP地址、目的IP地址
  • 传输层实现了“端到端”(进程到进程)的通信。传输层在TCP(或UDP)报文段的首部,指明源端口、目的端口

在这里插入图片描述

在这里插入图片描述

  • 开发中只限制熟知端口号不被使用

在这里插入图片描述

2. UDP

2.1 UDP数据报

在这里插入图片描述

  • UDP首部很小,只占8B
  • UDP每次传输一个完整的报文,不支持报文自动拆分、重装
  • UDP是无连接的、不可靠的(可靠性可以交给应用层处理),也不支持拥塞控制
  • UDP支持一对一(封装成单播IP数据报)、一对多传输(封装成广播/多播IP数据报)

简单对比TCP:

在这里插入图片描述

  • TCP首部更大,占20~60B
  • TCP支持报文自动拆分、重装,因此可以传输长报文
  • TCP是有连接的、可靠的、支持拥塞控制
  • TCP仅支持一对一传输(因为通信双方的传输层必须先建立连接)

在这里插入图片描述

  • UDP首部长度固定为8B,数据是指携带的数据部分(也可以没有)
  • UDP必须携带一个完整的报文,不支持报文的拆分和重组
  • UDP校验和部分是校验整个UDP数据报(包含首部和数据部分)
  • UDP没有明确指明首部大小的字段,但是却可以通过其他方式间接得出

对比IP数据报的格式:
在这里插入图片描述

  • IP数据报首部部分最短为20B,最大为60B(可变部分0~40B)
  • IP数据报首部长度字段只指首部长度的大小
  • IP数据报首部校验和只校验首部

在这里插入图片描述
小结:

在这里插入图片描述

2.2 UDP校验

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

小结:

在这里插入图片描述

3. TCP

3.1 TCP报文段

在这里插入图片描述
在这里插入图片描述

强调:

  • TCP并不强制要求每个TCP报文段都满载数据,只要不超过MSS就行

在这里插入图片描述

具体介绍:

在这里插入图片描述

在这里插入图片描述

强调:

  • 序号 — — 序号字段的值指的是本报文段所发送的数据的第一个字节的序号(该序号表示的字节还没被接收)。 如:一报文段序号字段为301,而携带数据为100B,则本报文段数据的最后一个序号为400,那么下一个报文段的数据序号应从401开始,表示我现在发送的是从401开始的数据
  • 确认号 — — 是期望收到对方下一个报文段的第一个数据字节的序号。 若确认号为N,则表明到序号N-1为止的所有数据都已正确收到
  • 序号不一定从0开始
  • 只有ACK=1时,确认号才有效
  • 只有握手①的ACK=0,其他都是ACK=1

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 数据偏移 — — 反映的是首部长度大小。 偏移的含义是指:数据起始序号 - 报文起始序号(末 - 初)

在这里插入图片描述

  • 可以类比快递,URG=1是卖方加急发送快递,快把这个快递发给驿站,PSH=1是驿站收到快递后,加急送到买方手中,然后买方马上确认快递收到(发送确认报文段)
  • 紧急指针要搭配URG使用,只有URG=1,紧急指针才有效,表示的含义是本报文段中紧急数据共有多少字节。延伸:数据从第一个字节到紧急指针所指字节就是紧急数据,如下图

在这里插入图片描述
在这里插入图片描述
注意:(常考小题)

  • 只有握手①、握手②的SYN=1,其他所有TCP报文段都是SYN=0
  • 只有挥手①、挥手③的FIN=1,其他所有TCP报文段都是FIN=0

在这里插入图片描述

在这里插入图片描述
强调:

  • 窗口的单位是字节

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
强调:

  • 握手①、握手②中协商MSS
  • MSS的值是指一个TCP报文段最多携带多少数据 (首部不算在内)

在这里插入图片描述
在这里插入图片描述

3.2 TCP连接管理

很重要的一个图:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

强调:

  • TCP全程中,只有握手①、握手②的SYN=1
  • TCP全程中,只有握手①的ACK=0,其他均为ACK=1
  • 握手①、握手②不能携带数据,但必须消耗一个序号,正如上图标注所示
  • 握手③可以选择携带数据与否,携带则需消耗序号,不携带则不要

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
强调:

  • 只有挥手①、挥手③的FIN=1
  • 挥手①、挥手②、挥手③均可携带数据,但携带数据要消耗对应的序号
  • 挥手①、挥手③不携带数据也得消耗一个序号,也就是说挥手①、挥手③必定会消耗一个序号
  • 挥手④不可以携带数据

在这里插入图片描述

  • 收到挥手③进入时间等待期,是为了防止挥手④在传输过程中丢失,如果丢失,则一定会在2MSL时间内再次收到挥手③,此时计时器需重置
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

小结:

在这里插入图片描述

3.3 可靠传输 & 流量控制

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • (1)经过三次握手建立连接
    在这里插入图片描述
  • (2)发送方发送数据,接收方返回确认号等信息

在这里插入图片描述

  • (3)发送方在发送缓冲区中移出已经确认收到的数据
    在这里插入图片描述

注: 已经收到确认的信息就应及时移出发送缓冲区

在这里插入图片描述

  • (1)发送方连续发出两个报文段,并被服务器收到后,经累计确认,只返回一个确认信息

在这里插入图片描述

  • (2)再收到新数据,接收区满了,清空后,然后返回新接收窗口等确认信息
    在这里插入图片描述
    在这里插入图片描述
  • (1)捎带确认

在这里插入图片描述

  • (2)客户也可以捎带确认

在这里插入图片描述

  • (3)不一定要缓冲区满了才交付数据
    在这里插入图片描述
    在这里插入图片描述
  • (1)发送方发送数据中出错

在这里插入图片描述

  • (2)发送方超时重传
    在这里插入图片描述
    在这里插入图片描述
  • (1)服务器ACK丢失

在这里插入图片描述

  • (2)发送方计时器超时,进行重发

在这里插入图片描述

在这里插入图片描述

  • (1)引入快重传,假设623缺失
    在这里插入图片描述
  • (2)接收方连续收到3个冗余ACK后,进行重传

在这里插入图片描述
在这里插入图片描述

小结:

在这里插入图片描述

注意: 发送窗口“框住”的是发送缓冲区中,已发送但尚未收到确认的数据,以及可以发送但尚未发送的数据

3.4 拥塞控制

3.4.1 慢开始 & 拥塞避免

在这里插入图片描述
在这里插入图片描述
强调:

  • 流量控制:控制端到端的数据发送量,是**“局部的”**
  • 拥塞控制:控制整个网络中每台主机的数据发送量,降低路由器负载,是**“全局的”**

在这里插入图片描述

在这里插入图片描述
强调:

  • 慢开始:每收到一个ACK,就让cwnd+1
  • 拥塞避免:在一个RTT内,只能让cwnd+1

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.4.2 快重传 & 快恢复

在这里插入图片描述
强调:

  • 快重传 — — 收到连续三个冗余ACK,就立即重传
  • 快恢复 — — 发生快重传,将阈值、cwnd设为当前cwnd的一半,然后执行“拥塞避免”

在这里插入图片描述

在这里插入图片描述

至此,第五章就结束了,内容不是很多,重点就是TCP,理解后记忆的遗忘反倒成了难点。要弄清楚三次握手和四次挥手时TCP首部字段(如序号,ACK,确认号等)的变化,以及每次握手、挥手后接收方和发送方各会进入什么状态,掌握如何进行流量控制、可靠传输、拥塞避免,区分流量控制与拥塞避免的不同之处,这些很容易考小题。

参考:《王道计算机考研 计算机网络》
https://www.bilibili.com/video/BV19E411D78Q/?share_source=copy_web

http://www.dtcms.com/a/423760.html

相关文章:

  • 如何在阿里云上做网站制作软件的手机软件
  • 深入理解 Java 虚拟机:从原理到实践的全方位剖析
  • 网站谷歌seo做哪些凌点视频素材网
  • 手机app应用网站C语言做网站需要创建窗口吗
  • uniapp 安卓FTP上传下载操作原生插件
  • 国外知名平面设计网站黄骅打牌吧
  • C++ I/O流与文件操作速查
  • 网站制作哪家好又便宜做电商网站的流程
  • 网络边界突围:运营商QoS限速策略
  • 【笔记】在WPF中Decorator是什么以及何时优先考虑 Decorator 派生类
  • [算法练习]Day 4:定长滑动窗口
  • 外汇交易网站开发做网站前端后台
  • 小红书网站建设目的优化师简历
  • 集群的概述和分类和负载均衡集群
  • 专业的商城网站开发搜索引擎优化不包括
  • 哈尔滨市延寿建设局网站wordpress 主题添加
  • 技术实践指南:多模态RAG从数据预处理到生成响应的完整流程
  • 新中地三维GIS开发智慧城市效果和应用场景
  • 做产品封面的网站赵公口网站建设公司
  • Redis开发07:使用stackexchange.redis库实现简单消息队列
  • RabbitMQ的安装集群、镜像队列配置
  • php 网站后台模板zencart外贸网站建设
  • IS-IS 与 OSPF 路由汇总机制:边界、应用与核心差异深度分析报告
  • 福彩双色球第2025113期篮球号码分析
  • 做网站公司 蓝纤科技百姓网二手车
  • Dubbo源码解读与实战-基础知识(上)
  • 专业网站制作公司招聘造一个官方网站
  • 【网络通信】服务器部署服务的时候服务ip配置127.0.0.1和外网ip的区别
  • 【C++】命名空间
  • [特殊字符] LeetCode 143 重排链表(Reorder List)详解