TCP/UDP 数据报的传递
  • 更新时间:2024-09-28 19:17:59
  • 网站建设
  • 发布时间:1年前
  • 516

在TCP/IP的传输层,提供了两种数据传输服务,即TCP和UDP。在Internet网络架构中,传输层占有非常重要的地位,需要从两种传输服务的数据单元格式来分析。

首先,传输层中有一个非常重要的概念参考,即端口。1.端口

端口用于区分不同的应用程序进程或不同的连接号。在实际应用中,经常会同时打开多个IE浏览器窗口来浏览不同站点的网络资源,或者还有其他的网络应用窗口。在计算机系统中,每打开一个应用程序,就意味着至少打开了一个进程(什么是进程,请参考第11章问题4-1),打开多个IE窗口就是打开多个进程.那么,当应用层的各个进程产生的数据报被传输层服务时,就会遇到TCP或UDP同时为多个应用进程提供并发服务的问题,即多个应用进程可能需要通过相同的TCP 或UDP 协议。服务接入点传输数据,见图4-6。服务访问点传输数据

为了区分上层不同的应用进程或连接,当应用层协议与传输层协议交互时,传输层使用不同的端口号来描述上层应用在传输层的通信路径。因此,端口号对于上层应用程序来说是一个非常重要的识别标志。端口号分为两类:一类是知名端口,一类是动态端口。

1)知名端口

众所周知的端口(Well Known Ports): 来自。到1023。这些端口与某些服务紧密绑定,并指示该服务的应用层协议。该类端口采用全局分配,属于集中控制方式。经认可的中央机构根据用户服务需要进行统一分配,并向社会公布结果。比如80端口明确告知所有客户,应用层是HTTP协议通信,21端口是FTP协议通信等。如果有一个服务器提供web服务,希望全世界的用户都能访问它的资源,它必须打开80端口并在这个端口上等待,等待随时为客户提供HTTP服务。

2)动态端口

动态端口(Dynamic Ports) :从1024到65535。之所以称为动态端口,是因为它们一般不会固定分配给特定的应用程序。这类端口采用本地分配,是一种动态控制方式。一个进程如果需要传输层服务,首先要向本地操作系统申请一个端口,操作系统从可用的动态端口号中随机返回一个本地未使用的端口号。应用获取的端口号是绑定的。当进程关闭时,占用的端口号也被释放。

【示例】客户端启动Yahoo Messger应用时,客户端至少要启动两个会话进程,随机获取的两个动态端口分别连接到Yahoo服务器和账户验证中心。例如, 的进程连接是与Yahoo 的本地端口2192。服务器5050端口的连接,另一个过程是本地2196端口与雅虎账号验证中心433端口的连接。

2192和2196是客户端动态分配的端口号,433是雅虎账号验证中心的服务端口,5050是雅虎服务器的服务端口(这里服务器端口5050是动态端口号指定的,实际应用中可能会出现的情况有很多,比如QQ应用等)。

当客户端和在线好友通过YahooMessger聊天窗口进行文字聊天时,会在客户端建立一个新的会话进程,比如:的本地5101端口与对方4548端口的连接。如果想给离线的某位好友留言,消息会从本地2192端口和雅虎服务器端口5050建立的连接投递到雅虎服务器,再由对方投递给对方。雅虎服务器代理。

常见的端口号如表4-1所示。常用的周知端口号2. TCP/UDP协议

1)TCP协议

TCP(Transmission Control Protocol)传输控制协议是一种面向连接的、可靠传输的通信协议。

什么是面向连接,要在对等传输层之间传输数据,发送方和接收方首先要建立数据传输的逻辑通信链路(TCP的“三次握手”,见下文解释),之后数据传输完毕,需要断开这个连接。可靠传输的原因是TCP可以保证发送方和接收方之间数据传输的完整性(不丢失,不误传),即接收方每收到一个来自发送方相应层的TCP数据报,经过验证无误,必须向发件人发回确认信息,否则发件人将重新发送。这种数据传输方式就像我们日常生活中打电话一样。首先,我们需要建立通话连接,然后开始通话,最后断开连接。因此,这种服务方式的数据传输适用于一次传输大量数据且需要可靠传输的应用。

2) UDP协议

UDP(User Datagram Protocol)用户数据报协议,是一种面向非连接的、不可靠传输的简单通信协议。

UDP的无连接通信,即发送端UDP收到上层应用传递下来的数据报,添加UDP协议头信息后就直接向下交付给网络层。其不可靠传输,即接收端收到UDP数据报后,对校验没问题的数据报直接向上层提交报文数据,不需要向发送端回送确认;而校验有问题的数据报则直接丢掉。因丢掉的数据报不需要重传,故无法保证传送数据的完整性.这种数据传输方式就如同我们日常生活中通过邮局邮递普通信件一样,发信方将信件投人某邮递信筒即可,不用关心信件是否能送到;收信方收到信件后也不裕要向发信方确认。

这种服务方式的数据传输适合一次传输小量、可靠性要求不高的应用中。

如图4-7所示,应用层要求传输层提供可靠传输服务的有HTTP, FTP, Telnet和SMTP等,它们都需要高度的可靠性和完整性。
传输服务

而TFTP以及SNMP在两端传输的数据均是很简单的数据,如网络设备配置信息或网络管理信息,通过UDP能达到基本的数据传输需求。还有像QQ等即时通信工具,在网络通信良好的情况下,语音数据均优先使用UDP进行传输。因为使用UDP可减少信道的额外开销,不需要建立连接、维持连接,更不需要在端到端之间传递确认消息;UDP协议头本身比TCP小很多,也减少了信道占用带宽,提高了信道的数据传输速率。

我们专注高端建站,小程序开发、软件系统定制开发、BUG修复、物联网开发、各类API接口对接开发等。十余年开发经验,每一个项目承诺做到满意为止,多一次对比,一定让您多一份收获!

本文章出于推来客官网,转载请表明原文地址:https://www.tlkjt.com/web/12640.html
推荐文章

在线客服

扫码联系客服

3985758

回到顶部