一、概述和运输层服务
1.运输层协议为运行在不同主机上的应用进程直接之间提供了逻辑通信功能。
2.运输层协议是在端系统中而不是在路由器中实现的。
3.在发送端,运输层将从发送应用程序进程接收到的报文转换成运输层分组,该分组称为运输层报文段(segment)。
二、运输层协议和应用层协议的对比
应用 | 应用层协议 | 支撑的运输协议 |
电子邮件 | SMTP | TCP |
远程终端访问 | Telnet | TCP |
Web | HTTP | TCP |
文件传输 | FTP | TCP |
流式多媒体 | HTTP | TCP |
因特网电话 | SIP | UDP或TCP |
三、运输层和网络层的关系
1.网络层提供了主机之间的逻辑通信,而运输层提供了不同主机上的进程之间的逻辑通信。
2.自顶向下,从应用层到运输层到网络层,是逐渐变大的,提供的通信对象变大,可以设定的范围变宽。
四、因特网运输层概述
用户数据报协议和传输控制协议
IP是网络层的协议,为主机之间提供了逻辑通信。
五、多路复用和多路分解
一个进程有一个或多个套接字,它相当于从网络向进程传递数据和从进程向网络传递数据的门户。
多路复用和多路分解是在运输层和网络层之间,涉及到套接字的操作。
1.将运输层报文段中的数据交付到正确的套接字的工作称为多路分解(demultiplexing)。
2.在源主机从不同套接字中收集数据块,并为每个数据块封装上首部信息从而生成报文段,然后将报文段传递到网络层,所有这些工作称为多路复用。
运输层多路复用要求:
1.套接字有唯一标识符;
2.每个报文段有特殊字段来指示该报文段所要交付到的套接字;比如源端口号字段和目的端口号字段;
3.0~1023范围的端口号称为周知端口号(well-known port number);
4.端口号范围0~65535;
5.开发一个新应用程序时,必须为其分配一个端口号。
无连接的多路复用与多路连接:
一个UDP套接字是一个二元组来全面标识的,该二元组包含一个目的IP地址和一个目的端口号。
面向连接的多路复用与多路分解:
TCP套接字是由一个四元组,源IP地址、源端口号、目的IP地址、目的端口号来标识的。
当一个TCP报文段到达主机时,所有4个字段将被用来将报文段定向到相应的套接字。
六、无连接运输:UDP
1.使用UDP时,在发送报文段之前,发送方和接收方的运输实体之间没有握手。正因为如此,UDP被称为是无连接的。
2.有许多应用更加适应UDP,原因主要以下几点:
- 关于何时、发送什么数据的应用层控制更加精细;
- 无需连接建立;
- 无连接状态;
- 分组首部开支小。
应用 | 应用层协议 | 支撑的运输协议 |
电子邮件 | SMTP | TCP |
远程终端访问 | Telnet | TCP |
Web | HTTP | TCP |
文件传输 | FTP | TCP |
远程文件服务器 | NFS | 通常UDP |
流式多媒体 | 通常专用 | UDP或TCP |
因特网电话 | SIP | UDP或TCP |
网络管理 | SNMP | 通常UDP |
路由协议选择 | RIP | 通常UDP |
名字转化 | DNS | 通常UDP |
3.使用UDP是可以实现可靠数据传输的。
UDP报文结构:
源端口号 | 目的端口号 |
长度 | 检验和 |
应用数据(报文) |
UDP检验和:
1.UDP检验和提供了差错检验功能。
2.发送方的UDP对报文段中的所有16比特字的和进行反码运算,求和时遇到任何溢出都被回卷。得到的结果被放在UDP报文段中的检验和字段。
3.UDP提供检验和,体现了端到端原则。