计算机网络重点概念整理-第五章 传输层【期末复习|考研复习】

news2025/1/10 14:00:19

第五章 传输层 【期末复习|考研复习】

计算机网络系列文章传送门:
第一章 计算机网络概述
第二章 物理层
第三章 数据链路层
第四章 网络层
第五章 传输层
第六章 应用层
第七章 网络安全
计算机网络整理-简称&缩写


文章目录

  • 第五章 传输层 【期末复习|考研复习】
  • 前言
  • 五、传输层
    • 5.1 传输层提供的服务
      • 5.1.1 传输层功能
      • 5.1.2 传输层的寻址与端口
    • 5.2 UDP协议
    • 5.3 TCP协议
      • 5.3.1 TCP协议的特点
      • 5.3.2 TCP报文段
      • 5.3.3 TCP管理连接
      • 5.3.4 TCP的可靠传输
      • 5.3.5 TCP的流量控制
      • 5.3.6 TCP的拥塞控制
  • 下一章 第六章 应用层


前言

给大家整理了一下计算机网络中的重点概念,以供大家期末复习和考研复习的时候使用。
参考资料是王道的计算机操作系统和西电的计算机操作系统。


五、传输层

5.1 传输层提供的服务

5.1.1 传输层功能

传输层的功能如下:1、传输层提供应用进程之间的逻辑通信即端到端的通信,与网络层之间的区别为网络层提供的是主机之间的逻辑通信,即使网络层协议不可靠,传输层同样能为应用程序提供可靠的服务。2、复用分用。复用是指发送方不同的应用进程都可以使用同一个传输层协议传送数据;分用是指接收方的传输层在剥去报文的首部后能把这些数据正确的交付到目的应用进程,网络层也同样有复用分用的功能。3、传输层还要对收到的报文进行差错检验,检验其首部和数据部分;而网络层是检查IP数据报的首部,不检验数据部分是否出错。4、传输层提供两种不同的传输协议即面向连接的TCP和无连接的UDP,而网络层无法实现两种协议要么只提供面向连接的服务如虚电路,要么只提供无连接服务如数据报,而不可能在网络层同时存在这两种方式。

5.1.2 传输层的寻址与端口

端口是传输层服务访问点TSAP,它在传输层的作用类似于IP地址在网络层的作用或MAC地址在数据链路层的作用,只不过IP地址和MAC地址标识的是主机而端口标识的是主机中的应用进程。传输层使用的是软件端口。
端口号采用16位标志端口号,一共为65535个端口。端口号分为服务器端使用端口号和客户端使用端口号。服务器端使用的端口号分为熟知端口号0到1023和登记端口号1024到49151。常用的端口号如下:文件传输协议FTP(21)、远程登录协议TELNET(23)、电子邮件传输协议SMTP(25)、域名系统协议DNS(53)、简单文件传输协议TFTP(69)、超文本传输协议HTTP(80)、简单网络管理协议SNMP(161)、超文本传输安全协议HTTPS(443)、邮局协议POP3(110)。
在网络中通过IP地址来标识和区别不同主机,通过端口号来标识和区别一台主机的不同进程,端口号拼接到IP地址即形成套接字Socket,在网络中采用发送方和接收方的套接字来识别端点。套接字实际上是一个通信端点,它唯一的标识网络中的一台主机和其上的一个应用进程。
TCP提供面向连接的服务在传输数据之前必须建立连接传输,结束后要释放连接。TCP不提供广播或组播服务。 TCP 要进行确认、流量控制、计时器及连接管理等,因此TCP适合用于可靠性更高的场合如文件传输协议FTP、超文本传输协议HTTP、远程登录协议TELNET等。UDP是一个无连接的非可靠传输层协议,它在IP之上仅提供两个服务,多路复用和对数据的错误检查,UDP在使用前不需要建立连接,收到UDP报文后也无需任何确认。UDP比较简单因此执行速度较快实时性更好,使用UDP的应用包括小文件传输协议TFTP、DNS、SNMP和实时传输协议RTP等。
IP数据包和UDP数据报的区别:IP数据报在网络层要经过路由的存储转发而UDP数据报在传输层的端到端的逻辑通信中传输,封装成IP数据包在网络层传输时,UDP数据报的信息对路由是不可见的。TCP和网络程序电路的区别:TCP报文段在传输层的端到端的逻辑通信中传输,对路由不可见,虚电路经过交换节点必须保存虚电路的状态信息,在网络层若采用虚电路的方式则无法提供无连接服务而传输层采用TCP不影响网络层提供无连接服务。

