首页 > 编程语言 >计算机网路编程理论

计算机网路编程理论

时间:2022-11-15 17:12:16浏览次数:43  
标签:协议 计算机 计算机网 理论 编程 网络 局域网 数据 路由器

计算机网路编程理论

针对软件开发,目前所有市面上的主流软件,都基本上会使用网络进行通信,传输各种数据,作为软件开发人员,掌握网络编程理论和了解网络编程开发架构是必须的。

软件开发架构

以ATM项目和选课系统项目为例,都采取了三层架构的方式,三层架构中,有一层为用户交互层,这一层可以理解为客户端软件,而接口层和数据处理层则可以理解为服务端软件,这就是对c/s架构进行一个简单的理解。

C/S

  • Client:客户端

    例子:手机上的各种app:微信、美团、支付宝

  • Server:服务端

    这些软件核心的数据都在它们的服务端中,核心的处理数据的方式也都在服务端的程序中。

特点:可以满足软件高度定制化的要求,而客户端需要让用户下载使用。

B/S

  • Browser:浏览器

    例子:浏览器也可以访问网页版的b站、淘宝

  • Server:服务端/器

    这里的服务端相应的也要与客户端做一定的适配,并不和C/S的服务端相同

特点:不用下载,只需要网址就能直接访问,但是只能基于浏览器的协议进行编写,会有一些功能上的限制。

计算机网络专业名词

工作方式

  • 边缘部分:用户直接使用C/S等方式通信
  • 核心部分:为用户服务,包括网络通路、交换机、路由器等等设备

交换机

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

img

广播

主机之间“一对所有”的通讯模式,网络对其中每一台主机发出的信号都进行无条件复制并转发,所有主机都可以接收到所有信息(不管你是否需要),由于其不用路径选择,所以其网络成本可以很低廉。有线电视网就是典型的广播型网络,我们的电视机实际上是接受到所有频道的信号,但只将一个频道的信号还原成画面。在数据网络中也允许广播的存在,但其被限制在二层交换机的局域网范围内,禁止广播数据穿过路由器,防止广播数据影响大面积的主机。

单播

首次被查找的计算机回应查找它的计算机,并附带自己的mac地址,一般配合tcp协议使用,是一种点对点的可靠传输方式

广播风暴

广播风暴是一种很严重的网络故障。以预防为主的防治措施应是主要对策。

局域网

局域网(Local Area Network,LAN)是指在某一区域内由多台计算机互联成的计算机组。一般是方圆几千米以内。局域网可以实现文件管理、应用软件共享、打印机共享、工作组内的日程安排、电子邮件和传真通信服务等功能。局域网是封闭型的,可以由办公室内的两台计算机组成,也可以由一个公司内的上千台计算机组成。

广域网

路由器(Router)又称网关设备(Gateway)是用于连接多个逻辑上分开的网络,所谓逻辑网络是代表一个单独的网络或者一个子网。当数据从一个子网传输到另一个子网时,可通过路由器的路由功能来完成。因此,路由器具有判断网络地址和选择IP路径的功能,它能在多网络互联环境中,建立灵活的连接,可用完全不同的数据分组和介质访问方法连接各种子网,路由器只接受源站或其他路由器的信息,属网络层的一种互联设备。

广域网就可以理解为局域网用路由器连起来形成的更大的网络。

互联网

由所有的局域网、广域网连接到一起形成的网络

网络编程协议简介

OSI七层协议

七层协议规定了所有的计算机在远程交互时,必须经过相同的处理流程,在制造过程中必须拥有相同的功能硬件。

根据不同的处理流程,网络通信被划分为了以下七层:

  1. 应用层
  2. 表示层
  3. 会话层
  4. 传输层
  5. 网络层
  6. 数据链路层
  7. 物理层

其中,应用层是最接近用户的一层,它可能是一句话、一张图片,一个网页;物理层是一切通信的基础,其形式是二进制的。

发起通信的一方,会逐步的基于这七层协议不断的给我们想要发送的数据打包,数据已经被各种协议包裹后,最终到物理层,然后传送到其他计算机再自下而上不断的按照对应的协议解包,最终还原数据的呈现方式,发送到接收方。

image

每一层的打包结果,都是上面所有层处理结果的总和

每一层的解包结果,都已经解析了下面所有层让其更还原原本的数据

五层协议

七层协议中的最上面三层由于很接近用户,也经常被看做一层,统称应用层。

osi之物理层

物理层的媒体包括架空明线、平衡电缆、光纤、无线信道等。它为数据端设备建设传输数据的通路,为数据提供传输服务。

