传输层协议和应用层协议之间的关系

TCP/IP协议中的应用层协议很多,传输层就两个协议,如何使用两个传输层协议标识应用层协议呢?

用传输层协议加一个端口号来标识一个应用层协议。如图1所示,图中标明了传输层协议和应用层协议之间的关系。

传输层协议和应用层协议之间的关系_应用层

图1 传输层协议和应用层协议之间的关系

    DNS同时占用UDP和TCP端口53是公认的,通过抓包分析,几乎所有的情况都在使用UDP,说明DNS主要还是使用UDP, DNS在进行区传送的情况下会使用TCP协议(区传送是指一个区域内主DNS服务器和辅助DNS服务器之间建立通信连接并进行数据传输的过程),这个存在疑问?

下面是一些常见的应用层协议和传输层协议之间的关系。

  • HTTP默认使用TCP的80端口。
  • FTP默认使用TCP的21端口。
  • SMTP默认使用TCP的25端口。
  • POP3默认使用TCP的110端口。
  • HTTPS默认使用TCP的443端口。
  • DNS使用TCP/UDP的53端口。
  • telnet使用TCP的23端口。
  • RDP远程桌面协议默认使用TCP的3389端口。

以上列出的都是默认端口,当然也可以更改应用层协议使用的端口。如果不使用默认端口,客户端访问服务器时需要指明所使用的端口。比如www.91xueit.com网站指定HTTP协议使用808端口,访问该网站时就需要指明使用的端口,http://www.1.com:808,冒号后面的808指明HTTP协议使用端口808。如图2所示,远程桌面协议(RDP)没有使用默认端口,冒号后面的9090指定使用端口9090。

传输层协议和应用层协议之间的关系_客户端_02

图2 为远程桌面协议指定使用的端口

如图3所示,一台服务器同时运行了Web服务、SMTP服务和POP3服务,Web服务一启动就用TCP的80端口侦听客户端请求,SMTP服务一启动就用TCP的25端口侦听客户端请求,POP3服务一启动就用TCP的110端口侦听客户端请求。现在网络中的A计算机、B计算机和C计算机分别打算访问端口服务器的Web服务、SMTP服务和POP3服务。发送3个数据包①②③,这3个数据包的目标端口分别是80、25和110,服务器收到这3个数据包,就根据目标端口将数据包提交给不同的服务进行处理。

现在大家就会明白,数据包的目标IP地址用来定位网络中的某台服务器,目标端口用来定位服务器上的某个服务。


传输层协议和应用层协议之间的关系_应用层_03

图3 应用层协议和传输层协议之间的关系

上图给大家展示了A、B、C计算机访问服务器的数据包,有目标端口和源端口,源端口是计算机临时为客户端程序分配的,服务器向A、B、C计算机发送数据包时,源端口就会变成目标端口。

如图4所示,A计算机打开谷歌浏览器,一个窗口访问www.baidu.com网站,另一个窗口访edu.51cto.com网页,这就需要建立两个TCP连接。A计算机会给每个窗口临时分配一个客户端端口(要求本地唯一),这样从51CTO学院返回的数据包的目标端口是13456,从百度网站返回的数据包的目标端口是12928,这样A计算机就知道这些数据包来自哪个网站,应给哪一个窗口。

传输层协议和应用层协议之间的关系_客户端_04

图4 源端口的作用

在传输层使用16位二进制标识一个端口,端口号的取值范围是0~65535,这个数目对一台计算机来说足够用了。

端口号分为如下两大类。

(1)服务器端使用的端口号。

服务器端使用的端口号在这里又分为两类,最重要的一类叫作熟知端口号(well-known port number)或系统端口号,取值范围为0~1023。这些数值可从网址www.iana.org查到。IANA把这些端口号指派给了TCP/IP最重要的一些应用程序,让所有的用户都知道。下面给出一些常用的熟知端口号,如图5所示。

传输层协议和应用层协议之间的关系_应用层_05

图5熟知端口号

另一类叫作登记端口号,取值范围为1024~49151。这类端口号由没有熟知端口号的应用程序使用。要使用这类端口号,必须在IANA按照规定的手续登记,以防止重复。

(2)客户端使用的端口号。

当打开浏览器访问网站,或登录QQ等客户端软件和服务器建立连接时,计算机会为客户端软件分配临时端口,这就是客户端端口,取值范围为49152~65535。由于这类端口号仅在客户进程运行时才动态选择,因此又叫作临时(短暂)端口号。这类端口号留给客户进程暂时使用。当服务器进程收到客户进程的报文时,就知道了客户进程所使用的端口号,因而可以把数据发送给客户进程。通信结束后,刚才已使用过的客户端口号就不复存在。这个端口号就可以供其他客户进程以后使用。

此文章来自于《华为 HCIA-Datacom认证(2021新版HCIA教材)》

京东购买本书

https://item.jd.com/13706744.html

学习计算机网络华为网络工程师 华三网络工程师课程中有问题联系韩老师

韩立刚老师wx hanligangdongqing

韩利辉老师wx 13073172070

华为 HCIA-Datacom认证(2021新版HCIA教材)课程链接 https://edu.51cto.com/course/28956.html

传输层协议和应用层协议之间的关系_应用层_06

韩老师招收正式学生、门徒级套餐

https://edu.51cto.com/topic/819.html