5.2 UDP协议

UDP仅在IP数据报的服务之上增加了复用分用及差错检验以及端口功能。UDP数据报包含两个部分:UDP首部和用户数据报,UDP首部有8B,有四个字段,包括源端口号、目的端口号、长度和校验和。
1、无需建立连接,不会引入建立连接的时延。2、无连接状态,因此能支持更多的活动客户机。3、分组首部开销小,TCP有20B的首部开销而UDP只有8B。4、UDP没有拥塞控制,满足以稳定速度发送,容忍丢失但不允许较大时延的要求。5、UDP支持一对一、一对多、多对一和多对多的需求。6、UDP不保证可靠交付,给因此所有的维护可靠性的工作可由用户在应用层来完成。7、UDP是面向报文的,仅在添加首部后就向下交付给IP层。
在这里插入图片描述

UDP的伪首部仅在计算和校验时用到。长度为12B。既不上交也不传。
UDP常用于DNS、SNMP、多媒体应用、IP电话、实时会议、流媒体等。
UDP的伪首部的第四字段时17,而TCP是6。

5.3 TCP协议

5.3.1 TCP协议的特点

其任务是在IP层不可靠的、尽力而为的服务的基础上确立一种可靠的数据传输服务。特点如下:1、TCP只能是一对一的。2、TCP提供可靠的交付服务保证无差错、不丢失、不重复且有序。3、TCP提供全双工通信并且TCP连接两端设有发送缓存和接收缓存用来临时存放双向通信的数据。4、TCP是面向连接的。5、TCP是面向字节流的。6、TCP报文的长度是由接收方窗口值和当前网络的拥塞程度来确定,而UDP报文的长度是由发送应用程序决定。

5.3.2 TCP报文段

TCP传送数据单元称为报文段,TCP报文段即可以用来运载数据也可以用来建立连接、释放连接和应答。一个TCP报文分为首部和数据两部分,整个TCP报文段作为IP数据报的数据部分封装在IP数据包中,其首部的前20字节是固定的,TCP报文段的首部最短为20B。
在这里插入图片描述

确认号是期望收到对方下一个报文段的第一个数据字节的序号如果确认后为N则导游序号N减1为止的所有数据已正确收到。
紧急位URG、确认位ACK(确认位为1有效,为0无效)、推送位PSH、复位位RST(表示出现严重差错必须重新连接)、同步位SYN(表明这是个连接请求或连接接受报文)、终止位FIN(释放连接)。

5.3.3 TCP管理连接

TCP是面向连接的协议,每个TCP连接都有三个阶段:连接建立、数据传输和连接释放。TCP连接的端口为套接字或插口,每个TCP连接唯一的被通信的两个端点确定,即被两个个套接字确定。TCP连接采用客户/服务器方式,主动发起连接建立的应用进程称为客户,而被动等待连接建立的应用进程称为服务器。
ACK-确认位,SYN-同步位(只有建立连接时SYN为1其余为0),FIN-终止位,ack确认号,seq序号。
在这里插入图片描述
连接建立:1、SYN=1,seq=x(随机)。2、SYN=1,ACK=1,seq=y,ack=x+1。3、SYN=0,ACK=1,seq=x+1,ack=y+1。
在这里插入图片描述
释放连接:1、FIN=1,seq=u。2、ACK=1,seq=v,ack=u+1。3、FIN=1,ACK=1,seq=w,ack=u+1。。4、FIN=0,ACK=1,seq=u+1,ack=w+1。必须等待2MSL最大报文段寿命后客户机才进入CLOSED状态。

