首页 > 编程知识 正文

传输层中tcp协议和udp协议的差异和应用领域,为什么有的应用层协议要使用TCP,而有的要使用UDP?

时间:2023-05-04 11:41:35 阅读:177908 作者:1449

参考博文01:https://blog.csdn.net/Wu 000999/article/details/89293717

02https://blog.csdn.net/u 014082714/article/details/44994719

这次面试的时候面试官经常问我,然后总结。

TCP/IP四层模型(数网传播)数据链路层)网络接口层)、网络层、传输层、APP传输层

OSI七层模型:基于物联网会议表。

一、基于TCP/UDP协议的APP应用层协议是什么? TCP/UDP都是传输层协议(上面是APP应用层,下面是网络层IP层)。

1、基于TCP的APP应用层协议是HTTP、FTP、SMTP、TELNET、 21传输控制信息SMTP sfer protocol (超文本传输协议) 80 FTP文件传输协议(http ),这是SSH协议全名的默认端口邮件传输协议) 25TELNETTeletype over the Network ) 23SSHSecure Shell222,基于UDP的APP应用层协议: DNS、 TFTP SNMP :简单网络管理协议全名默认端口dnsdomain name service 53 tftptrivialfiletransferprotocol 69 snmpsimplenetworkmanagementprotococol ol (网络时间协议(123 )二、APP应用层协议简介(博文02原文链接: https://blog.csdn.net/Melly mengyan/article/details/51155259 )

在TCP/IP模型中,APP应用层是顶层。 APP应用层包括所有高层协议,新协议层出不穷。

TCP/IP参考模型中APP应用层和下层协议的关系如下。

APP应用层的许多协议都基于c/s客户端/服务器方法。

让我简单介绍一下照片的APP应用层协议。

所有基于TCP协议的都使用C/S模式(客户/服务器模式)一) TELNET )远程登录) C/S ) TCP )

*概要:

远程登录。 是Tnet中用于远程访问的重要工具之一。 远程登录功能允许用户通过自己的键盘、鼠标等输入设备操作远程计算机,运行远程计算机上的软件,在自己的显示器上了解运行情况,查看运行结果。

通信流程:

用户终端实际上与本地TELNET客户端程序进行通信,远程主机与远程TELNET服务器进行通信。 然后用TCP连接,客户端和服务器之间用NVT规格进行通信。

1 )建立与服务器的TCP连接

2 )从键盘接收用户输入的文字

3 )将用户输入的字符串作为标准格式发送到服务器

4 )接收从远程服务器输出的信息

5 )在用户屏幕上显示该信息。

(2) FTP )文件传输协议(C/S ) TCP )的概要:

一种文件传输协议,用于将文件从一台计算机传输到另一台计算机,以确保传输的可靠性。

客户端发出文件传输请求,服务器接收请求并提供服务。 首先,通过在本地计算机上启动FTP客户端程序并与远程计算机建立连接,启动远程计算机上的服务器端FTP程序。 以这种方式,本地FTP程序成为客户,远程FTP程序成为服务器,并通过TCP在它们之间建立连接,端口号为21。

FTP协议的客户端和服务器之间需要两个用于控制数据传输的连接、用于控制数据传输的端口21以及用于数据传输的端口20。 数据连接主要用于数据传输,完成文件内容的传输。 控制连接主要用于传输FTP控制命令和服务器环回消息。

FTP的功能:

1 )可以从本地上传文件和从服务器下载文件

2 )能够传输各种类型的文件,例如文件、图像、视频等

3 :可以提供到本地计算机和远程计算机的目录操作。

4 )对文件进行改名删除等操作。

获取FTP的服务有输入用户名和登录密码的方法,也可以输入anonymous作为用户名,输入电子邮件地址作为登录密码。

可以使用命令和回答在FTP客户端和服务器之间进行交互。

FTP的控制和数据连接

三:SMTP (简单邮件传输协议)(TCP)(C/S)

概要:

SMTP协议有两个标准子集,一个是定义电子邮件信息格式的标准,另一个是传输邮件的标准。 在互联网上,电子邮件的传送依赖SMTP协议进行。 SMTP的主要任务是负责服务器之间的邮件传输,最大的特点是简单。 只规定了电子邮件在互联网上如何通过TCP协议在发送方和接收方之间传输。

工作方法:

根据客人

户/服务器方式进行的。发送人的主机为客户方,收件人的邮件服务器为服务方。在传送邮件的过程中,需要使用TCP协议进行连接(默认端口号为25)。发送主机先将邮件发送到本地SMTP服务器上,本地SMTP服务器与接收方的邮件服务器建立可靠的TCP连接,从而保证了邮件传输的可靠性。

注意:
接收方必须使用POP3协议才能取得自己邮箱中的邮件。

POP3协议的主要任务是实现用户计算机和邮件服务器的俩节,从邮件服务器的电子邮箱中读取邮件。
SNMP邮件传输过程

四:HTTP (超文本传输协议)(C/S)(TCP)

详细内容在我的上一个博客里面有详细的介绍:HTTP协议基本知识另见博客

