• 网络应用是网络存在的理由,如果不是网络应用间通信的需求,也不会有计算机网络。
  • 应用进程仅在端系统上部署,所以网络应用的部署与开发很快
  • 同时,网络的核心仅需完成一个最低限度的通信要求即可。
  • 这样让网络的核心设计简单,稳定,且易用。

应用层原理:

  • 进程间通信的模型:
    • C/S
    • P2P —- 自拓展性好,解决了C/S资源都在服务器的缺点。缺点是管理难。
  • 进程与计算机网络通过socket API进行交互。
    • TCP socket是一个四元组{sIP:SPort,dIP:dPort,stat,...},通过调用API,os返回一个描述符,用来表示这种四元组的关系。
    • UDP socket保存着一个二元组{sIP:SPort},来描述本主机上的一个应用进程。 在发送报文时,需要指明对方的{dIP,dPort}
  • 不同计算机不同的表示与寻址问题:通过**IP:Port**来表示一台特定计算机的特定进程。
  • 应用层协议规定了应用进程如何相互传递报文:
    • 交换的报文类型:请求报文和响应报文。
    • 报文类型的语法:如报文中的各个字段及这些字段是如何描述的。
    • 字段的格式:字段的语义,即这些字段中的信息的含义。
    • 时序:确定一个进程何时以及如何发送报文,对报文进行响应的规则。
  • Internet提供的传输服务:根据应用是否需要可靠的,吞吐量的要求,速度的要求,与安全性的要求。选择合适的传输服务。
    • TCP:
      • 面向连接的;
      • 可靠的;
      • 流量/拥塞控制;
      • 通信代价大。
    • UDP
      • 速度快;
      • 实现简单;

        并没有提供安全性的选项,需要的话需要添加SSL(secure sockets layor)

TODOList

  • Web and HTTP
  • Email and SMTP
  • FTP
  • DNS
  • CDN
  • TCP socket
  • [ ] UDP socket

    Q&A

    为什么要提供UDP?

    UDP存在的必要性

  • 能够区分不同的进程,而IP服务不能

    • 在IP提供的主机到主机端到端功能的基础上,区分了主机的应用进程
  • 无需建立连接,省去了建立连接时间,适合事务性的应用
  • 不做可靠性的工作,例如检错重发。适合那些对实时性要求比较高而对正确性要求不高的应用。
  • 因为为了实现可靠性(准确性、保序等),必须付出时间代价(检错重发)。没有拥塞控制和流量控制,应用能够按照设定的速度发送数据。而在TCP上面的应用,应用发送数据的速度和主机向网络发送的实际速度是不一致的,因为有流量控制和拥塞控制。