1、传输层:
传输层为运行在不同应用上的进程提供了一种逻辑通信机制
发送方:将应用递交的消息分成一个或多个的Segment,并向下传给网络层
接收方:将收到的segment组装成消息,并向上交给应用层
传输层协议:UDP/TCP
传输层和网络层区别:
网络层:提供主机之间的逻辑的逻辑通信机制,传输层提供的是应用进程之间,且依赖网络层、依赖网路层服务、对网络层服务进行(可能的)增强。
1、1、基本理论:
可靠数据传输原理:
多路复用(发送端)与多路分用(接收端)
接收端多路分用:传输层依据头部信息将收到Segment交给正确的Socket,即不同的进程
发送端多路复用:从多个socket接收数据,为每一块数据封装上头部信息,生成Segment,交给网络层。
分用工作机制:主机接收到的IP数据报:
每个数据报携带源IP地址和目的IP地址;每个数据报携带一个一个传输层的段Segment;每个携带源端口号和目的端口号
主机接收到Segment之后,传输层协议提取IP地址和端口号信息,将Segment导入相应的Socket
无连接分用:UDP的Socket用二元组标识(目的IP地址、目的的端口号)
主机接收到UDP段后:检查段中的目的端口号,将UDP段导向绑定在该端口号的Socket
来自不同源的IP地址和/或源端口号的IP数据报将被导向同一个Socket
面向连接的多路分用:源IP地址、源端口号、目的IP地址、目的端口号
接收端利用所有的四个值将Segment导向合适的Socket,服务器能勇士支持多个TCPSocket,为每个Socket表示自己的四元组。
2、internet传输层协议
tcp协议:可靠、按序的交付服务==>拥塞控制、流量控制、连接建立
UDP协议:不可靠的交付服务 ====>基于“尽力而为”的网络层,没有做(可靠性方面)的扩展
均不提供:延迟和带宽保障
2.1UDP协议
复用/分用、简单的错误校验
为什么要在传输层做错误检测(端到端的逻辑通信)可能会经过多路由器和不同链路的介质,我们不能保证所有的路由器和链路都有错误检验机制
Best effort 服务,UDP段可能会丢失或者非按序到达。 UDP发送方和接收方不需要握手,每个UDP报文段的处理独立于其他段
UDP存在的价值:无须建立连接(减少延迟);实现简单,无须维护连接状态;头部开销少(8字节);没有拥塞控制;应用可更好地控制发送时间和速率
常用于流媒体,DNS,SNMP
在UDP上实现可靠数据传输:在应用层增加可靠性机制、应用特定的错误回复机制
UDP校验和(checksum):目的:检测UDP端=段在传输中是否发生错误(如为位翻转)
#发送方:将段的内容视为16-bit整数;校验和计算:计算所有整数的和,进位加在和的后面,将得到的值安位求反,得到校验和;发送将检验和放入校验和字段
接收方:计算所受到段的校验和;将其与校验和字段进行对比:不相等:检测出错误;相等:没有检测出错误(仍然可能有错误)
校验和计算:注意:最高位进位必须被加进去