• 网络应用的基本原理


    网络应用的体系结构

    主要有三种,分别为:
    客户机/服务器结构(c/s结构)——web浏览器就是使用这种结构
    点对点结构(p2p结构),端系统直接通讯,一般文件共享类应用使用,优点是高度可伸缩,但是难于管理
    混合结构,Napster应用,文件传输使用p2p,搜索使用c/s结构

    网络应用进程通信

    同一主机下的进程通信由操作系统直接提供进程通信机制,不同的主机通过消息交换进行通信,即客户机进程发起通信,服务器进程等待通信请求。
    具体实现有操作系统提供关于网络编程的API——套接字socket,进程通过socket使用网络协议发送接收消息。

    寻址

    不同的主机进行通信,每个进程需要有唯一标识符。
    通信过程中使用IP地址寻址主机,主机上每个需要通信对进程分配一个端口号,使用IP地址+端口号可以表示网络上的进程,一般的http使用80端口,mail使用25端口,自己可设定使用除此以外的0~65535的端口。

    应用层协议

    网络应用遵循的协议,由公开协议和私有协议组成。其中公开协议由RFC定义,目的是允许互操作,私有协议为多数p2p文件共享应用使用。
    该协议规定了消息类型(请求回应的方法),语法格式(有那些字段,每个字段如何描述),字段的语义,规则(何时发送响应消息以及如何响应)等。

    网络应用需求与传输层服务

    网络应用对传输服务的需求

    可靠性:有些应用容忍丢失,比如视频电话,而有些则要求百分百可靠,比如文件传输。
    此外时间带宽安全性需求等,不同应用的需求见截图:
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RD2iuZuU-1663502254336)(https://img-*blog.csdnimg.cn/7803d8792fff4f4491f32d46fcb8b558.jpg)]

    Internet提供的传输服务

    TCP面相连接和UDP两种全双工服务,具体见截图:
    TCP/UDP服务
    TCP更稳定,不丢包,那为什么我们还需要udp呢?
    一来是不是所有情景我们都需要这么稳定的连接,二者是udp给了我们最基本,最自由的发包功能而没有任何束缚,无需握手,发就行了,就像现在微信那么普及,为什么我们还要使用邮箱是一个道理吧。

    传输层服务使用

    一些应用的服务使用情况如下图:
    服务使用情况

    总结

    网络进程通信方法是通过url+端口号确定网络中唯一进程进行通信,应用再通过操作系统提供的网络编程API——socket进行收发消息。

  • 相关阅读:
    教你把mov格式的视频转换mp4
    单例模式 (Singleton)
    产品经理-研发流程-敏捷开发-迭代-需求评审及产品规划(15)
    VSCode开启Pull Request更新代码分支可视化新篇章
    C#进阶——反射(Reflection)
    ESP8266-Arduino编程实例-MCP9808数字温度传感器驱动
    C++初阶 入门(2)
    人工智能在无人驾驶领域有哪些方面的运用和应用
    MySQL中各类型文件详解
    一篇文章让你理解TCP协议,搭建TCP flood攻击实验以及了解其防御原理
  • 原文地址:https://blog.csdn.net/weixin_46763552/article/details/126897290