五:DNS (域名解析系统)(UDP)

概述:
用域名系统来处理IP地址和主机名之间的转换, 在DNS中主机名即为域名。
DNS也是一个应用层协议,为了提供主机名到IP地址的转换服务,DNS是运行在UDP协议之上,使用53号端口。

DNS通常被其他应用层协议(HTTP, SMTP, FTP)所使用, 以便将用户提供的主机名解析为IP地址。
域名是一种分布式并具有层次结构的命名机制:

例如:www.sina.com.cn, 其中最高域名是cn, 表示这台主机在中国。 第二级域名是com, 表示这个主机属于公司机构; 接下来是sina表示这台主机属于新浪网, 最左边的是www,表示该主机是一台web服务器。人们可以很容易的就记住它的域名,而不用他的IP地址。

查询方法:

1:递归解析:
当收到请求时, 域名服务器应返回所要求的解析结果,不论该服务器是否有相关的信息。该服务器没有相关信息时, 那么就该向其他的服务器进行请求,直到获得结果或者错误信息,然后把结果返回给解析请求者。

2:重复解析:
接收到请求时, 域名服务器若有该域名的相关信息,则返回IP地址给解析请求者。若无该域名的相关消息,则该服务器不再进一步向其他域名服务器请求解析,而是返回一个可用的域名服务器的地址给解析请求者,让解析请求这自己去向该域名服务器作进一步的解析请求。

二者的区别在于:前者将域名解析的工作交给域名服务器完成, 而后者则将主要的工作交给请求域名服务的主机来完成。

六:SNMP (简单网络管理协议)(UDP)

概述:
SNMP:“简单网络管理协议”,用于网络管理的协议。SNMP用于网络设备的管理。SNMP的工作方式:管理员需要向设备获取数据,所以SNMP提供了“读”操作;管理员需要向设备执行设置操作,所以SNMP提供了“写”操作;设备需要在重要状况改变的时候,向管理员通报事件的发生,所以SNMP提供了“Trap”操作。
SNMP被设计为工作在TCP/IP协议族上。SNMP基于TCP/IP协议工作,对网络中支持SNMP协议的设备进行管理。所有支持SNMP协议的设备都提供SNMP这个统一界面,使得管理员可以使用统一的操作进行管理,而不必理会设备是什么类型、是哪个厂家生产的。

管理方式:
SNMP管理方式

Get:读取网络设备的状态信息
Set:远程配置设备参数
Trap:管理站及时获取设备的重要信息

七:TFTP (UDP)

概述:
TFTP协议全称为Trivial File Transfer Protocol。目标是在UDP之上上建立一个类似于FTP的但仅支持文件上传和下载功能的传输协议,所以它不包含FTP协议中的目录操作和用户权限等内容;

工作流程:
l server在端口为69的UDP上等待Client发出写文件请求包
l Client通过UDP发送符合TFTP请求格式的WRQ包给Server。从UDP包角度看,该UDP包的源端口由Client随意选择,而目标端口则是Slient的69。
l Server收到Client的这个请求包后,需发送ACK给Client。对于写请求包,Server发送的ACK包确认号为0。
l Client发送DATA数据给Server,Sver接收数据并写文件
l 当Client发送的DATA数据长度小于512字节时,Server认为这次WRQ请求完成

优点:
l 每个数据包大小固定,这样在内存分配处理的时候比较直接
l 实现简单
l 每个数据包都有确认机制,可以实现一定程度的可靠性

缺点:
l 传输效率不高
l 滑动窗口机制太简单,并且该窗口仅有一个包的大小
l 超时处理机制并不完善,RFC1350并没有给出详细的处理机制说明

三、TCP、UDP和HTTP关系

1、TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层。
在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。
在传输层中有TCP协议与UDP协议。
在应用层有FTP、HTTP、TELNET、SMTP、DNS等协议。
因此,HTTP本身就是一个协议,是从Web服务器传输超文本到本地浏览器的传送协议。

2、HTTP协议是建立在请求/响应模型上的。首先由客户建立一条与服务器的TCP链接,并发送一个请求到服务器,请求中包含请求方法、URI、协议版本以及相关的MIME样式的消息。服务器响应一个状态行,包含消息的协议版本、一个成功和失败码以及相关的MIME式样的消息。
HTTP/1.0为每一次HTTP的请求/响应建立一条新的TCP链接,因此一个包含HTML内容和图片的页面将需要建立多次的短期的TCP链接。一次TCP链接的建立将需要3次握手。
另外,为了获得适当的传输速度,则需要TCP花费额外的回路链接时间(RTT)。每一次链接的建立需要这种经常性的开销,而其并不带有实际有用的数据,只是保证链接的可靠性,因此HTTP/1.1提出了可持续链接的实现方法。HTTP/1.1将只建立一次TCP的链接而重复地使用它传输一系列的请求/响应消息,因此减少了链接建立的次数和经常性的链接开销。

3、结论:虽然HTTP本身是一个协议,但其最终还是基于TCP的。不过,目前,有人正在研究基于TCP+UDP混合的HTTP协议。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。