应用层中一些零碎且易忘的知识点

  1. C/S方式和P2P方式
    • C/S:客户和服务器指通信中涉及的两个应用进程,服务器总是处于运行状态,并等待客户的服务请求。服务器具有固定端口号,运行服务器的主机也具有固定的IP地址。
    • P2P方式:没有固定的服务请求者和服务提供者,分布在网络边缘各端系统中的应用进程是对等的,称为对等方。对等方之间直接通信,每个对等方既是服务的请求者,又是服务的提供者。基于P2P的应用是服务分散性的,因为服务不是集中在少数几个服务器计算机中,而是分散在大量对等计算机中,这些计算机并不为服务提供商所拥有,而是为个人控制的桌面计算机和笔记本电脑,通常位于住宅、校园和办公室中
      • 目前在因特网上流行的P2P应用主要包括P2P文件共享、即时通信、P2P流媒体、分布式存储等
      • P2P方式最突出的特性之一就是它的可扩展性。因为系统每增加一个对等方,不仅增加的是服务的请求者,同时也增加了服务的提供者,系统性能不会因规模的增大而降低
      • P2P方式具有成本上的优势,因为它通常不需要庞大的服务器设置和服务器带宽。为降低成本,服务提供商对于将P2P方式用于应用的兴趣越来越大
  2. 动态主机配置协议DHCP
    • 功能:为计算机自动配置网络参数,使得计算机“即插即联网”
    • 网络参数包括:IP地址、子网掩码、默认网关、DNS服务器
    • DHCP的基本工作过程
      • 【寻找DHCP服务器】DHCP客户发送DISCOVER报文(源IP:0.0.0.0;目的IP:255.255.255.255):包括事务ID、DHCP客户端的MAC地址
      • 【提供IP地址租用】DHCP服务器发送OFFER报文(源IP:服务器的IP地址;目的IP:255.255.255.255):包括事务ID和配置信息(IP地址、子网掩码、地址租期、默认网关、DNS服务器)
      • 【接受IP地址租约】DHCP客户发送REQUEST报文(源IP:0.0.0.0;目的IP:255.255.255.255):包括事务ID、DHCP客户端的MAC地址、接受的租约中的IP地址、提供此租约的DHCP服务器端IP地址
      • 【确认IP地址租约】DHCP服务器发送ACK(源IP:服务器的IP地址;目的IP:255.255.255.255)
      • 【0.5倍租用期】DHCP客户发送REQUEST报文续约(源IP:租用的地址;目的IP:255.255.255.255)
        • DHCP服务器返回ACK:客户得到新的租用期
        • DHCP服务器返回NACK:客户立即停止使用租用的IP地址,重新发送DHCP发现报文
        • 不响应:等到下一步
      • 【0.875租用期】DHCP客户再次发送REQUEST报文续约:情况同上
      • 【租用期满】客户停止使用租用的IP地址,重新发送DHCP发现报文
      • 客户可随时解除地址租约:客户发送RELEASE报文(源IP:0.0.0.0;目的IP:255.255.255.255)
        请添加图片描述
        请添加图片描述
    • DHCP中继代理:给路由器配置DHCP服务器的IP地址并使之成为DHCP中继代理
  3. DNS域名系统
    • 因特网上的域名服务器:
      • 根域名服务器:最高层次的域名服务器,每个根域名服务器都知道所有的顶级域名服务器的域名和IP地址
      • 顶级域名服务器:负责管理在该顶级域名服务器注册的所有二级域名,其返回的应答可能是最后的结果,也可能是下一级权限域名服务器的IP地址
      • 权限域名服务器:负责管理某个区的域名。每个主机的域名都必须在某个权限域名服务器处注册登记。因此权限域名服务器知道其管辖的域名与IP地址的映射关系,也知道其下级域名服务器的地址(若有)
      • 本地域名服务器(默认域名服务器):本地域名服务器不属于上述的域名服务器等级结构。当一个主机发出DNS请求报文时,这个报文就首先被送往该主机的本地域名服务器。本地域名服务器起着代理的作用,会将该报文转发到上述的域名服务器的等级结构中。本地域名服务器一般与用户不超过几个路由器的距离,也有可能就在同一个局域网中,其IP地址需要直接配置在需要域名解析的主机中
        • 高速缓存:若不久前查询过相同的域名的IP地址,则本地域名服务器的高速缓存中应该有该域名对应的IP地址,直接把高速缓存结果返回给用户即可
    • 递归查询和迭代查询
      请添加图片描述
      请添加图片描述
  4. 文件传送协议
    • FTP的作用:是因特网上使用得最广泛的文件传送协议。FTP提供交互式的访问,允许客户指明文件的类型和格式(如指明是否使用ASCII码),并允许文件具有存取权限(如访问文件的用户必须经过授权,并输入有效口令)。FTP屏蔽了各计算机系统的细节,适合于在异构网络中任意计算机之间传送文件
    • FTP的基本工作原理
      • FTP服务器监听熟知端口号21,FTP客户随机选择一个临时端口号与其建立TCP连接。这条TCP连接用于FTP客户与服务器之间传送FTP的相关控制命令(即FTP客户与服务器之间的命令通道)
      • 【主动模式】当有数据要传输时,FTP客户通过命令通道告知FTP服务器来与自己的另一个临时端口号建立TCP连接,即建立数据通道。FTP服务器使用自己的熟知端口号20与其建立TCP连接,这条TCP连接用于FTP客户与服务器之间传送文件(即FTP客户与服务器之间的数据通道)
      • 【被动模式】当有数据要传输时,FTP客户通过命令通道告知FTP服务器开启某个协商好的临时端口(FTP服务器随机选择的临时端口号),被动等待来自FTP客户端的TCP连接以建立数据通道
        • 是否使用TCP 20端口建立数据连接与传输模式有关,主动方式使用TCP 20端口,被动方式由服务器和客户端自行协商决定
    • 控制连接和数据连接:控制连接在整个会话期间一直保持打开,用于传送FTP相关控制命令;数据连接用于文件传输,在每次文件传输时才建立,传输结束就关闭
    • FTP常见用途:在计算机之间传输文件,尤其是用于批量传输文件;让网站设计者将构成网站内容的大量文件批量上传到他们的Web服务器
  5. 电子邮件
    • 电子邮价系统的组成:
      • 用户代理:又称电子邮件客户端软件,是用户与电子邮件系统的接口
      • 邮件服务器:功能是发送和接收邮件,同时还要负责维护用户的邮箱
      • 协议:包括邮件发送协议(如SMTP)和邮件读取协议(如POP3,IMAP)
        请添加图片描述
    • 邮件发送协议:
      • SMTP:SMTP协议只能传送ASCII码文本数据,不能传送可执行文件或其他的二进制对象(如带有图片、音频或视频数据的多媒体邮件)
      • MIME:为解决SMTP传送非ASCII码文本的问题,提出了多用途因特网邮件扩展MIME(Multipurpose Internet Mail Extensions),MIME不只用于SMTP,也用于后来的同样面向ASCII字符的HTTP
        • MIME增加了5个新的邮件首部字段,提供了有关邮件主体的信息
        • 定义了许多邮件内容的格式,对多媒体电子邮件的表示方法进行了标准化
        • 定义了传送编码,可对任何内容格式进行转换,而不会被邮件系统改变
          请添加图片描述
    • 邮件读取协议:
      • POP3:用户只能以“下载并删除”方式或“下载并保留”方式从邮件服务器下载邮件到用户方计算机,不允许用户在邮件服务器上管理自己的邮件(如创建文件夹等)
      • IMAP:功能比POP3更强,用户在自己的计算机上就可以操纵邮件服务器中的邮箱,因此是一个联机协议
    • 基于万维网的电子邮件:通过浏览器登录邮件服务器万维网网站,工作模式与IMAP类似,不同的是用户计算机无需安装专门的用户代理程序,只需要使用通用的万维网浏览器
  6. 万维网
    • 作用:是运行在因特网上的一个分布式应用,万维网利用网页之间的超链接将不同网站的网页链接成一张逻辑上的信息网
    • 统一资源定位符URL:用于指明因特网上任何种类“资源”的位置,一般形式为:<协议>://<主机>:<端口>/<路径>
    • 超文本传输协议HTTP:
      • 作用:定义了浏览器(即万维网客户进程)怎样向万维网服务器请求万维网文档,以及万维网服务器怎样把万维网文档传送给浏览器
      • 非持续连接和持续连接
        • 非持续:HTTP/1.0采用非持续连接方式,每次浏览器请求一个文件都要与服务器建立TCP连接,当收到响应后就立即关闭连接。如下图,每请求一个文档就要有两倍RTT的开销,若一个网页上有很多引用对象(如图片等),那么请求每个对象都要花费2RTT
          请添加图片描述
        • 持续连接:HTTP/1.1采用持续连接方式,在该方式下,万维网服务器在发送响应后仍保持这条连接,并不局限于传送同一个页面上引用的对象,而是只要这些文档都在同一个服务器上就行
          • 流水线方式:更进一步提高了效率,浏览器在收到HTTP的响应报文之前就能够连续发送多个请求报文
      • HTTP的报文格式:HTTP面向文本,其报文中的每个字段都是一些ASCII码串,且每个字段长度不确定
    • Cookie
      • 作用:提供一种机制,使得万维网能够记住用户,而无需用户主动提供用户标识信息。即,Cookie是一种对无状态的HTTP进行状态化的技术
      • 流程:
        请添加图片描述
    • 万维网缓存(Web缓存)与代理服务器
      • Web缓存把最近的一些请求和响应暂存到本地磁盘上。当新请求到达时,若发现这个请求与暂时存放的请求相同,就返回暂存的响应,而不需要按照URL的地址再次去因特网访问该资源。Web缓存可位于中间系统(代理服务器)上和客户急上
        请添加图片描述
        请添加图片描述
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
简单的控制台程序 主要是为了学习之用 本人花时间编写。为了和大家分享和学习用,如有什么错误或认为本人哪里处理不当 请和我联系~~ 内容: main.cpp 就一个cpp文件 //1.首先需要连接邮件服务器 这里用socket 邮件服务器端口 25 //2.现在就是和服务器对话了 //3.结束 #include #include #include #include #include #include #include #include #include #include #include #include #pragma comment(lib,"WS2_32.lib") using namespace std; /*加附件的版本*/ //base64编码 string Base64Encode(LPCTSTR lpszSrc); //base64解码 string Base64Decode(LPCTSTR lpszSrc); //读文件数据 bool ReadFromFile(const char* pszFilename,string &filename); unsigned char* m_pbText; int main() { //1.首先需要连接邮件服务器 这里用socket 邮件服务器端口 25 WSADATA Wsa; //进行WINSOCK的设置 WSAStartup(0x0101,&Wsa); SOCKET s = socket(AF_INET,SOCK_STREAM,IPPROTO_IP); SOCKADDR_IN sin; LPHOSTENT lphost = gethostbyname("smtp.163.com");//这里是用网的邮件服务器 也可以修改 if(lphost) sin.sin_addr.s_addr = ((LPIN_ADDR)lphost->h_addr)->s_addr; else { printf("%s\n","获取地址失败"); return 1; } sin.sin_family = AF_INET; //注意邮件服务器的侦听端口 25 sin.sin_port = htons(IPPORT_SMTP); //连接服务器 if(connect(s,(LPSOCKADDR)&sin,sizeof(sin))==SOCKET_ERROR) { printf("%s\n","连接错误"); return 1; } printf("%s\n","连接成功"); //接收服务器初次回应 char buff[1024]; memset(buff,0,sizeof(buff)); recv(s,buff,sizeof(buff),0); printf("服务说:%s\n",buff); /////上面已经完成连接了///// string szLine="\r\n";//相当于你按下回车 //2.现在就是和服务器对话了 //问候服务器 string szHelo = "HELO smtp.163.com" + szLine; printf("我说:%s\n",szHelo.c_str()); send(s,szHelo.c_str(),szHelo.length(),0); memset(buff,0,sizeof(buff)); recv(s,buff,sizeof(buff),0); printf("服务说:%s\n",buff); //请求验证用户密码(需要编码) string szAL = "auth login" + szLine; //发送验证命令 printf("我说:%s\n",szAL.c_str()); send(s,szAL.c_str(),szAL.length(),0); memset(buff,0,sizeof(buff)); recv(s,buff,sizeof(buff),0); // printf("服务说:%s\n",buff); //服务器会回答说 可以输入帐号 //发送帐号 string szUser; .... 具体自己下载运行即可 装个VC6.0 即可
该压缩包包含三个文档,分别是SMTP协议详解,POP3协议详解,MIME规范详解,文档详细介绍了一个邮件发送和接收的过程分析,协议本身的包含的命令和工作过程,为开发邮件代理的客户端提供技术基础。如下是部分SMTP协议部分内容: 1.1 SMTP在邮件通信的位置 SMTP,即简单邮件传送协议,所对应RFC文档为RFC821。同http等多数应用层协议一样,它工作在C/S模式下,用来实现因特网上的邮件传送。SMTP在整个电子邮件通信所处的位置。可以看出,SMTP是用来将客户机上的邮件传送到服务器上。这里的客户机是指某次连接的发送方,服务器是指相应的接收方。在讲解发送邮件的整个通信过程前,先解释一下面几个术语。 1.2几个术语 1.2.1.邮件 邮件是一种消息的格式,由信封、首部和正文组成。 信封上最重要的是收信人的地址。邮件服务器用这个地址将邮件发送到收信人所在的邮件服务器上。 首部是由用户代理或邮件服务器添加的一些信息。包括Received、Message-ID、From、Data、Reply-To、X-Phone、X-Mailer、To和Subject等字段。 正文是是发送用户发给接收用户报文的内容。RFC 822 规定正文为NVT ASCII文字行。 更为详细的说明,请参考RFC821和RFC822等协议。 1.2.2.用户代理 用户代理UA(User Agent)是用户与电子邮件系统的交互接口,一般来说它就是我们PC机上的一个程序。Windows上常见的用户代理是Foxmail和Outlook Express。 用户代理提供一个好的用户界面,它提取用户在其界面填写的各项信息,生成一封符合SMTP等邮件标准的邮件,然后采用SMTP协议将邮件发送到发送端邮件服务器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值