【计算机网络期末复习】第五章 传输层

news2024/11/25 20:39:14

✍个人博客:https://blog.csdn.net/Newin2020?spm=1011.2415.3001.5343
📣专栏定位:为想复习学校计算机网络课程的同学提供重点大纲,帮助大家渡过期末考~
📚专栏地址:
❤️如果有收获的话,欢迎点赞👍收藏📁,您的支持就是我创作的最大动力💪

第五章 传输层

考点

  • 常用熟知端口考不考都应该知道
  • UDP主要考与其他协议之间的关系,比如路由传输协议,应该不会单独考(UDP校验和计算不考)
  • TCP套接字不会考
  • TCP报文段的首部格式是重点,首部长度需要熟知(校验和,紧急指针,伪首部都不会考)
  • 最大报文段MSS和MTU不要弄混,可能会有计算(时间戳补考)
  • 超时重传时间计算比较难一般不会考
  • 选择确认SACK记住是什么
  • 四种拥塞控制四种方法是重点,容易出现大型题目
  • TCP三次握手四次挥手是重点,特别是序号

1. 传输层概述

1.1 传输层概述

传输层的功能:

  1. 传输层提供进程和进程之间的逻辑通信,靠**套接字Socket=(主机IP地址,端口号)**找到应用进程。

    常用的端口号为:0~1023

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7FVkiwWm-1676336183071)(计网笔记.assets/image-20221214165551158.png)]

  2. 传输层对收到的**报文(报文段)**进行差错检测。

    物理层:比特

    数据链路层:帧

    网络层:分组

    运输层:报文段

  3. 传输层的两种协议。

    • 面向连接的传输控制协议TCP: 传送数据之前必须建立连接,数据传送结束后要释放连接。不提供广播或多播服务。由于TCP要提供可靠的面向连接的传输服务,因此不可避免增加了许多开销:确认、流量控制、计时器及连接管理等。可靠,面向连接,时延大,适用于大文件。
    • 无连接的数据报协议UDP: 传送数据之前不需要建立连接,收到UDP报文后也不需要给出任何确认。不可靠,无连接,时延小,适用于小文件。

1.2 TCP连接

  1. TCP是面向连接(虚连接)的传输层协议。
  2. 每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的。
  3. TCP提供可靠交付的服务,无差错、不丢失、不重复、按序到达。可靠有序,不丢不重。
  4. TCP提供全双工通信。
    • 发送缓存:准备发送的数据&已发送但尚未收到确认的数据
    • 接收缓存:按序到达但尚未被接受应用程序读取的数据&不按序到达的数据

TCP报文段首部内容:

  • 序号: 在一个TCP连接中传送的字节流中的每一个字节都按顺序编号,本字段表示本报文段所发送数据的第一个字节的序号
  • 确认号: 期望收到对方下一个报文段的第一个数据字节的序号。若确认号为N,则证明到序号N-1为止的所有数据都已正确收到。
  • 数据偏移(首部长度): TCP报文段的数据起始处距离TCP报文段的起始处有多远,以4B位单位,即1个数值是4B。

选择确认 SACK

若收到的报文段无差错,只是未按序号,中间还缺少一些序号的数据;

通过选择确认,可以只传送缺少的数据而不重传已经正确到达接受方的数据。

1.3 TCP连接管理

TCP连接传输三个阶段:

三次握手:

TCP连接的建立采用客户服务器方式,主动发起连接建立的应用进程叫做客户,而被动等待连接建立的应用进程叫服务器。

假设运行在一台主机(客户)上的一个进程想与另一台主机(服务器)上的一个进程建立一条连接,客户应用进程首先通知客户TCP,他想建立一个与服务器上某个进程之间的连接,客户中的TCP会用以下步骤与服务器中的TCP建立一条TCP连接:

  1. 客户端发送连接请求报文段无应用层数据

    SYN=1,seq=x(随机)

  2. 服务器端为该TCP连接分配缓存和变量,并向客户端返回确认报文段,允许连接,无应用层数据

    SYN=1,ACK=1,seq=y(随机),ack=x+1

  3. 客户端为该TCP连接分配缓存和变量,并向服务器端返回确认的确认,可以携带数据

    SYN=0,ACK=1,seq=x+1,ack=y+1

四次挥手:

参与一条TCP连接的两个进程中的任何一个都能终止该连接,连接结束后,主机中的“资源”(缓存和变量)将被释放。

  1. 客户端发送连接释放报文段,停止发送数据,主动关闭TCP连接。

    FIN=1,seq=u

  2. 服务器端回送一个确认报文段,客户到服务器这个方向的连接就释放了——半关闭状态。

    ACK=1,seq=v,ack=u+1

  3. 服务器端发完数据,就发出连接释放报文段,主动关闭TCP连接。

    FIN=1,ACK=1,seq=w,ack=u+1

  4. 客户端回送一个确认报文段,再等到时间等待计时器设置的2MSL(最长报文段寿命)后,连接彻底关闭。

    ACK=1,seq=u+1,ack=w+1

