文章目录
声明:
本博客是本人在学习《计算机网络》后整理的笔记,旨在方便复习和回顾,并非用作商业用途。
本博客已标明出处,如有侵权请告知,马上删除。
5.1 运输层协议概述
5.1.1 进程之间的通信
-
从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。
-
当网络的边缘部分中的两个主机使用网络的核心部分的功能进行端到端的通信时,只有位于网络边缘部分的主机的协议栈才有运输层,而网络核心部分中的路由器在转发分组时都只用到下三层的功能。
运输层的作用
-
运输层为相互通信的应用进程提供了逻辑通信。“逻辑通信” 的意思是 “好像是这样通信,但事实上并非真的这样通信”。
-
从 IP 层来说,通信的两端是两台主机。IP 协议虽然能把分组送到目的主机,但这个分组还停留在主机的网络层,而没有交付主机中的应用进程。
-
从运输层的角度看,通信的真正端点并不是主机而是主机中的进程。也就是说,端到端的通信是应用进程之间的通信。
端系统之间通信的含义
“主机 A 和主机 B 进行通信” 实际上是指:“运行在主机 A 上的某个程序和运行在主机 B 上的另一个程序进行通信”。端到端的通信是进程之间的通信。
网络层和运输层有明显的区别
网络层是为主机之间提供逻辑通信,运输层为应用进程之间提供端到端的逻辑通信。
基于端口的复用和分用功能
- 在一台主机中经常有多个应用进程同时分别和另一台主机的多个应用进程通信。
- 这表明运输层有一个很重要的功能——复用和分用。
- 这里的 “复用” 是指在发送方不同的应用进程都可以使用同一个运输层协议传输数据(当然需要加上适当的首部),而 “分用” 是指在接受方的运输层在剥去报文的首部后能够把这些数据正确交付目的应用进程。
- IP 层也有复用与分用的功能。即在发送方不同协议的数据都可以封装成 IP 数据报发送出去,而在接受方的 IP 层根据 IP 首部中的协议字段进行分用,把剥去首部后的数据交付应当接受这些数据的协议。
屏蔽作用
运输层向高层用户屏蔽了下面网络核心的细节,它使应用进程看见的就是好像在两个运输层实体之间有一条端到端的逻辑通信信道。
两种不同的运输协议
- 这条逻辑通信信道对上层的表现却因运输层使用的不同协议而有很大的差别。
- 当运输层采用面向连接的 TCP 协议时,尽管下面的网络是不可靠的(只提供尽最大努力服务),但这种逻辑通信信道就相当于一条全双工的可靠信道。
- 当运输层采用无连接的 UDP 协议时,这种逻辑通信信道是一条不可靠信道。
5.1.2 运输层的两个主要协议
TCP/IP 的运输层有两个主要协议:
- 用户数据报协议 UDP (User Datagram Protocol)
- 传输控制协议 TCP (Transmission Control Protocol)
TCP 与 UDP
- 两个对等运输实体在通信时传送的数据单位叫作运输协议数据单元 TPDU (Transport Protocol Data Unit)。
- TCP 传送的数据单位协议是 TCP 报文段(segment)。
- UDP 传送的数据单位协议是 UDP 报文或用户数据报。
使用 UDP 和 TCP 的典型应用和应用层协议
还要强调两点
- 运输层的 UDP 用户数据报与网际层的 IP 数据报有很大区别。
- IP 数据报要经过互连网中许多路由器的存储转发。
- UDP 用户数据报是在运输层的端到端抽象的逻辑信道中传送的。
- TCP 报文段是在运输层抽象的端到端逻辑信道中传送,这种信道是可靠的全双工信道。但这样的信道却不知道究竟经过了哪些路由器,而这些路由器也根本不知道上面的运输层是否建立了 TCP 连接。
5.1.3 运输层的端口
- 运行在计算机中的进程是用进程标识符来标志的。
- 但运行在应用层的各种应用进程却不应当让计算机操作系统指派它的进程标识符。这是因为在互联网上使用的计算机的操作系统种类很多,而不同的操作系统又使用不同格式的进程标识符。
- 为了使运行不同操作系统的计算机的应用进程能够互相通信,就必须用统一的方法对 TCP/IP 体系的应用进程进行标