首页 > 编程语言 >计算机网络基础与网络编程基础

计算机网络基础与网络编程基础

时间:2022-11-15 19:01:59浏览次数:55  
标签:架构 计算机 七层 编程 基础 网络 计算机网络 服务端 客户端

目录

计算机网络基础

软件开发架构

  1. 1.C\S架构
    Client:客户端(可以由提供服务端高度定制客户端)
    Server:服务端(提供服务的程序)
  2. 优势:不同公司客户端由不同公司独立开发 可以高度定制客户端功能
  3. 劣势需要下载

image

规定了程序的请求逻辑、功能分块


        """
        我们使用计算机下载下来的一个个app本质是各大互联网公司的客户端软件
        通过这写客户端软件我们就可以体验到各个互联网公式给我们提供的服务
        eg:
        	下在淘宝客户端 打开 体验淘宝服务端提供的购物服务
        	下载抖音客户端 打开 体验抖音服务端提供的视频服务
        ps:一般情况下客户端与服务端交互需要互联网 但是有些不需要(因为服务端与客户端都在一台计算机上)
        """
  1. B\S架构

    Browser:浏览器(各大浏览器,由浏览器开发提供统一的接口)

    Server:服务端(由服务提供者公司开发)

  2. 优势:不用下载直接访问

  3. 劣势:无法高度定制化 需要遵守很多规则

image

"""
浏览器可以充当所有服务端的客户端
ps:B\S架构本质上还是C\S架构
只不过我们客户端不由我们编写,我们只注重与服务端的编写
eg:在浏览器里访问百度页面可以在不同浏览器,
如 Chrome Edge 火狐 360浏览器 QQ浏览器等等
访问同一个百度页面
"""

架构总结:架构发展趋势

ATM:三层架构
选课系统:三种架构
本质也是属于软件开发架构的范畴

软件设计的大方向》》》:统一接口
	微信小程序
    支付宝小程序
使用规划好的的接口进行开发

网络编程前戏

  1. 什么是网络编程

    基于网络编写代码 能够实现不同计算机数据的远程交互

  2. 学习网络编程的目的

    能够开发cs架构的软件

  3. 网络编程的起源

    """
    最早起源于美国军事领域
    	想实现计算机之间的数据的交互
    	最早的时候只能用硬盘拷贝
    	之后发明了网络编程
    """
    
  4. 网络编程的必备条件

    数据的远程交互

    1. 早期的电话:电话线
    2. 早期的大屁股电脑:网线
    3. 笔记本(laptop)电脑,移动电话:网卡
  5. 实现数据的远距离交互必备的基础条件是物理连接媒介

OSI七层协议

osi七层协议:规定了所有计算机在远程数据交互的时候必须警告相同的处理流程、在制造过程中必须拥有相同的功能硬件

  1. 应用层

  2. 表示层

  3. 会话层

  4. 传输层

  5. 网络称

  6. 数据链路层

  7. 物理连接层

    image

常见的整合之后五层或则四层

  1. 应用层
  2. 传输层
  3. 网络层
  4. 数据链路层 # 4层是数据链路层与物理层合并成为网络接口层
  5. 物理连接层

image

接收消息从下往上

发送消息从上往下

OSI七层协议之物理连接层

主要用于确保计算机之间的物理连接媒介 接收数据是(bytes类型、也就是二进制类型)

OSI七层协议之数据链路层

  1. 规定了电信号的分组方式:电信号只有两种高电位,低电位

  2. 以太网协议

    1. 规定了计算机出厂的时候必须由一块网卡 网卡上由一串数字

    2. 该数字相当于计算机的身份证号码是独一无二的

    3. 改数字的特征:12位16进制的数据

      前六位厂商编号 后六位流水线号

    4. 该数字也成为:以太网地址/MAC地址

网络相关专业名称

计算机之间想要实现数据交互必须要’连接‘到一起

  1. 交换机

    能够将所有连接交换机的计算机彼此互联起来
    image

  2. 广播

    首次查找接入同一交换机的其他计算机 需要朝交换机里每一台主机发送的信号都要进行无条件辅助并转发,所有主机都可以接收到所有信息(不管你是否需要),由于其不用路径选择,所有其网络成本可以很低廉。在数据网络中也允许广播的存在,但其被限制在二层交换机的局域网范围内,禁止广播数据穿过路由器,防止广播数据影响大面积的主机

  3. 单播
    首次被查找的计算机回应查找他的计算机 并附带自己的mac地址

  4. 广播风暴
    接入同一台交换机的多台计算机同时发广播

  5. 局域网
    可以简单的理解为有单个交换机组成的网络
    在局域网内可以直接使用mac地址通信
    局域网是封闭型的,可以有办公室内的两台计算机组成,也可以有一个公司内的上千台计算机组成

  6. 广域网
    可以简单的理解为范围更大的局域网

  7. 互联网
    有所有局域网,广域网,连接到一起形成的网络

  8. 路由器
    不同的局域网之间计算机是无法直接实现数据交换的 需要路由器连接
    image

OSI七层协议之网络层

IP协议:规定所有接入互联网的计算机都必须有一个IP地址 类似于身份证号

​ mac地址是物理地址可以看成永远无法修改的
​ IP地址是动态分配的 不同的场所IP地址是不同的

IP地址的特征:

  1. IPV4:点分十进制
    0.0.0.0-255.255.255.255 一共就有这些43亿多个地址看似多,但是在2019年11月26日,分配完就没了
  2. IPV6:是冒号分16进制的,可以给地球上每一粒沙尘分一个IP地址
    2409:8a1e:912c:7de0:699b:51e1:4a6c:c212
  3. IP地址可以跨局域网传输
  4. IP地址是可以用来标识世界上独一无二的一台计算机

OIS七层协议之传输层

  1. port协议(端口协议)
    用来表示一台计算机上面的某一个应用程序
    范围:0-65535
    特征:动态分配(类似于酒店房号)
    建议:
    0-1024

    1. 系统默认使用 80http 443 https 22是ssh 53dns

    1024-8000

    ​ 常见软件端口号5000 flask djongo8000 3389windows远程桌面 3306mysql

    8000之后的 8080也是http 8888宝塔

  2. URL:同一资源定位符(网址www.baidu.com)
    网址本质是IP和端口组成的:36.152.44.96:80
    IP+PORT:能够定位全世界独一无二的计算机上面的某一个应用程序

  3. 域名解析:将网址解析成IP+PORT

  4. 我们之所以不直接使用IP+PORT的原因是太难记 所以发明了域名(网址)

标签:架构,计算机,七层,编程,基础,网络,计算机网络,服务端,客户端
From: https://www.cnblogs.com/clever-cat/p/16893532.html

相关文章

  • 07基础元器件-压敏电阻
     一、原理压敏电阻的工作原理:压敏电阻相当于一个可变电阻,它是并联于电路中。当电路正常工作时,它的阻抗很大,漏电流很小,相当于开路,对电路几乎没有影响。但当一个很高的突......
  • 网络编程,osi七层协议
    软件开发架构规定了程序的请求逻辑,功能分开分为两种:1.C/S架构 客户端(Client)类似于我们下载的app,给客户提供软件体验,可以理解成要去消费的客户服务端......
  • 网络编程
    网络编程软件开发架构1.C/S架构C:Client客户端S:Server服务端客户端指代的是手机端的APP和电脑上的各种软件,我们可以通过这些软件来进行各种各样的操......
  • 初识RocketMQ基础概念(一)
    20年入职ryx公司后,刚好接触到一个线上问题,遂开了一个研究课题,一场针对ApacheRocketMQ的无烟战争正式打开。一开始刚接触这玩意,只是通过百度搜索简单了解下,后来发现很多文......
  • 网络编程:软件开发架构、架构总结、网络编程前戏、OSI七层协议简介、OSI七层协议之物
    目录软件开发架构架构总结网络编程前戏OSI七层协议简介OSI七层协议之物理连接层OSI七层协议之数据链路层网络相关专业名词OSI七层协议之网络层OSI七层协议之传输层软件开......
  • 软件工程实验二—电梯编程
    #include<stdio.h>#include<windows.h>typedefstructelevator{ intstaus;//三种状态:静止,上行,下行 inttype;//三种类型:双,单,全 intfloor;//此时停在的楼层数 intbeixuy......
  • 道长的算法笔记:基础最短路模型
    #include<bits/stdc++.h>usingnamespacestd;typedefpair<int,int>ii;//移动轨迹向量化intadd[3]={+1,-1,0};intmul[3]={0,0,1};intvist[10000......
  • Alpine/Debian/Ubuntu 基础镜像在 dockerfile 中设置时区
    基于Alpine镜像FROMalpine:latestENVTZ=Asia/ShanghaiRUNapkupdate &&apkaddtzdata &&echo"${TZ}">/etc/timezone &&ln-sf/usr/share/zoneinfo/${......
  • Markdown基础指令及用处
    写在前面本篇博客参考了B站UP主是叶十三,里面关于一些常用指令的介绍较为全面,感谢其热心分享,学到了很多基础知识。同时欢迎大家批评指正(可能也就自己读),本篇文章均出自个......
  • MyBatis - 基础学习2 - CRUD
    1.namespace中的包名要和接口包名一致(namespace在xml文件中,接口包名,就是xml的实例化对象)2.resultType:返回的参数类型(如果返回值是int,可以不用写)3.parameterType:传入参数......