目录
5.1 运输层概述
- 之前的课程所介绍的计算机网络体系结构中的物理层、数据链路层以及网络层之间他们共同解决了将主机通过异构网络互连起来所面临的问题,实现了主机到主机之间的通信。
- 实际上在计算机网络中进行通信的真正实体是位于通信两端的主机中的进程
- 如何为运行在不同主机上的应用进程提供直接的通信服务是运输层的任务,运输层协议又称为端到端协议。
运输层简单传输过程
什么是逻辑通信?
“逻辑通信”是指运输层之间的通信使人感觉是沿水平方向传送数据,但事实上,这两条数据并没有一条水平方向的物理连接,要传送的数据是沿着图中上下多次的虚线方向传送。
运输层向高层用户屏蔽了下面网络核心的细节(如网络拓扑、所采用的路由选择协议等),它使应用进程看见的就好像是两个运输层实体之间有一条端到端的逻辑通信通道。
根据应用需求的不同,因特网的运输层为本应用层提供了两种不同的运输协议,即面向连接的TCP和无连接的UDP,这两种协议就是本章所要讨论的主要内容。
5.2 运输层端口号复用与分用的概念
概述:
发送方的复用和接收方的分用
- 复用可以理解为多个进程重复使用一个协议进行应用报文的封装
- 分用可以理解为一个封装好的应用报文根据某协议进行解析成不同的进程应用报文
协议字段:6表示封装的是TCP数据报,17表示封装的是UDP用户数据报
TCP/IP体系的应用层常用协议所使用的运输层熟知端口号
举例说明TCP/IP协议中端口号的作用,以一次web请求为例:
用户PC、NDS服务器、web服务器通过交换机进行互联
DNS服务器:记录有某域名所对应的IP地址,在输入网页域名后,在hosts(本主机)中找不到网页对应的IP地址时,就要通过DNS服务器获取域名对应的IP地址。
Web服务器:某域名的服务器,在访问域名时IP数据报最终即使到达Web服务器,服务器进行响应。
如何通过DNS服务器获取域名对应的IP地址?
1、用户PC中的DNS客户端进程会发送一个DNS查询请求报文
需要使用运输层的UDP协议,封装成UDP用户数据报,然后找一个端口发出去:
(源端口采用短暂端口号)
2、DNS服务器收到该请求报文后,查看目的端口为53,于是将该DNS查询请求报文交付给端口53(也就是DNS服务端进程)处理。
3、DNS解析该请求报文的内容,按照要求查找目标IP地址。然后封装成UDP数据包再发回给PC
4、PC将DNS报文交给对应端口解析,就知道之前请求的域名的IP地址。现在可以向服务器发送HTTP请求报文了
5、Web服务器收到该请求报文后也是交给对应的端口,然后发送响应报文
6、客户端接收(过程不再赘述)
5.3 TCP和UDP的对比
首先,UDP和TCP是TCP/IP体系结构中的两个重要协议
在应用层的中的某些协议,需要使用运输层TCP提供的服务,而另一些协议需要UDP提供的服务
对比:
1、连接和无连接
UDP支持单播、多播和广播 (一对一、一对多、一对全)