文章目录
- 传输层协议
- 各低层通信特点
- 传输层的功能
- 端到端的通信
- 复用和分用
- 差错检测
- 提供两种不同的传输协议
- 屏蔽了低层网络核心的细节
- 端口
- 端口的作用
- 硬件端口
- 软件端口
- 服务器端使用的端口号
- 熟知端口号
- 一些常用的熟知端口号
- 登记端口号
- 客户端使用的端口号
- 套接字
- 无连接服务与面向连接服务
- 面向连接服务
- IP数据报和UDP数据报的区别
- TCP和网络层虚电路的区别
传输层协议
- 用户数据报协议UDP (User Datagram Protocol)
- 传输控制协议TCP (Transmission Control Protocol)
- 两个对等运输实体在通信时传送的
数据单位
叫作运输协议数据单元
TPDU (Transport Protocol Data Unit)
- 简称协议数据单元(PDU)
- TCP 传送的
数据单位协议
是TCP 报文段(segment)。 - UDP 传送的
数据单位协议
是 UDP 报文(用户数据报)。
各低层通信特点
- 传输层:端口号导向
- 网络层:IP地址导向
- 数据链路层:Mac地址导向
传输层的功能
端到端的通信
- 传输层提供应用进程之间的逻辑通信(即端到端的通信)。
- 与网络层的区别是,网络层提供的是主机之间的逻辑通信。
- 从网络层来说,通信的双方是两台主机,IP数据报的首部给出了这两台主机的IP地址。
- 但“两台主机之间的通信”实际上是两台主机中的应用进程之间的通信,应用进程之间的通信又称端到端的逻辑通信。
- 这里“逻辑通信”的意思是:传输层之间的通信好像是沿水平方向传送数据,但事实上这两个传输层之间并没有一条水平方向的物理连接。
复用和分用
- 复用是指发送方不同的应用进程都可使用同一个传输层协议传送数据:
- 分用是指接收方的传输层在剥去报文的首部后能够把这些数据正确交付到目的应用进程。
- 网络层也有复用分用的功能,和传输层的分用/复用不同含义
- 复用是指发送方不同协议的数据都可以封装成IP数据报发送出去
- 分用是指接收方的网络层在剥去首部后把数据交付给相应的协议。
差错检测
- 传输层还要对收到的报文进行差错检测(首部和数据部分)。
- 而网络层只检查IP数据报的首部,不检验数据部分是否出错。
提供两种不同的传输协议
- 即面向连接的TCP和无连接的UDP。
- 网络层无法同时实现两种协议
- 即在网络层要么只提供面向连接的服务,如虚电路:
- 要么只提供无连接服务,如数据报,而不可能在网络层同时存在这两种方式)。
屏蔽了低层网络核心的细节
- 传输层向高层用户屏蔽了低层网络核心的细节(如网络拓扑、路由协议等)
- 它使应用进程看见的是在两个传输层实体之间好像有一条端到端的逻辑通信信道,这条逻辑通信信道对上层的表现却因传输层协议不同而有很大的差别。
- 当传输层采用面向连接的TCP时,尽管下面的网络是不可靠的(只提供尽最大努力的服务),但这种逻辑通信,信道就相当于一条全双工的可靠信道。
- 但当传输层采用无连接的UDP时,这种逻辑通信信道仍然是一条不可靠信道。
端口
端口的作用
- 端口能够让应用层的各种应用进程将其数据通过端口向下交付给传输层,以及让传输层知道应当将其报文段中的数据向上通过端口交付给应用层相应的进程。
- 端口是传输层服务访问点(TSAP)
- 它在传输层的作用类似于P地址在网络层的作用或MAC地址在数据链路层的作用,
- IP地址和MAC地址标识的是主机
- 端口标识的是主机中的应用进程。
- 数据链路层的SAP是MAC地址,网络层的SAP是IP地址,传输层的SAP是端口。
- 在协议栈层间的抽象的协议端口是软件端口,它与路由器或交换机上的硬件端口是完全不同的概念。
硬件端口
- 是不同硬件设备进行交互的接口
软件端口
- 是应用层的各种协议进程与传输实体进行层间交互的一种地址。
- 传输层使用的是软件端口。
- 端口号应用进程通过端口号进行标识,端口号长度为16bit,能够表示65536(216)个不同的端口号。
- 端口号只具有本地意义,即端口号只标识本计算机应用层中的各进程,在因特网中不同计算机的相同端口号是没有联系的。
- 端口号(protocol port number)
- 在运输层使用协议端口号 (protocol port number),或通常简称为端口 (port)。
- 虽然通信的终点是应用进程,但我们可以把端口想象是通信的终点
- 因为我们只要把要传送的报文交到目的主机的某一个合适的目的端口,剩下的工作(即最后交付目的进程)就由 TCP 来完。
- 根据端口号范围可将端口分为两类:
服务器端使用的端口号
- 它又分为两类
熟知端口号
- 最重要的一类是熟知端口号,数值为0~1023,
- IANA(互联网地址指派机构)把这些端口号指派给了TCPP最重要的一些应用程序,让所有的用户都知道。
一些常用的熟知端口号
应用程序 | TELNET | FTP | SMTP | DNS | TFTP | HTTP | SNMP |
熟知端☐号 | 23 | 21 | 25 | 53 | 69 | 80 | 161 |
- SNMP:Simple Network Management Protocol - Wikipedia
- UDP
RPC | DNS | TFTP | SNMP | SNMP(trap) |
111 | 53 | 69 | 161 | 162 |
- TCP
SMTP | FTP | Telnet | HTTP | HTTPS |
25 | 20/21 | 23 | 80 | 443 |
登记端口号
- 登记端口号,数值为1024~49151。
- 它是供没有熟知端口号的应用程序使用的,使用这类端口号必须在IANA登记,以防止重复。
客户端使用的端口号
- 客户端使用的端口号,数值为49152~65535。
- 由于这类端口号仅在客户进程运行时才动态地选择,因此又称短暂端口号(也称临时端口)。
- 通信结束后,刚用过的客户端口号就不复存在,从而这个端口号就可供其他客户进程以后使用。
套接字
- 在网络中通过IP地址来标识和区别不同的主机,通过端口号来标识和区分一台主机中的不同应用进程
- 端口号拼接到IP地址即构成套接字Socket
- 在网络中采用发送方和接收方的套接字来识别端点。
- 套接字,实际上是一个通信端点,即
套接字Socket=(IP地址:端口号)
- 它唯一地标识网络中的一台主机和其上的一个应用(进程)。
- 在网络通信中,主机A发给主机B的报文段包含目的端口号D和源端口号S,源端口号S是**“返回地址”的一部分**,
- 即当B需要发回一个报文段给A时,B到A的报文段中的目的端口号S便是A到B的报文段中的源端口号S(完全的返回地址是A的IP地址和源端口号)。
无连接服务与面向连接服务
面向连接服务
- 就是在通信双方进行通信之前,必须先建立连接,在通信过程中,整个连接的情况一直被实时地监控和管理。通信结束后,应该释放这个连接。无连接服务是指两个实体之间的通信不需要先建立好连接,需要通信时,直接将信息发送到“网络”中,让该信息的传递在网上尽力而为地往目的地传送。
- TCP/IP协议族在IP层之上使用了两个传输协议:
- 一个是面向连接的传输控制协议(TCP),采用TCP时,传输层向上提供的是一条全双工的可靠逻辑信道;
- 另一个是无连接的用户数据报协议(UDP),
- 采用UDP时,传输层向上提供的是一条不可靠的逻辑信道。
- TCP提供面向连接的服务,在传送数据之前必须先建立连接,数据传送结束后要释放连接。
- TCP不提供广播或组播服务。
- 由于TCP提供面向连接的可靠传输服务,因此不可避免地增加了许多开销,如确认、流量控制、计时器及连接管理等。
- 这不仅使协议数据单元的头部增大很多,还要占用许多的处理机资源。
- TCP主要适用于可靠性更重要的场合,如文件传输协议(FTP)、超文本传输协议(HTTP)、远程登录(TELNET)等。
- UDP是一个无连接的非可靠传输层协议。
- 它在IP之上仅提供两个附加服务:多路复用和对数据的错误检查。
- IP知道怎样把分组投递给一台主机,但不知道怎样把它们投递给主机上的具体应用。
- UDP在传送数据之前不需要先建立连接,远程主机的传输层收到UDP报文后,不需要给出任何确认。
- 由于UDP比较简单,因此执行速度比较快、实时性好。
- 使用UDP的应用主要包括小文件传送协议(TFTP)、DNS、SNMP和实时传输协议(RTP)。
IP数据报和UDP数据报的区别
- IP数据报在网络层要经过路由的存储转发;
- 而UDP数据报在传输层的端到端的逻辑信道中传输,封装成P数据报在网络层传输时,UDP数据报的信息对路由是不可见的。
TCP和网络层虚电路的区别
- TCP报文段在传揄层抽象的逻辑信道中传输,对路由器不可见;
- 虚电路所经过的交换结,点都必须保存虚电路状态信息。
- 在网络层若采用虚电路方式,则无法提供无连接服务;
- 而传输层采用TCP不影响网络层提供无连接服务。