网络协议基础知识:SMTP协议和UDP协议

SMTP协议的命令和应答

从前面的通讯模型可以看出SMTP协议在发送SMTP和接收SMTP之间的会话是靠发送SMTP的SMTP命令和接收SMTP反馈的应答来完成的。在通讯链路建立后,发送SMTP发送MAIL命令指令邮件发送者,若接收SMTP此时可以接收邮件则作出OK的应答,然后发送SMTP继续发出RCPT命令以确认邮件是否收到,如果接收到就作出OK的应答,否则就发出拒绝接收应答,但这并不会对整个邮件操作造成影响。双方如此反复多次,直至邮件处理完毕。SMTP协议共包含10个SMTP命令,列表如下:

SMTP命令命令说明

HELLO<domain><CRLF>识别发送方到接收SMTP的一个HELLO命令

MAILFROM:<reverse-path><CRLF><reverse-path>为发送者地址。此命令告诉接收方一个新邮件发送的开始,并对所有的状态和缓冲区进行初始化。此命令开始一个邮件传输处理,最终完成将邮件数据传送到一个或多个邮箱中。

RCPTTO:<forward-path><CRLF><forward-path>标识各个邮件接收者的地址

DATA<CRLF>

接收SMTP将把其后的行为看作邮件数据去处理,以<CRLF>.<CRLF>标识数据的结尾。

REST<CRLF>退出/复位当前的邮件传输

NOOP<CRLF>要求接收SMTP仅做OK应答。(用于测试)

QUIT<CRLF>要求接收SMTP返回一个OK应答并关闭传输。

VRFY<string><CRLF>验证指定的邮箱是否存在,由于安全因素,服务器多禁止此命令。

EXPN<string><CRLF>验证给定的邮箱列表是否存在,扩充邮箱列表,也常禁止使用。

HELP<CRLF>查询服务器支持什么命令

注:<CRLF>为回车、换行,ASCII码分别为13、10(十进制)。(编程入门网)

SMTP协议的每一个命令都会返回一个应答码,应答码的每一个数字都是有特定含义的,如第一位数字为2时表示命令成功;为5表失败;3表没有完成。一些较复杂的邮件程序利用该特点,首先检查应答码的首数字,并根据其值来决定下一步的动作。下面将SMTP的应答码列表如下:

应答码说明

501参数格式错误

502命令不可实现

503错误的命令序列

504命令参数不可实现

211系统状态或系统帮助响应

214帮助信息

220<domain>服务就绪

221<domain>服务关闭

421<domain>服务未就绪,关闭传输信道

250要求的邮件操作完成

251用户非本地,将转发向<forward-path>

450要求的邮件操作未完成,邮箱不可用

550要求的邮件操作未完成,邮箱不可用

451放弃要求的操作;处理过程中出错

551用户非本地,请尝试<forward-path>

452系统存储不足,要求的操作未执行

552过量的存储分配,要求的操作未执行

553邮箱名不可用,要求的操作未执行

354开始邮件输入,以"."结束

554操作失败

UDP协议的几个基础特性

(1) UDP是一个无连接协议,传输数据之前源端和终端不建立连接,当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。在发送端,UDP传送数据的速度仅仅是受应用程序生成数据的速度、计算机的能力和传输带宽的限制;在接收端,UDP把每个消息段放在队列中,应用程序每次从队列中读一个消息段。

(2) 由于传输数据不建立连接,因此也就不需要维护连接状态,包括收发状态等,因此一台服务机可同时向多个客户机传输相同的消息。

(3) UDP信息包的标题很短,只有8个字节,相对于TCP的20个字节信息包的额外开销很小。

(4) 吞吐量不受拥挤控制算法的调节,只受应用软件生成数据的速率、传输带宽、源端和终端主机性能的限制。

时间: 2024-08-12 03:10:17

网络协议基础知识:SMTP协议和UDP协议的相关文章

网络协议基础知识 SMTP协议和UDP协议

SMTP协议的命令和应答 从前面的通讯模型可以看出SMTP协议在发送SMTP和接收SMTP之间的会话是靠发送SMTP的SMTP命令和接收SMTP反馈的应答来完成的.在通讯链路建立后,发送SMTP发送MAIL命令指令邮件发送者,若接收SMTP此时可以接收邮件则作出OK的应答,然后发送SMTP继续发出RCPT命令以确认邮件是否收到,如果接收到就作出OK的应答,否则就发出拒绝接收应答,但这并不会对整个邮件操作造成影响.双方如此反复多次,直至邮件处理完毕.SMTP协议共包含10个SMTP命令,列表如下:

Java的Socket网络编程基础知识入门教程_java

