文章目录
- 传输层
- 传输服务和协议
- 传输层 vs. 网络层
- Internet传输层协议
- 多路复用/解复用
- 在发送方主机多路复用
- 在接收方主机多路解复用
- 多路解复用工作原理
- 无连接(UDP)多路解复用
- 无连接传输:UDP
- UDP:用户数据报协议
- UDP校验和
传输层
- 目标:理解传输层的工作原理
- 多路复用/解复用
- 可靠数据传输
- 流量控制
- 拥塞控制
- 学习Internet的传输层协
议- UDP:无连接传输
- TCP:面向连接的可靠传输
- TCP的拥塞控制
传输服务和协议
- 为运行在不同主机上的应用进程提供逻辑通信
- 传输协议运行在端系统
- 发送方:将应用层的报文分成报文段,然后传递给网络层
- 接收方:将报文段重组成报文,然后传递给应用层
- 有多个传输层协议可供应用选择
- Internet: TCP和UDP
传输层 vs. 网络层
- 网络层服务:主机之间的逻辑通信
- 传输层服务:进程间的逻辑通信
- 依赖于网络层的服务
- 并对网络层的服务进行增强
有些服务是可以加强的:不可靠 -> 可靠;安全
但有些服务是不可以被加强的:带宽,延迟
Internet传输层协议
- 可靠的、保序的传输: TCP
- 多路复用、解复用
- 拥塞控制
- 流量控制
- 建立连接
- 不可靠、不保序的传输:UDP
- 多路复用、解复用
- 没有为尽力而为的IP服务添加更多的其它额外服务
- 都不提供的服务:
- 延时保证
- 带宽保证
多路复用/解复用
在发送方主机多路复用
从多个套接字接收来自多个进程的报文,根据套接字对应的IP地址和端口号等信息对报文段用头部加以封装(该头部信息用于以后的解复用)
在接收方主机多路解复用
根据报文段的头部信息中的IP地址和端口号将接收到的报文段发给正确的套接字(和对应的应用进程)
多路解复用工作原理
- 解复用作用:TCP或者UDP实体采用哪些信息,将报文段的数据部分交给正确的socket,从而交给正确的进程。
- 主机收到IP数据报
- 每个数据报有源IP地址和目标地址
- 每个数据报承载一个传输层报文段
- 每个报文段有一个源端口和目标端口
- 主机联合使用IP地址和端口号将报文段发送给合适的套接字
无连接(UDP)多路解复用
- 在接收端,UDP套接字用二元组标识(目标IP地址,目标端口号)
- 当主机收到UDP报文段:
- 检查报文段的目标端口号
- 用该端口号将报文段定位给套接字
- 如果两个不同源IP地址/源端口号的数据报,但是有相同的目标IP地址和端口号,则被定位到相同的套接字
无连接传输:UDP
UDP: User Datagram Protocol [RFC ]
- 尽力而为的服务,报文段可能
- 丢失
- 送到应用进程的报文乱序
- 无连接
- UDP发送端和接收端之间没有握手
- 每个UDP报文段都被独立的处理
- UDP被用于:
- 流媒体(丢失不敏感,速率敏感,应用可控制传输速率)
- DNS
- SNMP
- UDP上可行可靠传输:
- 在应用层增加可靠性
- 应用特定的差错恢复
UDP:用户数据报协议
为什么要有UDP?
- 不建立连接(会建立延时)
- 简单:在发送端和接收端没有连接状态
- 报文段的头部很小(开销小)
- 无拥塞控制和流量控制:
- UDP可以尽可能快的发送报文段
UDP校验和
目标;检测在被传输报文段中的差错 (如比特反转)
发送方:
- 将报文段的内容视为16比特的整数
- 校验和:报文段的加法和 (1的补运算)
- 发送方将校验和放在UDP的校验和字段
接收方:
- 计算接收到的报文段的校验和
- 检查计算出的校验和与校验和字段的内容是否相等:
- 不相等––检测到差错
- 相等––没有检测到差错,但也许还是有差错