5.3.4 TCP的可靠传输

TCP使用校验、序号、确认和重传等机制来达到可靠传输的目的,校验机制与UDP校验一样。TCP默认使用累计确认。TCP对于两种事件会导致对报文段进行重传:超时和冗余ACK。对于超时:TCP采用一种自适应算法记录一个报文段发出的时间以及收到相应确认的时间,这两个时间之差称为报文段的往返时间,而TCP保留一个RTT的加权平均值,它会随着新测量的RTT的样本值而变化。对于冗余ACK:当接收端收到3个以上的冗余AC K时则可以认为该报文段已丢失,则快速重传该报文段。
RTT的赋值=(1-a)oldRTT+anewRTT

5.3.5 TCP的流量控制

为了匹配发送方的发送速率与 接收方的读取速率,TCP提供流量控制服务来消除发送方使接收方缓存区溢出的可能性。TCP提供一种基于滑动窗口协议的流量控制机制,在通信过程中接收方根据自己接收缓存的大小动态的调整发送方的发送窗口大小称为接收窗口rwnd,即调整TCP报文段首部的窗口字段,来限制发送方向网络注入的报文的速率,同时发送方会根据其对当前网络拥塞程度的估计而确定窗口值,称为拥塞窗口cwnd。
TCP为每个连接设置一个持续的计时器,只要TCP收到对方零窗口通知,就启动持缓计时器,时间到期就发送一个零窗口探测报文段,接收方给出当前的窗口值若仍是零,则返回重新计时。
传输层和数据链路层的流量控制的区别:传输层定义的端到端用户之间的流量控制,数据链路层定义2个中间 的相邻节点的流量控制,另外数据链路层的滑动窗口协议的窗口大小不能动态变化而传输层的则可以动态变化。

5.3.6 TCP的拥塞控制

拥塞控制是指防止过多的数据注入网络保证网络中的路由器或链路不致过载,拥塞控制和流量控制的区别:拥塞控制是让网络能够承受现有的网络负荷,是一个全局性的过程涉及所有主机路由器。相反流量控制往往是指点对点的通信量的控制,是一个端到端的问题,他所要做的是抑制发送端发送数据的速率以便接收端来得及接收。两者也有相似的地方即都是通过控制发送方的发送速率来达到控制效果。
发送窗口的上限值=min{rwnd,cwnd}。拼车网建议标准定义了进行拥塞控制的4种算法:慢开始、拥塞避免、快重传和快恢复。
慢开始算法在TCP刚刚建立好并开始发送TCP报文段时,先令拥塞窗口cwnd等于1即一个最大报文段长度MSS,每收到一个对新报文段的确认将cwnd加1即增大一个MSS,用这样的方法逐步增大发送方的cwnd可使分组注入网络的速率更加合理。cwnd的大小指数式增长,直到cwnd的增大到一个规定的慢开始门限ssthresh然后改用拥塞避免算法。
拥塞避免算法的思路是当cwnd到达慢开始门限时,让拥塞窗口cwnd缓慢增大,每经过一个往返时延RTT就把发送方的拥塞窗口cwnd加1,使拥塞窗口cwnd线性规律缓慢增长。无论在慢开始阶段还是在拥塞避免阶段只要发送方判断网络出现拥塞未按时收到确认就把慢开始门限设置为出现拥塞时发送方的cwnd的值的一半,但不能小于2,然后把拥塞窗口cwnd的重新设置为1,执行慢开始算法。这样的目的是迅速减少主机发送到网络中的分组数,使得发生拥塞的路由器有足够的时间把队列中积压的分组处理完。cwnd值不能跃过ssthresh值。
快充传:当发送方连续收到3个重复的ACK报文时直接重传对方尚未收到的报文,而不必等待那个报文段设置的重传计时器超时。快恢复的算法原理如下:当发送方连续收到3个冗余ACK时执行快恢复算法,把慢开始门限设置为此时发送方cwnd的一半,这是为了预防网络发生拥塞。
在这里插入图片描述
在TCP建立和网络出现超时时采用慢开始和拥塞避免算法当发送方接收到冗余ACK采用快重传和快恢复算法

