计算机网络系列内容的学习目录 → \rightarrow →谢希仁计算机网络学习系列内容汇总。
■ 之前的计算机网络体系结构中的物理层、数据链路层以及网络层它们共同解决了将主机通过异构网络互联起来所面临的问题,实现了主机到主机的通信。
■ 但实际上在计算机网络中进行通信的真正实体是位于通信两端主机中的进程。
■ 如何为运行在不同主机上的应用进程提供直接的通信服务是运输层的任务,运输层协议又称为端到端协议。
下图从计算机网络体系结构的角度来看运输层。AP1、AP2、AP3、AP4是通信双方应用层中的应用进程,假设AP1与AP4之间进行基于网络的通信,AP2与AP3之间进行基于网络的通信。在运输层使用不同的端口来对应不同的应用进程,然后通过网络层及其下层来传输应用层报文。接收方的运输层通过不同的端囗将收到的应用层报文交付给应用层中相应的应用进程。需要注意的是,这里的端口并不是指看得见摸得着的物理端口,而是指用来区分不同应用进程的标识符。为了简单起见,在学习和研究运输层时,我们可以简单的认为运输层直接为应用进程间的逻辑通信提供服务。“逻辑通信”的意思是,运输层之间的通信好像是沿水平方向传送数据,但事实上这两个运输层之间并没有一条水平方向的物理连接,要传送的数据是沿着图中上下多次的虚线方向传送的。
运输层向高层用户屏蔽了下面网络核心的细节(如网络拓扑、所采用的路由选择协议等),它使应用层看见的就好像是在两个运输层实体之间有一条端到端的逻辑通信信道。
根据应用需求的不同,因特网的运输层为应用层提供了两种不同的运输层协议,即面向连接的TCP和无连接的UDP。
1. 运输层为( B )之间提供逻辑通信服务。
A. 主机 B. 进程 C. 路由器 D. 操作系统
分析: 运输层为进程之间提供逻辑通信服务。
2. 在TCP/IP体系结构中,运输层的主要作用是在互联网络的源主机和目的主机对等实体之间建立用于会话的( C )
A. 点到点连接 B. 操作连接 C. 端到端连接 D. 控制连接
分析: 在TCP/IP体系结构中,运输层的主要作用是在互联网络的源主机和目的主机对等实体之间建立用于会话的端到端连接。
■ 运行在计算机上的进程使用进程标识符PID来标志。
■ 因特网上的计算机并不是使用统一的操作系统,不同的操作系统(windows,Linux,Mac oS)又使用不同格式的进程标识符。
■ 为了使运行不同操作系统的计算机的应用进程之间能够进行网络通信,就必须使用统一的方法对TCP/IP体系的应用进程进行标识。
■ TCP/IP体系的运输层使用端口号来区分应用层的不同应用进程。
⋄ \diamond ⋄ 端口号使用16比特表示,取值范围0~65535;
∘ \circ ∘ 熟知端口号:0~1023,因特网数字分配机构IANA把这些端口号指派给了TCP/IP体系中最重要的一些应用协议,例如:FTP使用21/20,HTTP使用80,DNS使用53。
∘ \circ ∘ 登记端口号: 1024~49151,为没有熟知端口号的应用程序使用。使用这类端口号必须在IANA按照规定的手续登记,以防止重复。例如:Microsoft RDP微软远程桌面使用的端口是3389。
∘ \circ ∘ 短暂端口号: 49152~65535,留给客户进程选择暂时使用。当服务器进程收到客户进程的报文时,就知道了客户进程所使用的动态端口号。通信结束后,这个端口号可供其他客户进程以后使用。
⋄ \diamond ⋄ 端口号只具有本地意义,即端口号只是为了标识本计算机应用层中的各进程,在因特网中,不同计算机中的相同端口号是没有联系的。
■ 发送方的复用和接收方的分用
如下图所示,对于收发双方的应用进程,发送方的某些应用进程所发送的不同应用报文,在运输层使用UDP协议进行封装,称为UDP复用。而另一些应用进程所发送的不同应用报文,在运输层使用TCP协议进行封装,称为TCP复用。
运输层使用端口号来区分不同的应用进程,不管是使用运输层的UDP协议封装成的UDP用户数据报,还是使用TCP协议封装成的TCP报文段,在网络层都需要使用IP协议封装成IP数据报,称为IP复用。
IP数据报首部中协议字段的值用来表明IP数据报的数据载荷部分封装的是何种协议数据单元,取值为6,表示封装的是TCP报文段;取值为17,表示封装的是UDP用户数据报。接收方的网络层收到IP数据报后进行IP分用,若IP数据报首部中协议字段的值为17,则把IP数据报的数据载荷部分所封装的UDP用户数据报上交运输层的UDP;若协议字段的值为6,则把IP数据报的数据载荷部分所封装的TCP报文段上交运输层的TCP。
运输层对UDP用户数据报进行UDP分用,对TCP报文段进行TCP分用,也就是根据端口号将它们交付给上层相应的应用进程。
■ TCP/IP体系的应用层常用协议所使用的运输层熟知端口号
1. 在TCP/IP中,采用( A )来区分不同的应用进程。
A. 端口号 B. IP地址 C. 协议类型 D. MAC地址
分析: 在TCP/IP中,采用端口号来区分不同的应用进程。
2. 在TCP/IP网络中,为各种熟知应用保留的端口号范围是( B)
A. 1~255 B. 0~1023 C. 1~1024 D. 1~65535
分析: 熟知端口号:0~1023,因特网数字分配机构IANA把这些端口号指派给了TCP/IP体系中最重要的一些应用协议。
3. 在TCP/IP中,运输层端口号的范围是( D)
A. 1~255 B. 0~1023 C. 1~1024 D. 1~65535
分析: TCP/IP体系的运输层使用端口号来区分应用层的不同应用进程,端口号使用16比特表示,取值范围0~65535。
■ UDP和TCP是TCP/IP体系结构运输层中的两个重要协议
下图所示的是TCP/IP体系结构,运输层有两个非常重要的协议UDP和TCP。在使用TCP/IP体系结构的网络通信中,这两个协议的使用频率仅次于网际层的IP协议。TCP/IP体系结构应用层中的某些协议需要使用运输层的TCP提供的服务,而另一些协议需要使用运输层的UDP提供的服务,UDP是用户数据报协议的英文缩写词,TCP是传输控制协议的英文缩写词。
下表给出了一些应用和应用层协议主要使用的运输层协议(UDP或TCP)。
1. 以下字段包含在TCP首部中而不包含在UDP首部中的是( B )
A. 目标端口号 B. 序号 C. 源端口号 D. 校验和
分析: 以下字段包含在TCP首部中而不包含在UDP首部中的是序号。
2. 若接收端收到有差错的UDP用户数据报,则会( A )
A. 将其丢弃 B. 请求重传 C. 纠错 D. 忽略差错
分析: 若接收端收到有差错的UDP用户数据报,则会将其丢弃。
当运输层使用UDP协议时,向其上层提供的是无连接不可靠的传输服务。发送方给接收方发送UDP用户数据报,若传输过程中,用户数据报受到干扰而产生误码,接收方UDP可以通过该数据报首部中的校验和字段的值,检查出产生误码的情况,但仅仅丢弃该数据报,其他什么也不做。
3. UDP用户数据报比IP数据报多提供了( C )
A. 流量控制功能 B. 拥塞控制功能 C. 端口功能 D. 路由转发功能
分析: UDP用户数据报比IP数据报多提供了端口功能。
4. 下列不属于TCP特点的是( D )
A. 面向字节流 B. 全双工 C. 可靠 D. 支持广播
分析: TCP特点:面向字节流、全双工、可靠。