【运输层】运输层的协议和端口

目录

1、运输层的两个主要协议

2、运输层的端口


        我们知道,IP 协议能够把源主机 A 发送出的分组,按照首部中的目的地址,送交到目的主机 B。

        那么,为什么还需要运输层呢?

        从 IP 层来说,通信的两端是两台主机。IP 数据报的首部明确地标志了这两台主机的 IP 地址。不过真正进行通信的实体是主机中的应用进程,因此严格地讲,两台主机进行通信就是两台主机中的应用进程互相通信。IP 协议虽然能把分组送到目的主机,但是这个分组还停留在主机的网络层而没有交付主机中的应用进程。

        所以,运输层的作用就是提供应用进程间的逻辑通信,如下图所示:

        所谓的逻辑通信,就是从应用层来看,只要把应用层报文交给下面的运输层,运输层就可以把这报文传送到对方的运输层(哪怕双方相距很远,例如几千公里),好像这种通信就是沿水平方向直接传送数据。但事实上这两个运输层之间并没有一条水平方向的物理连接。数据的传送是沿着图中的虚线方向(经过多个层次)传送的。所以 “逻辑通信” 的意思就是“好像是这样通信,但事实上并非真的这样通信”。

1、运输层的两个主要协议

        TCP/IP 运输层的两个主要协议都是互联网的正式标准,即:

  • 用户数据报协议UDP (User Datagram Protocol)
  • 传输控制协议TCP (Transmission Control Protocol)

        UDP 在传送数据之前不需要先建立连接。远地主机的运输层在收到 UDP 报文后,不需要给出任何确认。虽然 UDP 不提供可靠交付,但由于UDP非常简单,在某些情况下 UDP 是一种最有效的工作方式。 

        TCP 则提供面向连接的服务。在传送数据之前必须先建立连接,数据传送结束后要释放连接。TCP 不提供广播或多播服务。由于 TCP 要提供可靠的、面向连接的运输服务,因此不可避免地增加了许多的开销,如确认、流量控制、计时器以及连接管理等。这不仅使协议数据单元的首部增大很多,还要占用许多的处理机资源。

        这两种协议在协议栈中的位置如下图所示:

        下表,也给出了一些应用和应用层协议主要使用的运输层协议(UDP或TCP):

应用应用层协议运输层协议
名字转换DNS(域名系统)UDP
文件传送TFTP(简单文件传送协议)UDP
路由选择协议RIP (路由信息协议)UDP
IP地址配置DHCP(动态主机配置协议)UDP
网络管理SNMP(简单网络管理协议)UDP
远程文件服务器NFS (网络文件系统)UDP
IP电话专用协议UDP
流式多媒体通信专用协议UDP
多播IGMP(网际组管理协议)UDP
电子邮件SMTP(简单邮件传送协议)TCP
远程终端接入TELNET(远程终端协议)TCP
万维网HTTP(超文本传送协议)TCP
文件传送FTP(文件传送协议)TCP

2、运输层的端口

        为什么需要端口?

        我们都知道,运输层有复用和分用的功能。当应用层所有的应用进程都通过运输层再传送到 IP 层(网络层),这就是复用。当运输层从 IP 层收到发送给各应用进程的数据后,必须分别交付指明的各应用进程,这就是分用。显然,这时候给应用层的每个应用进程赋予一个非常明确的标志是至关重要的。

        由于进程的创建和撤销都是动态的,所以通信的一方几乎无法知道和识别对方机器上的进程。那么怎么样才能给每个应用进程一个明确的标志呢?

        解决这个问题的方法就是在应用层和运输层之间的界面上,设置一个特殊的抽象的“门”。应用层中的应用进程要通过运输层发送到互联网,必须要通过这个门。而别的主机上的应用进程要寻找本主机中的某个应用进程,也必须通过这个门。

        这样,我们就可以把应用层和运输层的界面上这些“门”,设为通信的抽象终点。这些抽象终点的正式名称就是协议端口(protocol port),一般就简称为端口(port)。每一个端口用一个称为端口号(portnumber)的正整数来标志。主机的操作系统提供了接口机制,使得进程能够通过这种机制找到所要找的端口。//端口的原理

        TCP/IP 的运输层用一个 16 位端口号来标志一个端口。在互联网不同计算机中,相同的端口号是没有关联的。16 位的端口号可允许有 65535 个不同的端口号,这个数目对一个计算机来说是足够用的。

        运输层的端口号分为两大类:

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

        服务器端使用的端口号一类分为熟知端口号(well-known port number)或全球通用端口号,数值为 0~1023,另一类叫作登记端口号,数值为 1024~49151,要使用这类端口号必须在 IANA 按照规定的手续登记,以防止重复。

        IANA 官方网址,点击这里。以下是一些常用的熟知端口号:

应用程序FTPTELNETSMTPDNSTFTPHTTPSNMPSNMP (trap)HTTPS
熟知端口号212325536980161162443

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

        数值为 49152~65535。由于这类端口号仅在客户进程运行时才动态选择,因此又叫作短暂端口号。这类端口号就是临时端口号,留给客户进程选择临时使用。当服务器进程收到客户进程的报文时,就知道了客户进程所使用的端口号。因而可以把数据发送给客户进程。通信结束后,刚才己使用过的客户端口号就被系统收回,以便给其他客户进程使用。

        至此,全文结束。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

swadian2008

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值