作为TCP和UDP协议的学习前奏,简单的介绍一下运输层的相关内容,方便对TCP,UDP的学习。
1.概述
运输层的任务主要是负责主机中两个进程之间的通信。
运输层的基本功能:
-
- 复用与分用
- 差错控制(完整性控制)
- 可靠传输(按序交付,无丢失,不重复)
- 拥塞控制(收发双方的协调一致)
- 流量控制(全局上的通信流量调节)
2.网络层与运输层的区别
- 运输层为应用进程之间提供端到端的逻辑通信。
- 运输层对收到的报文进行差错检测,包括首部和数据部分。
- 运输层有两种不同的运输协议,即面向链接的TCP(传输控制协议)和无连接的UDP(用户数据报协议)。
3.一些应用和应用层协议主要是用的运输层协议,如图所示:
4.运输层和端口
- 分用与复用
-
- 分用(Demultiplexing):即将运输层的报文段中的数据交付到正确的套接字的工作。
- 复用(Multiplexing):是在源主机的不同套接字中收集数据块,并为每个数据块封装上首部信息(将在分用的时候使用),从而生成报文段/数据报,然后将报文段/数据报传递到网络层工作。
- 端口
-
- 为了进行分用和复用,需要给应用层的每个进程赋予一个非常明确的标志,在协议层就采用了协议端口号,简称端口。
- UDP和TCP都使用了与应用层接口处的端口与上层的应用进程进行通信。端口也就是运输层的服务访问点(TSAP),其作用就是让应用层的各种应用进程都能将其数据通过端口交付给运输层,以及让运输层知道将其报文中的数据向上通过端口交付给应用层相应的进程。
- 端口的分类
-
- 服务器端使用的端口号
-
- 熟知端口或系统端口:其数值为0~1023
- 登记端口:通过IANA通过登记分配给没有熟知端口号的应用程序使用。其数值为1024~65535
- 客户端使用的端口号:其数值为49152~65535。客户端运行时动态选择,因此也叫短暂端口号。
- 常用的熟知端口号如下所示: