传输层的相关知识
传输层的基本服务
1、传输层的核心任务
1、为应用进程之间提供端到端的逻辑通信服务(也就说它来找程序)
2、传输层协议只需要在端系统中实现
3、通信的真正端点并不是主机,而是主机中运行的应用程序
在网络中传输数据并不会实现各个协议,而只是传输而已,协议仅仅只在端系统中实现
1.1 主要功能
1、传输层寻址
2、应用层报文的分段和重组
3、报文的差错检测
4、进程间的端到端可靠数据传输控制
5、面向应用层实现复用和分解
6、端到端的流量控制
7、拥塞控制
2、传输层的寻址与端口
2.1 寻址
找应用程序:端口号
唯一通信端点:IP+端口号
2.2 端口
1、熟知端口号:0-1023 一般为系统默认
2、等级端口号:1024-49151 这个范围的端口可以分配给其他自定义应用程序,但是必须在IANA登记,避免重复
3、客户端口号或短暂端口号:49152-65535 留给应用进程短暂使用
3、无连接服务与连接的服务
1、无连接服务:UDP,数据传输前不进行信息交换,直接发送或者接受
2、有连接服务:TCP,数据传输前需要进行信息交换(“握手”),数据的传输比较可靠
4、传输层的复用与分解
1、一次性连接方式:<ip地址,端口> ip地址找主机,端口号找应用程序
2、长连接的方式:<源ip,源端口,目的ip,目的端口> 指从某个主机的应用程序找向另一个主机的应用程序
5、可靠数据传输的基本原理
1、差错检测:利用差错编码实现数据包传输过程中的比特差错检测
2、确认:接受方向发送方反馈接受状态
3、重传:发送方重新发送接收方没有正确接受的数据
4、序号:确保数据按序提交
5、计时器:解决数据丢失问题
5.1 停-等协议
每发送一个报文段后就停下来等待接收方确认
5.2 流水线协议
允许发送方在没收到确认前连续发送多个分组,典型的流水线协议:滑动窗口协议
6、UDP协议
是一种无连接的服务
7、TCP协议
7.1 连接管理
1、TCP的可靠传输实现机制包括差错编码、确认、序号、重传、计时器
2、TCP的可靠数据传输是基于滑动窗口协议的,但是发送的窗口大小是动态变化的
(1)、封装了TCP报文段
(2)、发出一个报文段后启动一个计时器
(3)、通过校验和发现数据差错
(4)、通过序号重新排序,丢弃重复的报文段
(5)、流量控制
7.1.1 TCP连接--三次握手
1、客户端发送连接测试
2、服务端接收到客户端的连接请求
3、客户端知道服务端接收到了连接请求,发送连接请求
7.1.2 TCP断开--四次挥手
客户端的TCP断开:
1、客户端向服务端发送关闭请求
2、服务端返回接收到了客户端的请求
服务端的TCP断开:
1、服务端向客户端发送关闭请求
2、客户端返回接收到了的服务端关闭连接的请求
注意:客户端和服务端都可以发送断开请求
7.2 TCP如何进行流量控制
1、TCP协议利用窗口机制实现流量控制,但不是简单的滑动窗口协议
2、TCP连接建立时,双方都为之分配了固定大小的缓冲空间;接收方能接收多少取决于缓冲空间
(1)、接受端在发送端发送确认段时,通告接收窗口的大小
(2)、发送端在发送数据时,按照被通知的那个接收窗口大小进行控制
7.3 TCP拥塞控制
1、窗口机制:
通过调节窗口的大小实现对发送数据速率的调整
2、窗口调整的基本策略:
加性增加(开始设定小窗口,网络状态好就逐渐增加,直到到了一定的阈值就不增加窗口)
乘性减少(网络拥塞时,“乘性”快速减小窗口大小)
3、TCP的拥塞控制算法:包括慢启动、拥塞避免、快速重传、快速恢复这四部分