• 网络应用的基本原理


    网络应用的体系结构

    主要有三种,分别为:
    客户机/服务器结构(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进行收发消息。

  • 相关阅读:
    在 macOS 上管理 Node版本
    【JavaScript复习十八】预解析
    Smartbi电子表格故事之高效营销活动后的自助数据分析
    【Pycharm配置】在Pycharm中配置Jupyter环境
    mysql面试题34:Hash索引和B+树区别是什么?在设计索引怎么选择?
    高效管理大型项目:Yarn 在复杂依赖安装中的实践与技巧
    LeetCode50天刷题计划(Day 21—— 外观数列、组合总和(11.50-12.30;12.30-14.20)
    WebPack-打包工具
    JavaScript -- 正则表达式及示例代码介绍
    计算机毕业设计之java+ssm校园视频监控系统
  • 原文地址:https://blog.csdn.net/weixin_46763552/article/details/126897290