mirror of
https://github.com/Didnelpsun/CS408.git
synced 2026-02-11 06:35:54 +08:00
326 KiB
326 KiB
传输层
基本概念
传输层只有主机才有,而路由器这种中间设备至多只有物理层、数据链路层和网络层三层架构。
传输层的功能
- 传输层提供进程与进程之间的逻辑通信。
- 复用与分用。(复用:应用层所有的应用进程都可以通过传输层再传输到网络层;分用:传输层从网络层收到数据后交付指明的应用进程)
- 差错检测。
寻址与端口
- 端口(逻辑端口/软件端口):是传输层的SAP,标识主机中的应用进程。
- 每一个端口有用于区分的端口号,只有本地意义,因特网中不同主机的相同端口号无联系。
- 端口号长度为16bit,能标识65536个不同的端口号。
- 端口号按范围划分可以分为:
- 服务端使用的端口号:
- 熟知端口号(0-1023):给TCP/IP最重要的一些应用程序,让所有用户都知道。
- 登记端口号(1024-49151):为没有熟知端口号的应用程序使用。
- 客户端使用的端口号:仅在客户进程运行时才系统动态分配。
- 服务端使用的端口号:
- 套接字Socket=(主机IP地址,端口号)。唯一标识了网络中的一个主机和它上面的一个进程。
常用的端口号:
| 应用程序 | 熟知端口号 |
|---|---|
| FTP | 21 |
| TELNET | 23 |
| SMTP | 25 |
| DNS | 53 |
| TFTP | 69 |
| HTTP | 80 |
| SNMP | 161 |
| HTTPS | 223 |
UDP协议
用户数据报协议只在IP数据报服务之上添加了很少的功能,即只有复用分用与差错检测功能。
主要特点
- 无连接,减少开销和发送数据之前的时延。
- 使用最大努力交付,而非保证可靠交付。
- 面向报文(不对报文拆分,应用层给多长报文,UDP就会照样一次发送一个完整报文),适合一次性传输少量数据的网络应用。
- 无拥塞控制,适合很多实时应用,实时应用延迟要求高,需要立即响应。
- 首部开销小,8B,而TCP20B。
UDP帧格式
- 源端口号:如果不需要回应,可以不填,即是全0的。
- 目的端口号:是必填的。分用时,如果找不到对应的目的端口号就丢弃该报文,并向发送方发送ICMP端口不可达差错报告报文。
- UDP长度:整个UDP用户数据报的长度,首部加上数据部分。
- UDP检验和:检测整个UDP数据报是否有错,错就丢弃。
具体的UDP数据报格式如下:
- 伪首部只有在计算检验和时才出现,不向下传达也不向上提交。
- 其中的17代表封装UDP报文的IP数据报首部协议字段是17。
- UDP长度是UDP首部8B加上数据长度,不包括伪首部。
[]