1.4 TCP和UDP的特点

UDP的特点:

  • UDP是无连接的
  • UDP使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的链接状态(这里面有许多参数);
  • UDP是面向报文的;
  • UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等);
  • UDP支持一对一、一对多、多对一和多对多的交互通信;
  • UDP的首部开销小,只有8个字节,比TCP的20个字节的首部要短。

TCP的特点:

  • TCP是面向连接的。(就好像打电话一样,通话前需要先拨号建立连接,通话结束后要挂机释放连接);
  • 每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的(一对一);
  • TCP提供可靠交付的服务。通过TCP连接传送的数据,无差错、不丢失、不重复、并且按序到达;
  • TCP提供全双工通信。TCP允许通信双方的应用进程在任何时候都能发送数据。TCP连接的两端都设有发送缓存和接收缓存,用来临时存放双方通信的数据;
  • 面向字节流。TCP中的“流”(stream)指的是流入进程或从进程流出的字节序列。“面向字节流”的含义是:虽然应用程序和TCP的交互是一次一个数据块(大小不等),但TCP把应用程序交下来的数据仅仅看成是一连串的无结构的字节流。

2. 可靠传输、流量控制和拥塞控制

2.1 可靠传输

可靠: 保证接收方进程从缓存区读出的字节流与发送方发出的字节流是完全一样的。

确认重传不分家,TCP的发送方在规定的时间内没有收到确认就要重传已发送的报文段。

2.2 流量控制

流量控制:发送方慢点,要让接收方来得及接收

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

在通信过程中,接收方根据自己接收缓存的大小,动态地调整发送方的发送窗口大小,即接收窗口rwnd(接收方设置确认报文段的窗口字段来将rwnd通知给发送方),发送方的发送窗口取接收窗口rwnd和拥塞窗口cwnd的最小值(拥塞窗口:发送方根据自己估算的网络拥塞程度而设置的窗口值,反映网络当前容量)。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JXb2hi5h-1676336183080)(计网笔记.assets/image-20221214213243132.png)]

2.3 拥塞控制

出现拥塞的条件: 对资源需求的总和 > 可用资源

网络中有许多资源同时呈现供应不足 -> 网络性能变坏 -> 网络吞吐量将随输入负荷增大而下降

拥塞控制: 防止过多的数据注入到网络中。全局性

拥塞控制和流量控制的区别:

拥塞控制是发送方自己根据现实情况做出的调整,而流量控制是接收方对发送方进行的调整。

2.4 拥塞控制四种方法

慢开始 拥塞避免

快重传 快恢复

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/346047.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

运动蓝牙耳机怎么选、最适合运动的蓝牙耳机推荐

很多人喜欢跑步时听歌来放松心情起到解压效果。但一般的无线蓝牙耳机很容易脱落丢失,甚至因为防水效果太菜导致耳机进水,很容易就损坏耳机了,加上运动出汗给耳腔带来的黏腻感与长期佩戴引发的疼痛感,这时一款好的运动设备就显得尤…

基于ISO13400 (DoIP) 实现车辆刷写

近年来,在整车研发中基于以太网实现车辆高带宽通讯无疑是人们热议的话题。无论是车内基于车载以太网减少线束成本,实现ADAS、信息娱乐系统等技术,还是基于新的电子电气架构以及远程诊断需求,实现以太网诊断(DoIP&#…

prepend和append同时使用的时候,prepend中的内容不显示

前几天做项目的时候,遇到一个需求,需要做一个类似于下面的样式: 当我看完element的时候,自信满满,这不就是prepend和append嘛,简单!!!此时的我不会想到后续经历的坎坷。 …

手语检测识别

论文:Real-Time Sign Language Detection using Human Pose Estimation Github:https://github.com/google-research/google-research/tree/master/sign_language_detection SLRTP 2020 手语识别任务包括手语检测(Sign language detection&a…

蓝桥杯C/C++VIP试题每日一练之回形取数

💛作者主页:静Yu 🧡简介:CSDN全栈优质创作者、华为云享专家、阿里云社区博客专家,前端知识交流社区创建者 💛社区地址:前端知识交流社区 🧡博主的个人博客:静Yu的个人博客 🧡博主的个人笔记本:前端面试题 个人笔记本只记录前端领域的面试题目,项目总结,面试技…

以掘金示例,利用内链/外链进行网站SEO优化

前言 内链:从自己网站的一个页面指向另外一个页面。通过内链让网站内部形成网状结构,让蜘蛛的广度和深度达到最大化。 外链:在别的网站导入自己网站的链接。通过外链提升网站权重,提高网站流量。 一般来说,内链和外链…

JVM类加载机制

回到2018年的抖音哈哈. 回顾下: java开发环境: java编译运行过程: 1) 编译期:.java源文件,经过编译,生成.class字节码文件 2) 运行期:JVM加载.class并运行.class(0和1) 特点: 跨平台、一次编程,处处报错 名词解释: 1…

