传输层解决的问题:
1、实现计算机之间进程之间的通讯。
2、提供可靠的传输服务。(差错校验,重传机制,排序,流量控制)
传输层的功能:
1、网络进程寻址:源主机地址+源进程标志、目的主机地址+目的主机标志
2、可靠传输:建立链接,维护,拆除,错误恢复与流量控制。
3、分段功能
4、复用功能:一个高层应用复用多个网络层链接,多个高层应用复用一个网络链接。
根据高层应用的需求传输层提供了2中不同的服务:
1、面向连接的可靠服务。(TCP)
2、无连接的不可靠服务。(UDP)
网络进程标志:端口号
TCP协议:
面向连接的可靠的进程之间的通讯(传输控制协议)
提供一套可靠的传输机制:
1、连接的建立与拆除。
2、数据流传输的顺序,确认,差错控制,流量控制,全双工通讯。
TCP分段的格式
1、源端口:源主机端口号16位。
2、目标端口:目标主机端口16位。
3、序号:分段在数据包中开始的第一个字节序号,标志分段在数据包中的位置。
4、确认号:给出目标主机希望下一个接受分段的序号。
5、头部长度:4位,单位位4个字节,最大头部位15*4 = 60字节。
6、保留位:暂未使用。
7、编码位:URG,ACK,PSH,RST,SYN,FIN共6位,给出分段作用及分段控制信息。
8、窗口大小:表示发送方及接收方缓冲池大小,发送方,可以发送的数据大小,接收方,可以接受的数据大小,
使用可变滑动窗口协议进行流量控制。
9、检验和:校验分段头和数据,用于差错控制。
10、紧急指针:给出当前数据到紧急指针的位置。
TCP中的6个编码位置
TCP服务实现的三个阶段:
1、建立连接。
2、数据传输。
3、拆除连接。
建立连接,TCP的三次握手。
主机A要和主机B建立TCP连接。
1、主机A发送SYN=1,ASK=0的TCP数据包到B主机,请求建立连接。
2、主机B发送SYN=1,ACK=1的TCP数据包到A主机,同意建立连接。
3、主机A发送SYN=1,ACK=1的TCP数据包到B主机,开始建立连接。
连接可以由任意一方发起,只用通过了3次握手A主机和B主机的传输层才通知应用层连接建立成功。
TCP拒接连接,通过发送RST = 1的TCP数据包拒接建立TCP连接。
拆除连接,TCP四次握手:
1、主机A发送FIN=1的TCP数据包到B主机,请求拆除连接。
2、主机B发送ACK=1的TCP数据包到B主机,同意拆除连接。
3、主机B发送FIN=1的TCP数据包到A主机,数据传输完毕可以拆除。
4、主机A发送ACK=1的TCP数据包到A主机,拆除完成。
数据的可靠传输
TCP协议通过序号和确认号实现数据的可靠传输。
TCP分段中要明确给出传输的分段在TCP数据包中的序号,接受方接受到数据分段后需给出确认。
1、如果接受方给出的确认包是下一个分段的起始序号,表示上一个数据包被正确接受。
2、如果接受方给出的确认包是上一个分段的起始序号,表示上一次传输失败,序号重传。
分段重组
接受段收到的分段可能是无序的,TCP进程需要将缓存中的数据包根据序号进行重排序,组成完整的数据包交给应用层。
滑动窗口协议实现流量控制