osi之数据链路层

  1. 规定了电信号的分组方式

    即发送时将数据处理为一整坨二进制数据,接收时能通过首尾一定位数的数据,确定这种处理方式,再反过来处理,得到原本的数据。

  2. 以太网协议

    规定了计算机在出厂的时候都必须有一块网卡,网卡上有一串数字

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

    该数字的特征:12位16进制数据:前6位产商编号 后6位流水线号

    该数字也称为:以太网地址/MAC地址

osi之网络层

遵循ip协议,规定所有接入互联网的计算机必须都有一个IP地址。

与mac地址的区别
  • mac地址:物理地址,永久不变的一串数字
  • ip地址:动态分配,不同的场所IP不同

IP地址特征:

  IPV4:点分十进制
    	0.0.0.0
      255.255.255.255
    IPV6:能够给地球上每一粒沙分一个IP地址 
	 IP地址可以跨局域网传输
ps:IP地址可以用来标识全世界独一无二的一台计算机

arp协议:

 ARP(Address Resolution Protocol,地址解析协议)
 用于将IP地址解析为物理地址(MAC地址)

osi之传输层

  • PORT协议

    用来标识一台计算机上面的某一个应用程序

    范围:0-65535

    特征:也是动态分配,但是一些端口会固定分配给一些常见的软件

    所以为了避免冲突,我们所写的软件的端口应该放在8000后

    0 - 1024 系统默认需要使用的一些端口
    1024 - 8000 常见软件的端口号
    8000之后,是一些不常见的软件
    
  • URL:统一资源定位符(网址)

    网址本质:IP:PORT

    网址能够定位全世界独一无二的一台计算机上面的某一个应用程序

  • 域名解析:我们平常见到的网址都是这种格式的

    www.baidu.com|www.cnblogs.com/Leethon-lizhilog/

    实际上,是为了方便阅读,才将IP:PORT与字符网址对应起来,我们通过DNS服务就可以将域名转换为IP:PORT的格式,从而访问到网络那一端的程序。

标签:协议,计算机,计算机网,理论,编程,网络,局域网,数据,路由器
From: https://www.cnblogs.com/Leethon-lizhilog/p/16893056.html

相关文章

  • 网络编程基础
    网络编程基础软件开发架构软件开发结构:程序员在编写软件时候应该遵循的架构设计规定了程序的请求逻辑,功能划分模块等等1.C/S架构client:客户端Server:服务端'''......
  • 网络编程前戏
    今日内容概要软件开发架构架构发展趋势网络编程前戏OSI七层协议各种重点协议今日内容详细软件开发架构规定了程序的请求逻辑、功能分块1.C/S架构 Client:......
  • 网络编程与OSI模型
    目录一、网络编程简介1.什么是网络编程2.学习网络编程的目的3.网络编程的发展史4.网络编程必备条件二、OSI七层协议模型简介0.操作系统基础1.osi七层协议模型2.osi七层协议......
  • Docker网络理论
    目录一、Docker网络理论1.1理解docker0网桥1.2vethpair(虚拟网线)二、容器网络互通理论2.1小实验:容器之间是否可以通信?2.2为什么?容器之间可以相互通信?2.3总结:三、Docker......
  • 网络编程
    软件开发架构1.c/s架构类似appclient:客户端server:服务端优势:可以高度定制化客户端内容2.b/s架构类似网站(本质也是c/s架构)browser:浏......
  • 网络编程1
    今日内容概要软件开发架构架构发展趋势网络编程前戏OSI七层协议各种重点协议今日内容详细软件开发架构规定了程序的请求逻辑、功能分块1.C/S架构 Client:客户......
  • 网络编程
    一.楔子你现在已经学会了写python代码,假如你写了两个python文件a.py和b.py,分别去运行,你就会发现,这两个python的文件分别运行的很好。但是如果这两个程序之间想要传递一个......
  • 进入python的世界_day31_网络编程—— 两种软件开发架构、网络编程之OSI七层协议
    一、软件开发架构1.第一种——C/S架构Client客户端<——————>Server服务端我们平时下载的软件包,基本都是客户端软件使用这个软件包就有一张令牌去进入店铺享受......
  • 计算机网络——软件开发架构、网络编程、OSI七层协议
    计算机网络——软件开发架构、网络编程、OSI七层协议一、软件开发架构​ 规定了程序的请求逻辑、功能分块​ 软件设计的大方向:统一接口1、C/S架构client:客户端s......
  • 网络编程之OSI协议
    1.什么是网络编程? 基于网络编写代码,能够实现数据的远程交互2.学习网络编程的目的 能够开发cs架构的软件3.网络编程的起源"""最早起源于美国军事想实现计算机之间数......