计算机网络03——传输层
计算机网络——传输层
一、传输层的基本服务
传输层的核心任务是 为应用进程之间提供端到端的逻辑通信服务。
传输层主要功能包括:
- 传输层地址
- 应用层报文的分段和重组
- 报文的差错检测
- 进程间的端到端可靠数据传输控制
- 面向应用层实现复用与分解
- 端到端的流量控制
- 拥塞控制
- 传输层协议提供
逻辑通信
服务 - 传输层协议只需要在
端系统
中实现 - 通信的真正断点并不是主机,而是主机中运行的
应用进程
传输层地址与端口号
- 用统一的寻址方法对应用程序进行标识——
端口号
- 在全国范围内利用
“IP地址+端口号”
唯一标识一个通信端点 - 传输层端口号为
16
位整数,包含三类端口: - POP3:110端口、 SMTP:25端口、HTTP:80端口
端口类型 数值特性 备注 熟知端口号 0——1023 登记端口号 1024——49151 使用这个范围端口号必须在IANA登记以防止重复 客户端口号或短暂端口号 49152——65535 留给客户进程选择使用 - 用统一的寻址方法对应用程序进行标识——
无连接服务与面向连接服务
- 无连接服务:数据传输之前无需与对端进行任何信息交换(即“握手”),直接构造传输层报文段并向接收端发送。(
UDP
) - 面向连接服务:在数据传输之前,需要双方交换一些控制信息,建立逻辑连接,然后再传输数据,数据传输结束后还需要拆除连接。(
TCP
)
- 无连接服务:数据传输之前无需与对端进行任何信息交换(即“握手”),直接构造传输层报文段并向接收端发送。(
二、传输层的复用与分解
- 多路复用与多路分解:是传输层的一项
基本功能
,支持众多应用进程共用同一个传输层协议,并能够将接受到的数据准确交付给不同的应用进程。 - 无连接的多路复用与多路分解
- UDP套接字:
<目的IP地址,目的端口号>
- UDP套接字的端口号是UDP实现复用与分解的重要依据
- UDP套接字:
- 面向连接的多路复用与多路分解
- TCP套接字(标识一条TCP连接):
<源IP地址,源端口号,目标的P地址,目的端口号>
- 当一个TCP报文段从网络层到达一台主机时,该主机根据这4个值来将报文分段到相应的套接字。
- TCP套接字(标识一条TCP连接):
三、停—等协议与滑动窗口协议
- 实现可靠传输的措施:
- 差错检测:利用差错编码实现数据包传输过程中的比特差错检测。
- 确认:接收方向发送方反馈接收状态。
- 重传:发送方重新发送接收方没有正确接收的数据。
- 序号:确保数据按序提交。
- 计时器:解决数据丢失问题。
- 停——等协议:主要特点就是每发送一个报文段后就停下来等待接收方的确认
- 停——等协议的基本工作原理:
- 发送方发送经过差错编码和编码的报文段,等待接收方确认;(发送等待确认)
- 接收方如果正确接收报文段,即差错检测无误且序号正确,则接收报文段,并向发送方
发送ACK
,否则丢弃报文段,并向发送端发送NAK
;(接收并确认/否认) - 发送方如果收到ACK,则继续发送后续报文,否则重发刚刚发送的报文段。(继续发送/重发)
- 滑动窗口协议(典型的流水线协议)
- 流水线协议或管道协议——允许发送方在没有收到确认前连续发送多个分组。
- 流水线协议的改进:增加分组序号范围、发送方和(或)接收方必须缓存多个分组。
- 两种具有代表性的滑动窗口协议:回退N步(GBN)协议、选择重传(SR)协议。
四、用户数据报协议(UDP)
- UDP的数据结构
- 源和目的端口号:用于UDP实现复用与分解。
- 长度字段:在UDP报文段中的字节数(首部和数据的总和)。
- 校验和:接收方用来检测报文段是否出现了差错。
- 计算校验和
- 对所有参数与运算的内容(包括UDP报文段)按16位(16位对齐)求和
- 求和过程遇到的任何溢出(即进位)都被回卷(即进位与和的最低为相加)
- 最后得到的和取反码
五、传输控制协议(TCP)
TCP报文段结构
- TCP首部和TCP数据部分
TCP连接管理
- 连接建立——三次握手
- SYN连接请求
- SYNACK确认
- ACK确认
- 连接建立——三次握手
TCP断开连接的过程——四次挥手
- 可以是客户端先发送请求,也可以是服务端先发送请求。
- 可以是客户端先发送请求,也可以是服务端先发送请求。
TCP可靠数据传输
- TCP的可靠数据传输实现机制包括差错编码、确认、序号、重传、计时器等。
- TCP的可靠数据传输是基于滑动窗口协议,但是发送窗口大小动态变化。
- 封装TCP报文
- 发送一个报文后启动一个计时器
- 通过校验和发送数据差错
- 通过序号重新排序,丢弃重复的报文段
- 流量控制
TCP流量控制
- TCP协议利用窗口机制实现流量控制,但不是简单的滑动窗口协议。
- TCP连接建立时,双方都为之分配固定大小的缓冲空间;TCP的接收端只允许另一端发送其缓冲区所能接纳的数据。
- 接收端在给发送端发送确认段时,通告接收端口大小;
- 发送端在接下来发送数据段时,确保未确认段的应用层数据总量不超过接收端通告的接收窗口大小,从而确保接收端不会发生缓存溢出。
TCP拥塞控制
- 窗口机制:通过调节窗口的大小实现对发送数据速率的调整。
- 窗口调整基本策略:AIMD(Additive Incease,Multiplicative Decrease)加性增加,乘性减少;网络未发生拥塞时,逐渐“加性”增大窗口大小,当网络拥塞时“乘性”快速减小窗口大小。
- TCP的拥塞控制算法:包括了
慢启动
,拥塞避免
,快速重传
和快速恢复
4个部分。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Another Dimension!
评论
ValineDisqus