3.1概述和运输层服务
3.1.1运输层概述
运输层协议是为运行在不同主机上的应用进程之间提供逻辑通信
传输协议运行在端系统
- 发送方:将应用层的报文分成报文段,然后传递给网络层
- 接收方:将报文段重组成报文,然后传递给应用层
有多个传输层协议可供应用选择
- Internet:TCP和UDP
3.1.2传输层和应用层的关系
传输层vs网络层
网络层服务:主机之间的逻辑通信
传输层服务:进程之间的逻辑通信
- 依赖于网络层的服务(延时、带宽)
- 并对网络层的服务进行增强(数据丢失、顺序混乱、加密)
有些服务是可以加强的,(不可靠到可靠、安全);但有些服务是不可以被加强的(带宽、延迟)。
3.2多路复用和多路分解
多路分解:将传输层报文段的数据到正确的套接字的工作。
多路复用:在源主机从不同套接字中收集数据块,并为每个数据块装上首部信息(这将在以后用于分解)从而生成报文段,然后将报文段传递到网络层的工作。
多路解复用的工作原理:
- 解复用作用:TCP或者UDP实体采用哪些信息,将报文段的数据部分交给正确的进程
- 主机收到IP数据报
每个数据报有元IP地址和目标地址
每个数据报承载一个传输层报文段
每个报文段有一个源端口号和目标端口号(特定应用有署名的端口号)
- 主机联合使用IP地址和端口号将报文段发送给合适的套接字
1.无连接的多路复用与多路分解
- 创建套接字
服务器端:
server socket=socket(PF_INET,SOCK_DGRAM,O);
bind(server socket,&sad,sizeof(sad);
server socket和sad的端口号捆绑
客户端:
没有Blind,client socket和OS为之分配的某个端口号捆绑(客户端使用什么端口号无所谓,客户端主动找服务器)
- 在接收端,UDP