计算机网路编程理论

计算机网路编程理论

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

软件开发架构

以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的格式,从而访问到网络那一端的程序。

posted @ 2022-11-15 17:02  leethon  阅读(67)  评论(0编辑  收藏  举报