一.TCP/IP简介 TCP/IP协议族是互联网使用的协议,也可以用在独立的专用网络中. TCP/IP协议族包括了IP协议.TCP协议和UDP协议. IP协议使用IP地址来分发报文,但它是尽力而为的服务,报文可能丢失.乱序或者 重复发送.TCP和UDP协议在IP协议基础上增加了端口号,从而在两台主机的应用 程序间建立起透明的连接. 不同的是,TCP协议会对IP层的错误进行修复,它通过握手消息在主机间建立连接, 之后通过在消息中加入序列号来恢复消息中的错误.而UDP只是简单地扩展了IP协议, 使它

网络协议X档案之BOOTP协议、TFTP协议和DHCP协议

网络协议--BOOTP协议说明:BOOTP协议全称Bootstrap Protocol(自举协议),BOOTP协议是一个基于TCP/IP协议的协议,它可以让无盘站从一个中心服务器上获得IP地址,为局域网中的无盘工作站分配动态IP地址,并不需要每 个用户去设置静态IP地址.使用BOOTP协议的时候,一般包括Bootstrap Protocol Server(自举协议服务端)和Bootstrap Protocol Client(自举协议客户端)两部分.应用:该协议主要用于有无盘工作站的局域网中,客户

jmeter怎么能将http协议和socket协议一起用

问题描述 jmeter怎么能将http协议和socket协议一起用 唔,是这样的.最近领导给我的任务是用JMeter给我们的手游服务器端做压力测试,其中注册,登陆和验证都是http协议的,之后的一些类似创建角色的命令都是socket协议的,现在我要完成一个流程就是:注册---->用注册的账号登陆--->登陆后的返回值验证----->然后随机走各种socket命令,其中有一个是需要登陆后的返回值做验证的.现在http命令都弄好了,网上的教程虽然写的很基础但是也不是看不懂,可是socket那

秋式广告杀手技术分享:网络请求基础知识

最近园子里,关于.net门槛的文章风风火火,不过这类事情每过段时间就会出来一次,所以酱油都懒的打了. 当然个人也是有想法的,特别是这两天碰巧和一个三四年经验的java开发者呆在一起,对方说.net就是拉拉控件时,我还是很严厉的批评了对方,用自己比对方更具的丰富知识,重新引导对方对.net的看法. 不知道是谁在传播这种.net纯控件论,而且这么传播的这个"谁",一定是个新手,所以建议新手,就不要整天跑外面乱吹了,好好学知识去吧. 对于老手,在对新手进行知识传播时,特别是刚教授新学拉控件的

ssh协议和telnet协议 理解 小结

SSH简介 SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定:SSH 为建立在应用层和传输层基础上的安全协议.SSH 是目前较可靠,专为远程登录会话和其它网络服务提供安全性的协议.利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题.端口22. Telnet简介 Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式.它为用户提供了在本地计算机上完成远程主机工作的能力.在

网络营销基础知识及方法

中介交易 SEO诊断 淘宝客 云主机 技术大厅 为了帮助您学到一些基础的网络营销知识,也为了让您从网站赚到更多CASH,总结了一些有效的推广方法,供您参考(以本网站建设公司为例): 1. 利用好您的MSN,QQ和EMAIL签名:在您的MSN,QQ等即时通讯工具,以及电子邮件(包括自动回复)的签名栏留下您的个人推荐链接,这是最省力的一种推广方式.比如,您可以写: 高品质网站策划,网站建设,网站推广:http://www.xinluxian.com(记得换成您自己的个人推荐链接哦!) 中国200网址

网络布线基础知识

1.为什么不能用网络的调试来检验电缆的性能? 目前不少用户对所安装的双绞线不进行认证测试,而是在网络调试过程中进行检验,当网络可以连通时就认为所安装的电缆是合格的.这种做法不仅是错误的而且是十分危险的.因为网络调试时网络的流量很低,此时用户感觉不到有问题,但当网络流量很高时,就可能出现很难上网的情况.网络调试可以连通并不表示该电缆符合安装标准,也不表示该电缆在网络正常运行时可以准确无误地工作.另外,目前大部分用户安装的是5类双绞线,运行的网络是10Base-T,但是10Base-T可以运行并不代

Android分别使用HTTP协议和TCP协议实现上传文件

http://blog.csdn.net/furongkang/article/details/6838450 Android上传文件有两种方式,第一种是基于Http协议的HttpURLConnection,第二种是基于TCP协议的Socket. 这两种方式的区别是使用HttpURLConnection上传时内部有缓存机制,如果上传较大文件会导致内存溢出.如果用TCP协议Socket方式上传就会解决这种弊端. HTTP协议HttpURLConnection 1. 通过URL封装路径打开一个Htt