zoukankan      html  css  js  c++  java
  • 计算机网络原理(二):网络应用

    网络应用

    计算机网络应用体系结构

    客户/服务器(c/s)结构网络应用

    最典型、最基本的网络应用。
    客户端发送请求,服务器响应请求。

    纯P2P结构网络应用

    端对端的应用,每个对等端同时扮演客户端和服务器的角色。

    混合结构网络应用

    以上两种结构的混合态。


    网络应用通信基本原理

    网络应用的本质是运行在不同的主机上(当然也可运行在同一主机上)的应用之间的通信。
    进程之间通信并非是高层与高层之间直接通信,而是层层封装,最终形成比特流在物理链路上进行传输。到达目的端的相应层之后,再拆分开来,取出每一层对应的头部信息。
    两个应用进程看起来就像在直接通信一样,其实并非如此,而是逻辑上可以这样抽象地看待,所以也称为逻辑通信。


    域名系统

    为服务器主机ip地址起的一个更容易读懂和记忆的别名。
    域名解析就是将这个别名映射为真实的ip地址的过程,实现域名解析需要域名服务器。

    层次化域名空间

    树形结构

    域名服务商

    一个服务器所负责管辖的(或有权限的)范围叫做区。每个区设置相应的权威域名服务器,用来保存该区中所有的主机域名到ip地址的映射。
    每台主机在进行网络配置时,都会配置一个域名服务器作为默认域名服务器,这个域名服务器被称为本地域名服务器。

    根据域名解析过程中的作用和保存的域名信息,可以将域名服务器分为4类:

    根域名服务器:最重要的域名服务器。全球13个,知道所有的顶级域名服务器的域名和ip地址,当本地域名服务器无法解析地址,首先请求根域名服务器。
    顶级域名服务器:对应域名最后一个名字,对一个行业的命名,如com、org等,或对一个区域的命名,如cn、us等。
    权威域名服务器:负责一个区的域名服务器,任何一个拥有域名的的主机,其域名和ip信息都保存在所在网络的权威域名服务器上。
    中间域名服务器:不属于前三者。比如www.abc.xyz.com,则com是顶级域名服务器,中间域名服务器xyz.com,权威域名服务器abc.xyz.com。

    域名解析过程

    递归解析和迭代解析:
    提供递归解析的域名服务器,会进行层层递归查询,将最终的结果返回给查询主机或服务器。
    提供迭代解析的域名服务器,则会将下一步需要查询的域名服务器信息返回给查询主机和服务器。

    通常本地域名服务器都提供递归查询服务。
    根域名服务器通常只提供迭代查询服务。

    为了缓解根域名服务器的压力,通常通过机制来达到:

    • 各域名服务器将每次的结果缓存起来,下次查询到相同的域名时候直接从本机取。
    • 本地域名服务器中存储顶级域名服务器的信息。

    万维网应用

    world wide web.
    使用超文本传输协议(http)进行数据交互。

    Http

    概述

    web应用的应用层协议,定义web服务器与客户端如何进行交互。

    Http连接

    http基于传输层的Tcp传输报文。在发送请求之前需要建立tcp连接。

    • 非持久连接
    • 并行连接
    • 持久连接
    HTTP报文

    由起始行、首部行、空白行、实体主题组成。
    可分为请求报文和响应报文两类。

    解决Http无状态的问题。
    cookie技术包括下面4部分内容:

    1. 响应头的set-cookie字段。
    2. 客户端本地存储cookie文件。
    3. 再次请求时会发送存储的cookie头行。
    4. 服务器根据cookie的id维护用户数据。

    ### Internet电子邮件

    电子邮件系统结构

    IMG_20190430_142622.jpg

    邮件的发送与接收过程:

    1. 用户A首先利用用户代理撰写邮件,包括填写收件人邮箱地址等,然后基于SMTP将邮件发送到其注册的邮件服务器A的外出邮件队列中,等待邮件服务器发送;
    2. 邮件服务器A从队列中取出用户A的邮件,基于SMTP发送给邮件服务器B;
    3. 邮件服务器B将邮件存放到用户B的邮箱中;
    4. 在某个时刻,用户B利用用户代理连接邮件服务器B上运行的邮件读取服务,基于邮件读取协议(POP、IMAP),将其邮箱中的邮件传输到本地,或者对邮箱中的邮件进行阅读、移动等操作。

      用户代理指的是客户端软件

    SMTP

    电子邮件中核心应用层协议,实现邮件服务器之间或客户端到邮件服务器之间的邮件传输。
    熟知端口号25。

    电子邮件格式与MIME

    MIME是SMTP的扩展,实现了将非7位ASCII码转换成7位ASCII码文本内容的标准,然后再利用SMTP进行传输。

    邮件读取协议

    POP3、IMAP、HTTP,其中HTTP被用作web mail系统的邮件读取协议。

    • POP3
      最简单的邮件读取协议。熟知端口110。明文传输。
      下载到客户端本地查看。
    • IMAP:
      对服务器远程操作。
    • HTTP
      客户端和邮件服务器之间的交互无论是发送还是接收邮件都是http协议。

    FTP

    文件传送协议。
    使用两个并行的tcp连接,一个是控制连接(熟知端口21),一个是数据连接(熟知端口21)。

    p2p应用

    优势:每个对等端既是客户端(上传者)又是服务端(下载端),随着对等端的增加几乎不会影响网络性能,而相对的c/s结构的性能瓶颈在于服务器的带宽。

    socket编程

    socket套接字:应用层调用传输层的接口。

    IMG_20190430_145707.jpg

    IMG_20190430_145814.jpg

  • 相关阅读:
    二阶段项目所遇问题 加载分页信息并且加入删除摁钮 限制权限可见
    用kryonet时kryo报buffer underflow错误
    《深入理解Java虚拟机》读书笔记七
    《深入理解Java虚拟机》读书笔记六
    《深入理解Java虚拟机》读书笔记五
    《深入理解Java虚拟机》读书笔记四
    《深入理解Java虚拟机》读书笔记三
    《深入理解Java虚拟机》读书笔记二
    《深入理解Java虚拟机》读书笔记一
    《实战Java高并发程序设计》读书笔记六
  • 原文地址:https://www.cnblogs.com/iisme/p/10796040.html
Copyright © 2011-2022 走看看