网络编程 软件开发架构,互联网协议

网络开发架构

C/S架构:
  Client: 客户端
  Server: 服务端

  比如: 微信客户端、QQ客户端等...

  优点:
    - 软件的使用稳定
    - 节省网络资源

  缺点:
    - 安装麻烦,用户体验差
    - 软件的每一次更新,用户都需要重新下载或更新版本

B/S架构:
  Browser(本质上也是一个客户端): 浏览器
  Server: 服务端

  比如: 在浏览器上输入一个 网址

  优点:
    - 软件的使用方便
    - 无需跟着软件的更新去下载

  缺点:
    - 如果网络不稳定,软件的使用就不稳定

# 比较流行: B/S架构,用户体验高。

客户端与服务端:
  服务端: 24小时不间断提供服务。
  客户端: 客户想要找服务时,就去访问服务端。

之后的学习路径:

- 学习网络编程, 并发编程, 数据库 ----》 可以开发一套 C/S架构的软件。
- 学习前端(html/css/js), web框架(Django) ----》 可以开发一套 B/S架构的软件。

计算机与计算机之间通信:
- 语言是人与人之间沟通的介质!

- 协议是计算机与计算机之间沟通介质!

网络编程
- 所有最新最牛的技术,都源自于军事:
  - 可以远程实时获取数据,实现远程通信

- 如何实现远程通信: ----》 物理连接介质
  - 电话: ---> 电话线
  - 纯屏电脑(大屁股电脑): ---> 网线
  - 笔记本电脑: ---> 网线、网卡

- 电脑与电脑通信: ----> “互联网协议”
  让所有产商的电脑都遵循这套协议,实现所有电脑之间无障碍通信。
  “互联网协议” 是计算机界的 中文、英文。

互联网协议(OSI七层协议):

- OSI七层协议:
- 应用层
- 会话层
- 表示层
- 传输层
- 网络层
- 数据链路层
- 物理层

- 此时需要关注的是5层: 由下到上记

- 应用层
- 传输层
- 网络层
- 数据链路层
- 物理层

1)物理层:
- 获取到对象计算机的电信号数据
0101010111
010: 你
1011: 爱
101: 我

问题: 无法获取具体数据内容,将电信号数据扔给数据链路层

2)数据链路层:

- 我要知道数据是什么?
- 我要知道数据是给谁的?

- “以太网协议”:
  1)规定一套分组的方式:
    获取电信号真实数据。

    电信号是一个数据包。

    head: 18个字节
      - 6: 发送者
      - 6: 接收者
      - 6: 数据类型

    data:
      - 电信号具体的数据

  2) 每一台电脑必须要有一个网卡(电脑插入网线的地方):
    - 每一块网卡都会有一串世界上独一无二的数字:
      - 12位16进制的数字,称之为 "mac地址" :
        - 前6位: 产商号
        - 后6位: 流水号

    mac地址作用(*******):
      标识全世界上一台独一无二的计算机。

“以太网协议”:
  - 工作的方式:
    - 单播:
    - 广播:

    缺点:
      - 广播风暴
      - 只能在局域网内实现通信, 无法跨局域实现通信

总结:
  - mac地址: 标识全世界上一台独一无二的计算机。

3) 网络层:

  - 实现全世界某一台计算之间的通信

  - ip地址(ip协议):
    - 点分十进制的数字组成
      - 180.101.49.11
      - 最小范围: 0.0.0.0
      - 最小范围: 255.255.255.255

    - ip的版本: IPV4地址已用完,IPV6是IPV4的扩展
      - IPV4:
      - IPV6:

    - ip的作用:(*******)
      用于表示全世界某一台计算机的位置,局域网的位置。
  总结:
    ip地址 + mac地址:(*******)
      标识全世界某一个局域网内的,某一台计算机。

4) 传输层:

tcp与udp都是基于 “端口” 实现通信的。
  - TCP协议:
  - UDP协议:

主要是软件与软件之间进行通信。

- port端口:
  用于标识计算机中某一个独一无二软件。

总结:
  mac地址 + ip地址 + port端口:
  标识的是全世界范围内某一个局域网内某一台计算机上的某一个软件。

5) 应用层:

- 大佬们定制好的一套牛X的协议
  - http协议
  - ftp协议

- 自定义的协议

原文地址:https://www.cnblogs.com/ludingchao/p/11983454.html

时间: 2024-08-29 13:42:22

网络编程 软件开发架构,互联网协议的相关文章

网络编程,osi七层协议