线上商超博弈:老将固守,抖音掀浪

配图来自Canva可画 2023年,抖音对本地生活服务的野心愈加膨胀了。 近日,关于“抖音将于3月1日上线全国外卖服务”的消息传得沸沸扬扬。虽然抖音官方出面回应“团购配送”项目在北京、上海、成都等城市试点中,目前暂无具体时间表,…

api是什么意思?又该如何使用呢?

一、应用程序编程接口 API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。 API全称 "…

kkfileview从Git拉取代码编译部署到服务器

今天遇到了需求是,使用kkfileview预览的时候自带的页面嵌套后页面显示的不是很友好,然后就配合前端下载了源码,本地测试运行很完美,但是部署到服务器(centos8)上安装openOffice环境坑死了 1、从gitee拉取代…

计算机网络 - 1. 体系结构

目录概念、功能、组成、分类概念功能组成分类分层结构概念总结OSI 七层模型应用层表示层会话层传输层网络层数据链路层物理层TCP/IP 四层模型OSI 与 TCP/IP 相同点OSI 与 TCP/IP 不同点为什么 TCP/IP 去除了表示层和会话层五层参考模型概念、功能、组成、分类 概念 &#x1f…

kail工具的使用--- cewl

1.介绍 Cewl是一款采用Ruby开发的应用程序,可以给他的爬虫指定URL地址和爬取深度,还可以添加外部链接,接下来Cewl会给你返回一个字典文件,你可以把字典用到类似John the Ripper这样的密码破解工具中。 2.使用 输入以下命令之后…

Python 处理Excel内的数据

(一)案例一介绍 现在有一匹电商产品跟当日销量的数据,如下,总共有上万笔的数据,现在需要统计每个品牌当日的销售量,比如美宝莲今天总共卖出了多少的商品,另外需要统计每个品牌下面的每个子品类…

【Flutter】DartPad 终极在线Dart编程环境

文章目录一、什么是DartPad二、如何使用三、使用技巧四、如何利用好DartPad五、总结一、什么是DartPad "Success is not final, failure is not fatal: it is the courage to continue that counts." - Winston Churchill"成功不是终点,失败不是致命…

cas 登录成功不跳转 CommonUtils.getResponseFromServer

目录报错信息问题背景问题原因现场服务器情况流程修改方法报错信息 2016-08-18 17:05:08.718 [http-bio-8080-exec-9] ERROR org.jasig.cas.client.util.CommonUtils.getResponseFromServer - 连接超时 java.net.ConnectException: 连接超时 java.net.ConnectException: Conne…

Springboot + VUE+Uniapp全套JAVA高端WMS仓库管理系统源码

WMS框架:springboot mybatis redis mysql VUE uniapp 包含:服务端JAVA全套源码, VUE后台前端代码uniapp前端微信小程序源码 说明:uniapp前端如需发布其他端小程序,请自行进行适配调整。 功能: 1、支持入库、质检…

【2023最新教程】从0到1开发自动化测试框架(0基础也能看懂)

一、序言 随着项目版本的快速迭代、APP测试有以下几个特点: 首先,功能点多且细,测试工作量大,容易遗漏;其次,代码模块常改动,回归测试很频繁,测试重复低效;最后&#x…

css书写方式

目录标题一、css是什么?二、css的书写方式1、行内样式【不推荐使用,太固定】2、页面样式(又叫内联样式)3、外联样式【店家推荐】4、import与link标签的区别一、css是什么? css(cascade style sheet)是用来装饰和装扮页…

【速通版】吴恩达机器学习笔记Part4

开启第二课! 目录 1.神经网络概述 2 前向传播(forward propogation)神经网络 3. tensorflow实现 Numpy中的matrix: 用循环写NN: ​用numpy写NN:​ AGI​ 关于矩阵运算的解释(略) 用tf训练…

Redis主从、哨兵、集群原理

1、 前言 大家好,我是捡田螺的小男孩。今天跟小伙伴们一起学习Redis的主从、哨兵、Redis Cluster集群。 Redis主从 Redis哨兵 Redis Cluster集群 1、Redis 主从 面试官经常会问到Redis的高可用。Redis高可用回答包括两个层面,一个就是数据不能丢失&#…