To 个人主页 关注不迷路
重要概念:
从通信信息处理的角度,运输层向它上层的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能区的最底层。
从 IP 层
看,通信的两端
是两台主机
。从运输层
看,通信的端点不是主机
,是主机中的进程
。即端到端的通信
,是应用进程之间的通信。
运输层重要的功能:
应用进程
。IP 层也存在复用和分用
复用:在发送方,不同协议的数据都可以封装成 IP 数据包发送出去。
分用:在接收方,根据 IP 首部中的协议字段,把剥去首部后的数据应当接收这些数据的协议。
通信的区别:
网络层
为主机之间
提供逻辑通信。运输层
为应用进程之间
提供端到端的逻辑通信。两个协议:
使用了 UDP、TCP 的应用、应用协议:
应用 | 应用协议 | 运输层协议 |
---|---|---|
名字转换 | NDS,域名系统 | UDP |
文件传送 | TFTP,简单文件传送协议 | UDP |
路由选择协议 | RIP,路由信息协议 | UDP |
IP 地址配置 | DHCP,动态主机配置协议 | UDP |
网络管理 | SNMP,简单网络管理协议 | UDP |
远程文件服务器 | NFS,网络文件系统 | UDP |
多播 | IGMP,网际组管理协议 | UDP |
电子邮件 | SMTP,简单邮件传输协议 | TCP |
远程终端接入 | TELNET,远程终端协议 | TCP |
万维网 | HTTP,超文本传送协议 | TCP |
文件传送 | FTP,文件传送协议 | TCP |
硬件端口
是不同硬件设备
进行交互的接口。
软件端口
,是在协议栈层间
的抽象的协议端口,是应用层的各种协议
进行与运输实体
进行层间交互的一种地址。
端口号的分类:
UDP 的主要特点:
TCP 主要特点:
TCP 把连接
作为最基本的抽象,每一个TCP连接
都有两个端点
,TCP 连接的端点叫做套接字(socket)
或插口
。
套接字的定义:端口号拼接到 IP 地址即为套接字。
套接字 socket = (IP 地址:端口号)
每一个 TCP 连接唯一地被通信两端的两个端点(即两个套接字)所确定。即:
TCP 连接 :== {socket01, socket02} = {(IP01:Port01), (IP02,Port02)}
同一个 IP 地址可以有多个不同的 TCP 连接,同一个端口号也可以出现在多个不同的 TCP 连接中。
处理思路:
方案一,停止等待协议
流程:
超时重传
优缺点:
方案二,连续ARQ协议(滑动窗口协议)
流程:
事先对分组按序排队,假设发送窗口大小为 5
发送窗口
,发送窗口内的 5 个分组同时发送
累积确认
,对按序到达的最后一个分组发送确认。例如,接收方收到分组 5、6、8、9,只对分组 6 发出确认。
分组6
的确认,则滑动窗口
的起始位置
回到分组7
,再次同时发送滑动窗口中的 5 个分组累积确认
的优缺点:
TCP 首部的最小长度为 20 字节。
首部中部分重要字段的含义:
流量控制的目的:让发送方的发送速率不要太快,要让接收方来得及接收。
数据进入 TCP 的发送缓存后,TCP 报文段的发送时机的机制
最大报文段长度MSS
,只要缓存中的字节达到 MMSS
字节时,则组装成报文段发送出去。推送
操作。拥塞的定义
:计算机网络中的链路容量(即带宽)、交换节点中的缓存和处理机等,都是网络中的资源。在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏。这种情况称为拥塞
。
引起拥塞
的可能原因:
拥塞控制
的目的,防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载。
流量控制
,往往指点对点通信量的控制,是个端到端的问题。流量控制所要做的是,抑制发送端发送数据的速率,以便使接收端来得及接收。
拥塞控制方法的前提假设条件:
发送方的限制条件:
拥塞窗口cwnd
(congestion window)的状态变量.发送窗口
大小等于拥塞窗口
大小。控制拥塞方法的原则:
如何知道网络发生拥塞:当发送方未没有按时接收到确认报文,则猜想网络发生拥塞。
TCP 拥塞控制 是一种基于窗口
的拥塞控制方法,涉及到的四种算法:
传输轮次
的增加,慢开始的拥塞窗口
的大小,是倍数增加。传输轮次
的增加,慢开始的拥塞窗口
的大小自动+1,线性增加。快重传
).拥塞避免
算法。基于拥塞窗口
的拥塞控制流程:
门限制为N
。慢开始
算法,直至到达门限值
。即 cwnd 为 N 时。拥塞避免
算法,直至 cwnd 值为 N+M。
慢开始
+拥塞避免
算法。快重传
,则执行快恢复
算法。即门限值
设置为(N+M)/2,继续执行拥塞避免
算法。拥塞避免
算法。场景:网络层的策略对 TCP 拥塞控制
影响最大的就是路由器的分组丢失策略
,可能造成全局同步
。
全局同步。因为分组丢失策略导致的超时,误认为发生拥塞,导致进入慢开始。表现为全网的通信量突然下降很多,而在网络恢复正常后,信息量又突然增加很多。
解决思路:不要等到路由器
的队列长度
达到最大值
时,才不得不丢弃后面的分组。应该在队列长度达到某个警惕值
时,主动丢弃分组。这样可以减缓拥塞
,甚至不出现拥塞
。
AQM 的实现方式:
运输连接的三个阶段:
TCP 的连接建立过程中需要解决的三个问题:
三报文握手(三次握手)流程,A 为客户端,B 为服务端:
seq 窗口的初始序号
Question:三次握手,能否改为四次握手?
Answer:可以,将 B->A 的报文,拆分为两个。一个确认报文(ACK=1,seq=x+1),然后再发送一个同步报文(SYN=1,seq=y)
Question: 为什么最后还要发送一次确认?
Answer:防止已失效的连接请求报文段(在网络中滞留时间过长而被A认为失效的连接,B不认为是失效的)突然传送到B,因而产生错误。
四次挥手流程:
TCP 的状态共涉及到 11 个状态的互相转换 。
文章关联: