计算机网络(五)
运输层
声明:所用的图片均是从网上下载,如有侵权,请联系我!!!!
重点:运输层为相互通信的应用进程提供逻辑通信
端口和套接字的意义
无连接的UDP的特点
面向连接的TCP的特点
在不可靠的网络上实现可靠传输的工作原理,停止等待协议和ARQ协议
TCP的滑动窗口、流量控制、拥塞控制和连接管理
运输层屏蔽了运输层下层的复杂,保证了两个主机中应用进程的通信
端口:是应用进程中为了区别不同进程的一种表示,通过IP地址加端口的方式,我们可以实现不同的应用进程之间的通讯
套接字:TCP连接的端点,socket = IP:端口号
每一条的TCP链接需要两个套接字确定
数据报协议UDP
特点:
无连接的
尽最大努力交付
面向报文的
没有拥塞控制
支持一对一、一对多、多对一和多对多通讯
首部开销很小
UDP的首部格式:
传输控制协议TCP
特点:
是面向连接的
一条连接只能有两个端点
提供可靠交付的服务
提供全双工的通信
面向字节流
TCP报文段的首部格式:
可靠传输的工作原理
所用协议:
停止等待协议:每发送一个分组就停止发送,等待对方确认后再发送下一个
连续ARQ协议(自动重传请求):自动进行重传请求发送,采用了滑动窗口的方式
TCP可靠传输的实现——TCP的滑动窗口和超时重传
以字节为单位的滑动窗口的工作原理图
TCP的流量控制:让发送方的发送速率不要太快,要让接收方来得及接收
实现:使用滑动窗口
示例图:
TCP的拥塞控制
拥塞控制方法:慢开始:每经过一个传输轮次,拥塞窗口cwnd就加倍,但有一个阀值
拥塞避免:每经过一个往返时间RTT就把发送方的拥塞窗口cwnd加1,cwnd按线性规律缓慢增长
快重传:让发送方尽早知道发生了个别报文段的丢失
快恢复
TCP的运输连接管理
阶段:连接建立、数据传送、连接释放
TCP的连接建立:
三报文握手:
SYN:同步位
seq:初始序号
ack:确认号
四报文释放:
当客户端没有数据再需要发送给服务端时,就需要释放客户端的连接,这整个过程为:
- 客户端发送一个报文给服务端(没有数据),其中FIN设置为1,Sequence Number置为u,客户端进入FIN_WAIT_1状态
- 服务端收到来自客户端的请求,发送一个ACK给客户端,Acknowledge置为u+1,同时发送Sequence Number为v,服务端年进入CLOSE_WAIT状态
- 服务端发送一个FIN给客户端,ACK置为1,Sequence置为w,Acknowledge置为u+1,用来关闭服务端到客户端的数据传送,服务端进入LAST_ACK状态
- 客户端收到FIN后,进入TIME_WAIT状态,接着发送一个ACK给服务端,Acknowledge置为w+1,Sequence Number置为u+1,最后客户端和服务端都进入CLOSED状态