下一章 第六章 应用层

第六章 应用层

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

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

相关文章

通过宏定义解决编程难题

大家好,我们今天来通过我们的define定义宏解决C语言上的难题。 实例一: offsetof这个宏我们在学习结构体的时候就已经了解过了,这个宏是我们在计算结构体大小的时候来查看每个结构体成员的偏移量的,那么我们在这里就来模拟实现一…

【LeetCode:2558. 从数量最多的堆取走礼物 | 大根堆】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

面试算法43:在完全二叉树中添加节点

题目 在完全二叉树中,除最后一层之外其他层的节点都是满的(第n层有2n-1个节点)。最后一层的节点可能不满,该层所有的节点尽可能向左边靠拢。例如,图7.3中的4棵二叉树均为完全二叉树。实现数据结构CBTInserter有如下3种…

线程状态,BLOCKED和WAITING 有什么区别

BLOCKED 和 WAITING 都是属于线程的阻塞等待状态。 BLOCKED BLOCKED 状态是指线程在等待监视器锁的时候的阻塞状态。 也就是在多个线程去竞争 Synchronized 同步锁的时候,没有竞争到锁资源的 线程,会被阻塞等待,这个时候线程状态就是 BLOCK…

众和策略:数据要素市场腾飞在即 游戏市场持续高增长

昨日,两市股指早盘弱势下探,午后沪指在银行、电力等板块的带动下发力拉升,深成指、创业板指均走高。到收盘,沪指涨0.48%报2988.3点,深成指涨0.4%报9566.1点,创业板指涨0.65%报1875.86点;两市合计…

[javaweb]——spring框架之控制反转(IOC)与依赖注入(DI)

🌈键盘敲烂,年薪30万🌈 目录 一、概念介绍 二、示例演示 2.1 代码高内聚问题 2.2 三层架构 2.3 分层解耦 2.4 分层解耦的实现 📕总结 一、概念介绍 控制反转:简称IOC,对象的创建控制权由程序自身转…

vulnhub_DeRPnStiNK靶机渗透测试

VulnHub2018_DeRPnStiNK靶机 https://www.vulnhub.com/entry/derpnstink-1,221/ flag1(52E37291AEDF6A46D7D0BB8A6312F4F9F1AA4975C248C3F0E008CBA09D6E9166) flag2(a7d355b26bda6bf1196ccffead0b2cf2b81f0a9de5b4876b44407f1dc07e51e6) flag4(49dca65f362fee401292ed7ada96f9…

人工智能基础_机器学习006_有监督机器学习_正规方程的公式推导_最小二乘法_凸函数的判定---人工智能工作笔记0046

我们来看一下公式的推导这部分比较难一些, 首先要记住公式,这个公式,不用自己理解,知道怎么用就行, 比如这个(mA)T 这个转置的关系要知道 然后我们看这个符号就是求X的导数,X导数的转置除以X的导数,就得到单位矩阵, 可以看到下面也是,各种X的导数,然后计算,得到对应的矩阵结…

ADI模数转换AD7091的SPI驱动接口verilog,代码/视频

名称:ADI模数转换AD7091的SPI驱动 软件:QuartusII 语言:Verilog 代码功能: 完成ADI单通道模数转换器AD7091R的逻辑接口设计。1 MSPS、超低功耗、12-Bit ADC (1)实现全部逻辑接口功能,完成对…

云端代码编辑器Atheos

