基于TCP或UDP的应用层协议有哪些?——Linux网络编程

参考博文01:https://blog.csdn.net/Wu000999/article/details/89293717
博文02 https://blog.csdn.net/u014082714/article/details/44994719
这个面试的时候面试官经常会问我,然后就总结了一下。

在这里插入图片描述
TCP/IP四层模型(数网传应):数据链路层(网络接口层)、网络层、传输层和应用层
OSI七层模型:物数网传会表应。

一、 基于TCP/UDP协议的应用层协议有哪些?

TCP/UDP都是传输层的协议 (上面是应用层,下面是网络层IP层)

1、基于TCP的应用层协议有:HTTP、FTP、SMTP、TELNET、SSH
协议全称默认端口
HTTP ( 用的最多)HyperText Transfer Protocol(超文本传输协议)80
FTPFile Transfer Protocol (文件传输协议)20用于传输数据,21用于传输控制信息
SMTPSimple Mail Transfer Protocol (简单邮件传输协议)25
TELNETTeletype over the Network (网络电传)23
SSHSecure Shell22
2、基于UDP的应用层协议:DNS、TFTP(简单文件传输协议)、SNMP:简单网络管理协议
协议全称默认端口
DNSDomain Name Service (域名服务)53
TFTPTrivial File Transfer Protocol (简单文件传输协议)69
SNMPSimple Network Management Protocol (简单网络管理协议)通过UDP端口161接收,只有Trap信息采用UDP端口162。
NTPNetwork Time Protocol (网络时间协议)123

二、应用层协议介绍

(博文02原文链接:https://blog.csdn.net/mellymengyan/article/details/51115521)

在这里插入图片描述
在TCP/IP模型中,应用层是最高层。应用层包括所有的高层协议,并且不断有新的协议加入。

TCP/IP参考模型中应用层和下层协议之间的关系如下:

应用层的许多协议都是基于(C/S client /server)方式的。

下面为我们就图片上的应用层协议来进行下简单的介绍:

基于TCP协议的都用C/S模式(客户端/服务器模式)

一:TELNET (远程登录) (C/S)(tcp)

*概述:
远程登录,它是Tnternet中用来进行远程访问的重要工具之一。远程登录功能允许用户与远程计算机进行动态交互,即用自己的键盘,鼠标等输入设备操纵远程计算机,运行远程计算机上的软件,在自己的显示器上了解运行情况,查看运行结果。

通信过程:
用户的终端实际上与本地的TELNET客户机程序进行通信,远程主机与远程TELNET服务器进行通信。然后通过TCP进行连接, 客户机与服务器之间采用NVT标准进行通信。

1:建立与服务器的TCP连接;
2:从键盘上接收用户输入的字符;
3:把用户输入的字符串变成标准格式并送给服务器;
4:从远程服务器接收输出的信息;
5:把该信息显示在用户的屏幕上。

二: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协议。

  • 39
    点赞
  • 151
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值