传输层的相关知识


传输层的基本服务

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地址找主机,端口号找应用程序
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的拥塞控制算法:包括慢启动、拥塞避免、快速重传、快速恢复这四部分