什么是 Atheos ? Atheos是一个基于 Web 的 IDE 框架,占用空间小且要求最低,构建于 Codiad 之上,不过 Atheos 已从原始 Codiad 项目完全重写,以利用更现代的工具、更简洁的代码和更广泛的功能。 注意事项 群晖内核版本太…

系列二十、循环依赖(二)

一、请解释下Spring的三级缓存 所谓Spring的三级缓存是Spring内部解决循环依赖的三个Map,即DefaultSingletonBeanRegistry中的三个Map。 二、A、B两对象在三级缓存中的迁移过程 第一步:A创建过程中需要B,于是A将自己放到三级缓存里面&#x…

ubuntu安装nps客户端

Ubuntu安装nps客户端 1.什么是nps内网穿透?2.设备情况3.下载客户端3.链接服务端3.1、无配置文件模式3.2、注册到系统服务(启动启动、监控进程) 1.什么是nps内网穿透? nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持tcp、udp流量转发…

vue笔记(三)

15、过滤器 过滤器 用法:对要显示的数据进行特定格式化后再显示(用于一个简单的逻辑处理)语法 1、注册过滤器:Vue.fillter(name,callback) (全局)或 new Vue{filters:{}}(局部&…

Ubuntu20运行SegNeXt代码提取道路水体(四)——成功解决训练与推理自己的数据集iou为0的问题!!

在我的这篇博文里Ubuntu20运行SegNeXt代码提取道路水体(三)——SegNeXt训练与推理自己的数据集 经过一系列配置后 iou算出来是0 经过多次尝试后 终于让我试出来了正确配置方法! 具体的配置细节请查看这篇文章 1、在mmseg/datasets下面对数据集进行初始定义 我新建…

使用baostock获取上市公司情况

起因是有个不知道什么专业的同学问了我一题 cs: import baostock as bs import pandas as pd import datetime 日线指标参数包括:date,code,open,high,low,close,preclose,volume,amount,adjustflag,turn,tradestatus,pctChg,peTTM,pbMRQ,psTTM,pcfNcfTTM,isST 周…

CompletableFuture的理解

CompletableFuture 是 JDK1.8 里面引入的一个基于事件驱动的异步回调类。简单来说,就是当使用异步线程去执行一个任务的时候,我们希望在任务结束以后触发一个后续的动作。而 CompletableFuture 就可以实现这个功能。 业务问题 举个简单的例子&#xff0…

最长公共子序列(LCS)与最长上升子序列(LIS)问题的相互转换

在此只做直观理解,不做严格证明 参考:LCS 问题与 LIS 问题的相互关系,以及 LIS 问题的最优解证明 LCS转LIS LCS转LIS只能对特殊情况适用。即当LCS中两个数组有一个不存在重复元素的情况下才能进行转换。 我们以一个例子进行说明&#xff0c…

leetCode 76. 最小覆盖子串 + 滑动窗口 + 哈希Hash

我的往期文章:此题的其他解法,感兴趣的话可以移步看一下: leetCode 76. 最小覆盖子串 滑动窗口 图解(详细)-CSDN博客https://blog.csdn.net/weixin_41987016/article/details/134042115?spm1001.2014.3001.5501 力…

XJ+Nreal 高精度地图+Nreal眼镜SDK到发布APK至眼镜中

仅支持Anroid平台 Nreal套装自带的计算单元,其实也是⼀个没有显示器的Android设备 新建unity⼯程,将⼯程切换Android平台。 正在上传…重新上传取消正在上传…重新上传取消 Cloud XDK Unity User Manual for Nreal ARGlasses 该XDK是针对 NReal AR 眼镜…

mysql源码安装

Linux环境 1、mysql下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads 下载参考: 2、把下载的 MySQL 压缩包上传到 Linux 服务器 3、解压mysql-5.7.39-linux-glibc2.12-x86_64.tar.gz tar -zxvf mysql-5.7.39-linux-glibc2.12-x86…