《计算机网络》学习笔记 ·005【传输层】
注:前言、目录见 https://blog.csdn.net/qq_44220418/article/details/108428971
文章目录
- 一、运输层协议概述
- 1、进程之间的通信
- 2、运输层的主要功能
- 3、运输层的两个主要协议
- 4、运输层的端口
- 二、用户数据报协议UDP
- 1、UDP概述
- 2、UDP首部格式
- 三、传输控制协议TCP
- 1、TCP概述
- 2、TCP连接
- 四、可靠传输协议的工作原理
- 1、停止等待协议
- 2、连续ARQ协议
- 五、TCP 报文段的首部格式
- 六、TCP 可靠传输的实现
- 1、TCP 可靠通信的具体实现
- 2、以字节为单位的滑动窗口
- 3、超时重传时间的选择
- 4、选择确认 SACK
- 七、TCP 的流量控制
- 1、利用滑动窗口实现流量控制
- 2、TCP的传输效率
- 八、TCP的拥塞控制
- 1、一般原理
- 2、几种拥塞控制方法
- (1).慢开始和拥塞避免
- (2).快重传和快恢复
- 九、TCP 的运输连接管理
- 1、TCP 的连接建立
- 2、TCP 的连接释放
一、运输层协议概述
1、进程之间的通信
- 从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层
- 两个主机进行通信实际上就是两个主机中的应用进程互相通信
- 应用进程之间的通信又称为端到端的通信
- 运输层的一个很重要的功能就是复用和分用:应用层不同进程的报文通过不同的端口向下交到运输层,再往下就共用网络层提供的服务(接收方分用,发送方复用)
- 运输层提供应用进程间的逻辑通信。“逻辑通信”的意思是:运输层之间的通信好像是沿水平方向传送数据,但事实上这两个运输层之间并没有一条水平方向的物理连接
2、运输层的主要功能
- 运输层的主要功能
- 运输层为应用进程之间提供端到端的逻辑通信(但网络层是为主机之间提供逻辑通信)
- 运输层还要对收到的报文进行差错检测
-
运输层需要有两种不同的运输协议,即面向连接的TCP和无连接的UDP
当运输层采用面向连接的TCP 协议时,尽管下面的网络是不可靠的,但这种逻辑通信信道就相当于一条全双工的可靠信道
当运输层采用无连接的UDP协议时,这种逻辑通信信道是一条不可靠信道
3、运输层的两个主要协议
- TCP与UDP
- UDP在传送数据之前不需要先建立连接。对方的运输层在收到UDP报文后,不需要给出任何确认。虽然UDP不提供可靠交付,但在某些情况下UDP是一种最有效的工作方式
- TCP则提供面向连接的服务。TCP不提供广播或多播服务。由于TCP要提供可靠的、面向连接的运输服务,因此不可避免地增加了许多的开销。这不仅使协议数据单元的首部增大很多,还要占用许多的处理机资源
4、运输层的端口
运行在计算机中的进程是用进程标识符来标志的
- 端口
- 为了使运行不同操作系统的计算机的应用进程能够互相通信,就必须用统一的方法对TCP/IP 体系的应用进程进行标志
- 解决这个问题的方法就是在运输层使用协议端口号,或通常简称为端口
- 软件端口与硬件端口
- 在协议栈层间的抽象的协议端口是软件端口
- 路由器或交换机上的端口是硬件端口
- TCP的端口
-
端口用一个16位端口号进行标志
层 地址 位数 数据 链路层 硬件地址 48 bit (以太网) 帧 网络层 IP地址 32 bit IP分组
IP数据报运输层 进程端口号 16 bit TCP报文段
UDP数据报 - 端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的各进程。在因特网中不同计算机的相同端口号是没有联系的
- 三类端口
- 熟知端口,数值一般为0~1023
- 登记端口号,数值为1024~49151,为没有熟知端口号的应用程序使用的。使用这个范围的端口号必须在IANA 登记,以防止重复
- 客户端口号或短暂端口号,数值为49152~65535,留给客户进程选择暂时使用。当服务器进程收到客户进程的报文时,就知道了客户进程所使用的动态端口号。通信结束后,这个端口号可供其他客户进程以后使用
二、用户数据报协议UDP
1、UDP概述
- UDP概述
- UDP只在IP的数据报服务之上增加了很少一点的功能,即端口的功能和差错检测的功能
- 虽然UDP用户数据报只能提供不可靠的交付,但UDP在某些方面有其特殊的优点
- UDP特点
- UDP 是无连接的,即发送数据之前不需要建立连接
- UDP 使用尽最大努力交付,即不保证可靠交付,同时也不使用拥塞控制
- UDP 是面向报文的,UDP 没有拥塞控制,很适合多媒体通信的要求
- UDP 支持一对一、一对多、多对一和多对多的交互通信
- UDP 的首部开销小,只有8 个字节
2、UDP首部格式
- UDP首部格式
- 用户数据报UDP 有两个字段:数据字段和首部字段。首部字段有8个字节,由4个字段组成,每个字段都是2个字节
- 在计算检验和时,临时把“伪首部”和UDP用户数据报连接在一起。伪首部仅仅是为了计算检验和
- UDP基于端口的分用
- UDP的分用基于端口号,根据端口号发送数据
三、传输控制协议TCP
1、TCP概述
- TCP特点
- TCP 是面向连接的运输层协议
- 每一条 TCP 连接只能有两个端点,每一条 TCP 连接只能是点对点的(一对一)
- TCP 提供可靠交付的服务
- TCP 提供全双工通信
- TCP 面向字节流
- 注意点
- TCP 连接是一条虚连接而不是一条真正的物理连接
- TCP 对应用进程一次把多长的报文发送到 TCP 的缓存中是不关心的
- TCP 根据对方给出的窗口值和当前网络拥塞的程度来决定一个报文段应包含多少个字节(UDP 发送的报文长度是应用进程给出的)
- TCP 可把太长的数据块划分短一些再传送。TCP 也可等待积累有足够多的字节后再构成报文段发送出去
2、TCP连接
- TCP连接
- TCP 把连接作为最基本的抽象
- 每一条TCP 连接有两个端点
- TCP 连接的端点不是主机,不是主机的IP 地址,不是应用进程,也不是运输层的协议端口,TCP 连接的端点叫做套接字或插口
- 端口号拼接到 IP 地址即构成了套接字
- 套接字(Socket)
- 套接字socket=(IP地址:端口号){\color{blue}套接字socket = (\text{IP}地址: 端口号)}套接字socket=(IP地址:端口号)
- 每一条TCP 连接唯一地被通信两端的两个端点(即两个套接字)所确定,即TCP连接::={socket1,socket2}::={(IP1:port1),(IP2:port2)}\begin{aligned} \text{TCP} 连接 & ::= \{socket1, socket2\} \\ & ::= \{(\text{IP}1: port1), (\text{IP}2: port2)\} \end{aligned} TCP连接::={socket1,socket2}::={(IP1:port1),(IP2:port2)}
四、可靠传输协议的工作原理
本节讨论的可靠传输的原理可应用到网络体系结构的任意一层
1、停止等待协议
- 超时重传
- 确认丢失和确认迟到
- 注意点
- 在发送完一个分组后,必须暂时保留已发送的分组的副本
- 分组和确认分组都必须进行编号
- 超时计时器的重传时间应当比数据在分组传输的平均往返时间(RTT)更长一些
- 数据的编号问题
- 对于停止等待协议,由于每发送一个数据帧就停止等待应答,因此用一个比特来编号就够了
-
帧的发送序号:
一个比特可表示0和1两种不同的序号,数据帧中的发送序号 N(S) 以 0 和 1 交替的方式出现在数据帧中
每发一个新的数据帧,发送序号就和上次发送的不一样。用这样的方法就可以使收方能够区分开新的数据帧和重传的数据帧了 - 可靠通信的实现
- 使用上述的确认和重传机制,我们就可以在不可靠的传输网络上实现可靠的通信
- 这种可靠传输协议常称为自动重传请求ARQ
- ARQ 表明重传的请求是自动进行的,接收方不需要请求发送方重传某个出错的分组
- 信道利用率
- 停止等待协议的优点是简单,但缺点是信道利用率太低
- U=TDTD+RTT+TA{\color{ba55d3} U = \frac{T_D}{T_D + \text{RTT} + T_A}}U=TD+RTT+TATD
- 流水线传输
- 发送方可连续发送多个分组,不必每发完一个分组就停顿下来等待对方的确认
- 由于信道上一直有数据不间断地传送,这种传输方式可获得很高的信道利用率
2、连续ARQ协议
- 连续ARQ协议
- 接收端只按序接收数据
- ACK1 表示 :确认 0 号分组 DATA0,并期望下次收到 1 号分组
- 结点 A 在每发送完一个数据分组时都要设置该分组的超时计时器
- Go-back-N(回退 N)
- 如果发送方发送了前 5 个分组,而中间的第 3 个分组丢失了。这时接收方只能对前两个分组发出确认,发送方无法知道后面三个分组的下落,而只好把后面的三个分组都再重传一次
- 这就叫做 Go-back-N,表示需要再退回来重传已发送过的 N 个分组
- 发送窗口
-
发送窗口用来对发送端进行流量控制,执行流程如下图所示:
- 发送窗口的大小 WTW_TWT 代表在还没有收到对方确认信息的情况下发送端最多可以发送多少个分组
- 发送窗口的最大值
- 当用 nnn 个比特进行编号时,若接收窗口的大小为 111,则只有在发送窗口的大小应满足下式,连续 ARQ 协议才能正确运行WT≤2n−1W_T \leq 2^n - 1WT≤2n−1
- 例如,当采用 333 bitbitbit 编码时,发送窗口的最大值是 777 而不是 888
- 累积确认
- 接收方一般采用累积确认的方式,即不必对收到的分组逐个发送确认,而是对按序到达的最后一个分组发送确认,这样就表示:到这个分组为止的所有分组都已正确收到了
- 优点:容易实现,即使确认丢失也不必重传
- 缺点:不能向发送方反映出接收方已经正确收到的所有分组的信息
五、TCP 报文段的首部格式
- TCP 报文段的首部格式
- 源端口和目的端口字段——各占 2 字节:端口是运输层与应用层的服务接口,运输层的复用和分用功能都要通过端口才能实现。
- 序号字段——占 4 字节:TCP 连接中传送的数据流中的每一个字节都编上一个序号,序号字段的值则指的是本报文段所发送的数据的第一个字节的序号
- 确认号字段——占 4 字节:是期望收到对方的下一个报文段的数据的第一个字节的序号
- 数据偏移(即首部长度)——占 4 位:它指出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远。“数据偏移”的单位是 32 位字(以 4 字节为计算单位)
- 保留字段——占 6 位:保留为今后使用,但目前应置为 0
- 紧急 URG ——占 1 位: {紧急指针字段有效,有紧急数据,应尽快传送URG=1\begin{cases} 紧急指针字段有效,有紧急数据,应尽快传送 & URG = 1 \end{cases}{紧急指针字段有效,有紧急数据,应尽快传送URG=1
- 确认 ACK —— 占 1 位:{确认号有效ACK=1确认号无效ACK=0\begin{cases} 确认号有效 & ACK = 1 \\ 确认号无效 & ACK = 0 \end{cases}{确认号有效确认号无效ACK=1ACK=0
- 推送 PSH —— 占 1 位:{尽快地交付接收应用进程,而不再等到整个缓存都填满了后再向上交付PSH=1\begin{cases} 尽快地交付接收应用进程,而不再等到整个缓存都填满了后再向上交付 & PSH = 1 \end{cases}{尽快地交付接收应用进程,而不再等到整个缓存都填满了后再向上交付PSH=1
- 复位 RST —— 占 1 位:{TCP连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接RST=1\begin{cases} TCP 连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接 & RST = 1 \end{cases}{TCP连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接RST=1
- 同步 SYN —— 占 1 位:{连接请求报文同步SYN=1,且ACK=0连接接受报文同步SYN=1,且ACK=1\begin{cases} 连接请求报文 & 同步 SYN = 1 ,且 ACK = 0 \\ 连接接受报文 & 同步 SYN = 1 ,且 ACK = 1 \end{cases}{连接请求报文连接接受报文同步SYN=1,且ACK=0同步SYN=1,且ACK=1
- 终止 FIN —— 占 1 位:{此报文段的发送端的数据已发送完毕,并要求释放运输连接FIN=1\begin{cases} 此报文段的发送端的数据已发送完毕,并要求释放运输连接 & FIN = 1 \end{cases}{此报文段的发送端的数据已发送完毕,并要求释放运输连接FIN=1
- 窗口字段 —— 占 2 字节:用来让对方设置发送窗口的依据,单位为字节(告诉对方自己的接收能力,用于流量控制)
- 检验和 —— 占 2 字节:检验和字段检验的范围包括首部和数据这两部分。在计算检验和时,要在 TCP 报文段的前面加上 12 字节的伪首部
- 紧急指针字段 —— 占 16 位:指出在本报文段中紧急数据共有多少个字节(紧急数据放在本报文段数据的最前面)
-
选项字段 —— 长度可变:TCP 最初只规定了一种选项,即最大报文段长度 MSS
- MSS 告诉对方 TCP:“我的缓存所能接收的报文段的数据字段的最大长度是 MSS 个字节。”
- 窗口扩大选项 ——占 3 字节,其中有一个字节表示移位值 S。新的窗口值等于TCP 首部中的窗口位数增大到(16 + S),相当于把窗口值向左移动 S 位后获得实际的窗口大小
- 时间戳选项——占10 字节,其中最主要的字段时间戳值字段(4 字节)和时间戳回送回答字段(4 字节)
- 选择确认选项
- 填充字段 —— 这是为了使整个首部长度是 4 字节的整数倍
六、TCP 可靠传输的实现
1、TCP 可靠通信的具体实现
- TCP 可靠通信的具体实现
- TCP 连接的每一端都必须设有两个窗口——一个发送窗口和一个接收窗口(A的发送窗口的大小取决于B的接收窗口的大小)
- TCP 的可靠传输机制用字节的序号进行控制。TCP 所有的确认都是基于序号而不是基于报文段
- TCP 两端的四个窗口经常处于动态变化之中
- TCP 连接的往返时间 RTT 也不是固定不变的,需要使用特定的算法估算较为合理的重传时间
2、以字节为单位的滑动窗口
- 大致流程如下:
-
-
-
-
- 发送缓存
-
- 发送缓存用来暂时存放:
- 发送应用程序传送给发送方 TCP 准备发送的数据
- TCP 已发送出但尚未收到确认的数据
- 接收缓存
-
- 接收缓存用来暂时存放:
- 按序到达的、但尚未被接收应用程序读取的数据
- 不按序到达的数据
- 注意点
- A 的发送窗口并不总是和 B 的接收窗口一样大(因为有一定的时间滞后)
- TCP 标准没有规定对不按序到达的数据应如何处理,通常是先临时存放在接收窗口中,等到字节流中所缺少的字节收到后,再按序交付上层的应用进程
- TCP 要求接收方必须有累积确认的功能,这样可以减小传输开销
3、超时重传时间的选择
- 超时重传时间的计算
- 新的RTTS=(1−α)×旧的RTTS+α×新的RTT样本新的\text{RTT}_\text{S}=(1-α) \times 旧的\text{RTT}_\text{S} + α \times 新的\text{RTT}样本新的RTTS=(1−α)×旧的RTTS+α×新的RTT样本
- 新的RTTD=(1−β)×旧的RTTD+β×∣RTTS−新的RTT样本∣新的\text{RTT}_\text{D}=(1-β) \times 旧的\text{RTT}_\text{D}+ β \times | \text{RTT}_\text{S}-新的\text{RTT}样本 |新的RTTD=(1−β)×旧的RTTD+β×∣RTTS−新的RTT样本∣
- RTO=RTTS+4×RTTD\text{RTO}=\text{RTT}_\text{S} + 4 \times \text{RTT}_\text{D}RTO=RTTS+4×RTTD
- 其中:α的推荐值为0.125,β的推荐值为0.25其中:α的推荐值为0.125,β的推荐值为0.25其中:α的推荐值为0.125,β的推荐值为0.25
- Karn算法
- Karn算法:在计算加权平均 RTTS\text{RTT}_\text{S}RTTS 时,只要报文段重传了,就不采用其往返时延样本
- Karn算法的修正:报文段重传,超时重传时间 RTO\text{RTO}RTO 增大一些,如:RTO新=2×RTO旧\text{RTO}_新=2 \times \text{RTO}_旧RTO新=2×RTO旧
4、选择确认 SACK
- 选择确认 SACK
- 如果要使用选择确认,那么在建立 TCP 连接时,就要在 TCP 首部的选项中加上“允许 SACK”的选项,而双方必须都事先商定好
- 如果使用选择确认,那么原来首部中的“确认号字段”的用法仍然不变。只是以后在 TCP 报文段的首部中都增加了 SACK 选项,以便报告收到的不连续的字节块的边界
- 由于首部选项的长度最多只有 40 字节,而指明一个边界就要用掉 4 字节,因此在选项中最多只能指明 4 个字节块的边界信息
七、TCP 的流量控制
1、利用滑动窗口实现流量控制
- 流量控制
- 流量控制就是让发送方的发送速率不要太快,既要让接收方来得及接收,也不要使网络发生拥塞
- 流量控制举例
- 持续计时器
- TCP 为每一个连接设有一个持续计时器
- 只要 TCP 连接的一方收到对方的零窗口通知,就启动持续计时器
- 若持续计时器设置的时间到期,就发送一个零窗口探测报文段(仅携带 1 字节的数据),而对方就在确认这个探测报文段时给出了现在的窗口值
- 若窗口仍然是零,则收到这个报文段的一方就重新设置持续计时器
- 若窗口不是零,则死锁的僵局就可以打破了
2、TCP的传输效率
- 三种机制
-
- 第一种机制
- TCP 维持一个变量,它等于最大报文段长度 MSS。只要缓存中存放的数据达到 MSS 字节时,就组装成一个 TCP 报文段发送出去
-
- 第二种机制
- 由发送方的应用进程指明要求发送报文段,即 TCP 支持的推送操作
-
- 第三种机制
- 发送方的一个计时器期限到了,这时就把当前已有的缓存数据装入报文段(但长度不能超过 MSS)发送出去
- 如何控制TCP发送报文段的时机(发送方的极端情况)
-
- Nagle算法:
-
如果应用进程逐个字节地把数据送到TCP的发送缓存,则:
① 发送方先把第一个字节发送出去
② 当收到对第一个字节确认后,再把缓存中的数据组成一个报文段发送出去
③ 如果缓存中的数据已达到发送窗口的一半,或者已达到MSS,就立即发送一个报文段:
- 糊涂窗口综合症(接受方的极端情况)
-
- 解决方法——让接收方等待一段时间,使得:
- ① 接收缓存可以容纳一个最长的报文段
- ② 接收缓存已有一半空闲的空间
- 出现上述一种情况时,接收方发出确认报文,并通知当前的窗口大小
八、TCP的拥塞控制
1、一般原理
- 定义
- 在某段时间,若对网络中某资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏——产生拥塞
- 出现资源拥塞的条件
- 对资源需求的总和>可用资源\textbf{对资源需求的总和 > 可用资源}对资源需求的总和 > 可用资源
- (许多资源可以同时产生拥塞,主要包括带宽、CPU、缓存)\textbf{(许多资源可以同时产生拥塞,主要包括带宽、CPU、缓存)}(许多资源可以同时产生拥塞,主要包括带宽、CPU、缓存)
- 拥塞控制与流量控制
- 拥塞控制的目的:使网络能够承受现有的网络负荷
- 流量控制的目的:抑制发送端发送数据的速率,以便接收端来得及接收
-
- 两者的区别如下图所示
- 图(a)需要流量控制
- 图(b)需要拥塞控制
- 拥塞控制的一般原理
- 分组的丢失是网络发生拥塞的征兆而不是原因
- 在许多情况下,甚至正是拥塞控制本身成为引起网络性能恶化甚至发生死锁的原因,这点应特别引起重视
- 开环控制与闭环控制
-
- 开环控制
- 在设计网络时事先将有关发生拥塞的因素考虑周到,力求网络在工作时不产生拥塞
-
- 闭环控制
- 基于反馈环路,有以下几种措施:
- 监测网络系统以便检测到拥塞在何时、何处发生
- 将拥塞发生的信息传送到可采取行动的地方
- 调整网络系统的运行以解决出现的问题
2、几种拥塞控制方法
(1).慢开始和拥塞避免
- 拥塞窗口
- 发送方维持一个叫做 拥塞窗口 cwnd 的状态变量
- 拥塞窗口的大小取决于网络的拥塞程度,并且动态地在变化
- 发送方让自己的发送窗口等于拥塞窗口;如再考虑到接收方的接收能力,则发送窗口还可能小于拥塞窗口
- 控制原则
- 只要网络未出现拥塞,拥塞窗口就增大一些,以便把更多的分组发送出去
- 只要网络出现了拥塞,拥塞窗口就减小一些,以减少注入到网络中的分组数
- 慢开始算法
- 在主机刚刚开始发送报文段时可先设置拥塞窗口 cwnd = 1,即设置为一个最大报文段 MSS 的数值
- 在每收到一个对新的报文段的确认后,将拥塞窗口加 1,即增加一个 MSS 的数值
- 传输轮次
- 使用慢开始算法后,每经过一个传输轮次,拥塞窗口 cwnd 就加倍
- 一个传输轮次所经历的时间其实就是往返时间 RTT(发送时延可忽略)
- “传输轮次”更加强调:把拥塞窗口 cwnd 所允许发送的报文段都连续发送出去,并收到了对已发送的最后一个字节的确认
- 拥塞避免
- 让拥塞窗口 cwnd 缓慢地增大,即每经过一个往返时间 RTT 就把发送方的拥塞窗口 cwnd 加 1,而不是加倍,使拥塞窗口 cwnd 按线性规律缓慢增长
- 慢开始门限状态变量ssthresh
- 当 cwnd < ssthresh 时,使用慢开始算法
- 当 cwnd > ssthresh 时,停止使用慢开始算法而改用拥塞避免算法
- 当 cwnd = ssthresh 时,既可使用慢开始算法,也可使用拥塞避免算法
- 慢开始和拥塞避免算法
- 无论在慢开始阶段还是在拥塞避免阶段,只要发送方判断网络出现拥塞(其根据就是没有按时收到确认),就要把慢开始门限 ssthresh 设置为出现拥塞时的发送方窗口值的一半(但不能小于2)
- 然后把拥塞窗口 cwnd 重新设置为 1,执行慢开始算法
- 慢开始和拥塞避免算法的实现举例
(2).快重传和快恢复
- 快重传
- 快重传算法首先要求接收方每收到一个失序的报文段后就立即发出重复确认,这样做可以让发送方及早知道有报文段没有到达接收方
- 发送方只要一连收到三个重复确认就应当立即重传对方尚未收到的报文段
- 快重传并非取消重传计时器,而是在某些情况下可更早地重传丢失的报文段
- 快恢复
- 当发送端收到连续三个重复的确认时,就执行“乘法减小”算法,慢开始门限 ssthresh =cwnd/2,但接下去不执行慢开始算法
- 由于发送方现在认为网络很可能没有发生拥塞,因此现在不执行慢开始算法,即拥塞窗口 cwnd 现在不设置为 1,而是设置为新的慢开始门限 ssthresh 值,然后开始执行拥塞避免算法(“加法增大”),使拥塞窗口缓慢地线性增大
- 发送窗口的上限值
- 发送窗口的上限值=min{rwnd,cwnd}{\color{blue}发送窗口的上限值 = min\{rwnd, cwnd\}}发送窗口的上限值=min{rwnd,cwnd}
- {接收方的接收能力限制发送窗口的最大值rwnd<cwnd网络的拥塞限制发送窗口的最大值rwnd>cwnd{\color{blue}\begin{cases} 接收方的接收能力限制发送窗口的最大值 & rwnd < cwnd \\ 网络的拥塞限制发送窗口的最大值 & rwnd > cwnd \end{cases}}{接收方的接收能力限制发送窗口的最大值网络的拥塞限制发送窗口的最大值rwnd<cwndrwnd>cwnd
九、TCP 的运输连接管理
运输连接就有三个阶段,即:连接建立、数据传送和连接释放
1、TCP 的连接建立
- 客户服务器方式
- TCP 连接的建立都是采用客户服务器方式
- 主动发起连接建立的应用进程叫做客户
- 被动等待连接建立的应用进程叫做服务器
- 三次握手建立 TCP 连接
2、TCP 的连接释放
- 四次握手释放 TCP 连接
《计算机网络》学习笔记 ·005【传输层】相关推荐
- 【学习笔记】传输层:TCP协议(报文段、连接管理{握手}、可靠传输、流量控制、拥塞控制)
文章目录 一. 协议特点 & 报文段 ① 特点 ② 报文段首部格式 二. TCP连接管理 ① 建立联系(三次握手) SYN洪泛攻击 ② 连接释放(四次挥手) 三. TCP流量控制 ① 序号 ② ...
- 【学习笔记】传输层:概述、UDP协议
文章目录 一. 概述 1)传输层的寻址与接口 二. UDP协议 1)定义 2)首部格式 3)UDP检验 一. 概述 是主机才有的层次 两个协议:TCP & UDP TCP面向连接,UDP则不是 ...
- 计算机网络学习笔记16--网络层网络层服务模型
https://www.bilibili.com/video/BV1Up411Z7hC?p=58 如有错误之处请指出,谢谢! 目录 网络层 网络层的核心功能 转发: 路由: 连接建立: 网络层服务模型 ...
- 计算机网络笔记Part5 传输层(Transport Layer)
本人计算机网络笔记总目录 计算机网络笔记Part1 概述 计算机网络笔记Part2 物理层(Physical Layer) 计算机网络笔记Part3 数据链路层(Data Link Layer) 计算 ...
- 计算机网络学习笔记:第三章
文章目录 计算机网络学习笔记:第三章 前言 3.1.概述和运输层服务 3.1.1 运输层和网络层的关系 3.1.2 因特网运输层概述 3.2.多路复用与多路分解 前言 运输层位于应用层和网络层之间,是 ...
- 计算机网络学习笔记:第二章
文章目录 计算机网络学习笔记:第二章 前言 2.1.应用层协议原理 2.1.1 网络应用程序体系结构 2.1.2 进程通信 2.1.3 可供应用程序使用的运输服务 2.1.4 因特网提供的传输层服务 ...
- 计算机网络-学习笔记
计算机网络-学习笔记 1.1.1 概念.组成.功能和分类 概念:计算机网络:是一个将分散的.具有独立功能的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统.计算机网 ...
- 【计算机网络学习笔记】计算机网络
计算机网络学习笔记 第一章 计算机网络概述 1. 计算机网络概述 1.1 计算机网络的概念 1.2 计算机网络的组成 1.3 计算机网络的功能 1.4 计算机网络的分类 1.5 计算机网络的标准化工作 ...
- 计算机网络学习笔记(详尽版)
计算机网络学习笔记 计算机网络 第一章 定义和特点 网络 定义 功能 特点 组成 类别 性能 结构 本章重要概念 第二章 物理层 基本概念和标准 数据通信基础知识 物理层下的传输媒体 引导型传输媒体 ...
- 片偏移怎么计算_计算机网络学习笔记(四)之网络层
点击蓝字关注我吧 越努力越幸运!!! 1 网络层的功能 1.1异构网络互联 网络的互联:指将两个以上的计算机网络,通过一定的方法, 用一种或多种通信处理设备(即中间设备)相互联接起来,以构成更大的网络 ...
最新文章
- ASP .NET Core Web Razor Pages系列教程四:使用数据库进行交互(SqlServer 版)
- IC/FPGA校招笔试题分析(一)
- Java中多线程启动,为什么调用的是start方法,而不是run方法?
- miniui列表下拉允许编辑且保存_在职必备,下拉列表|Excel
- 深入mysql慢查询设置的详解
- 【HDU - 5475】An easy problem(线段树,思维)
- 【10天基于STM32F401RET6智能锁项目实战第4天】外部中断的按键实现语音控制
- thinkcmf 横向排列数据_Excel横向筛选出销量靠后的月份数据,你知道如何实现吗...
- 高德坐标转百度坐标并导航
- Ajax提交表单数据(包含文件)
- 面试常见问题及回答技巧
- dll注册,但是对DllRegisterServer的调用失败,错误代码0x80070716
- unity 导入STL格式模型(STL二进制格式文件)
- linux 触屏校准命令,tslib-触摸屏校准
- 股东控股关系图谱简化版
- Excel:数据转置
- 手把手教你十分钟学会使用小程序云存储
- 嵌入Circle映射和逐维小孔成像反向学习的鲸鱼优化算法-附代码
- 小议移动订货之南北厂商
- 运维自我提升:怎样做好企业 IT 运维工作
热门文章
- 使用ByteArray及AMF来提高Data Object的操作效率
- java dom4j 读取 xml_java使用dom4j读取xml示例
- iview兼容ie8_iview在ie9及以上的兼容问题解决方案__Vue.js__JavaScript__前端__iView
- centos系统安装pycharm编辑器
- 修改手机屏幕刷新率_240Hz 超高刷新率,这手机屏幕比电竞专业屏还牛
- 西门子rwd60参数设置调试手册_RWD60 RWD68 RWD62控制器调试指导说明
- torch.nn.Embedding()的固定化
- 实验3.3 设计一个用于人事管理的People(人员)类
- 定义一个圆形类Circle
- PAT 乙级1016	部分A+B(C语言)