网络编程 软件开发架构 1 c/s架构 c 客户端 s 服务端 2 b/s架构 b 浏览器 s 服务器 c/s架构就比如我们现在手机上的软件,大多数都是c/s架构 也有一些已经是b/s架构,比如微信,中的小程序,支付宝的第三方的功能. 什么是服务端,和客户端 服务端就是,24小时不间断的提供服务 客户端就是,任意时间都可以去找到服务端,寻求服务 网络编程的发展史 往往一个技术的发展都是来源与军事 网络通信具备的条件 1 物理传输介质(电话线,网线,网卡) 2 一套公共的协议(OSI协议,比如,两

网络编程-SOCKET开发

计算机基础知识 计算机分三层:应用程序. 操作系统.硬件.硬件是用来干活的,应用程序想要实现一定的功能就要调用硬件工作.但是如果每一个软件开发,都要写怎么操作硬件的代码,就会有大量重复的代码,而且十分复杂.因此,操作系统就出现了,操作系统相当于提供了一套接口,软件的功能通过操作系统,操作系统再让硬件工作.应用程序无法直接让硬件工作 只能间接地通过操作系统使硬件工作实现特定的功能. 作为应用开发程序员,我们开发的软件都是应用软件,而应用软件必须运行于操作系统之上,操作系统则运行于硬件之上, 应用软

第六章|网络编程-socket开发

1.计算机基础 作为应用开发程序员,我们开发的软件都是应用软件,而应用软件必须运行于操作系统之上,操作系统则运行于硬件之上,应用软件是无法直接操作硬件的,应用软件对硬件的操作必须调用操作系统的接口,由操作系统操控硬件. 比如客户端软件想要基于网络发送一条消息给服务端软件,流程是: 1.客户端软件产生数据,存放于客户端软件的内存中,然后调用接口将自己内存中的数据发送/拷贝给操作系统内存 2.客户端操作系统收到数据后,按照客户端软件指定的规则(即协议).调用网卡发送数据 3.网络传输数据 4.服务端

Android网络编程系列 一 TCP/IP协议族

在学习和使用Android网路编程时,我们接触的仅仅是上层协议和接口如Apache的httpclient或者Android自带的httpURlconnection等等.对于这些接口的底层实现我们也有必要进一步的了解,这就要我们了解网络通信层了,提到网络通信层不得不说起ISO-OSI的七层协议经典架构,如图所示: 上图的左边部分就是osi架构模型了, ISO/OSI模型,即开放式通信系统互联参考模型(Open System Interconnection Reference Model),是国际标

Android网络编程(一)HTTP协议原理

相关文章 Android网络编程(一)HTTP协议原理 Android网络编程(二)HttpClient与HttpURLConnection Android网络编程(三)Volley使用方法全解析 Android网络编程(四)从源代码解析volley Android网络编程(五)OkHttp2.x使用方法全解析 Android网络编程(六)OkHttp3使用方法全解析 Android网络编程(七)源代码解析OkHttp前篇[请求网络] Android网络编程(八)源代码解析OkHttp后篇[复用

Linux程序设计学习笔记----Socket网络编程基础之TCP/IP协议簇

转载请注明出处: ,谢谢! 内容提要 本节主要学习网络通信基础,主要涉及的内容是: TCP/IP协议簇基础:两个模型 IPv4协议基础:IP地址分类与表示,子网掩码等 IP地址转换:点分十进制\二进制 TCP/IP协议簇基础 OSI模型 我们知道计算机网络之中,有各种各样的设备,那么如何实现这些设备的通信呢? 显然是通过标准的通讯协议,但是,整个网络连接的过程相当复杂,包括硬件.软件数据封包与应用程序的互相链接等等,如果想要写一支将联网全部功能都串连在一块的程序,那么当某个小环节出现问题时,整只

学java编程软件开发,非计算机专业是否能学

近几年互联网的发展越来越好,在国外,java程序员已经成为高薪以及稳定职业的代表,虽然国内的有些程序员很苦逼,但是那只是少数,按照国外的大方向来看,程序员还是一个很吃香的职业.根据编程语言的流行程度,java编程语言排名现在基本是在编程语言排行榜前几位,既然这么多人选择了java编程软件开发,许多非计算机专业的零基础学员关心自己到底能学好java开发呢?今天动力节点小编就来为大家解答这个疑问. 从出发点方面来归纳共分两种: 一.打算从事计算机行业的人,目的是能让自己有个好工作.现在就业形势严峻,

软件开发架构、网络基础知识、osi七层模型

一.软件开发的架构 涉及到两个程序之间通讯的应用大致可以分为两种: 第一种是应用类:qq.微信.网盘.优酷这一类是属于需要安装的桌面应用 第二种是web类:比如百度.知乎.博客园等使用浏览器访问就可以直接使用的应用 这些应用的本质其实都是两个程序之间的通讯.而这两个分类又对应了两个软件开发的架构 C/S架构: C/S即:Client与Server ,中文意思:客户端与服务器端架构,这种架构也是从用户层面(也可以是物理层面)来划分的. 这里的客户端一般泛指客户端应用程序EXE,程序需要先安装后,才

练习题|网络编程-socket开发

1.什么是C/S架构? C指的是client(客户端软件),S指的是Server(服务端软件),C/S架构的软件,实现服务端软件与客户端软件基于网络通信. 2.互联网协议是什么?分别介绍五层协议中每一层的功能? 互联网协议就是计算机界通用的语言:互联网协议分为osi七层或tcp/ip五层或tcp/ip四层: 物理层功能:主要是基于电器特性发送高低电压(电信号),高电压对应数字1,低电压对应数字0. 数据链路层的功能:定义了电信号的分组方式按照以太网协议:一组电信号构成一个数据包,叫做一组数据'帧