网络编程

一.网络编程

  1.软件开发架构

    ①C/S架构

      c:client 客户端 s:serve 服务端

    ②b/s架构

      b:browser 浏览器  s:serve服务端

  手机端:好像c/s架构比较火,其实不然,微信小程序,支付宝第三方接口统一接口!

  PC端:b/s比较火

  本质:b/s其实也是c/s

  

  服务端:24小时不间断提供服务,谁来我就服务谁

  客户端:想体验服务的时候,就去找服务端体验服务

 

  学习网络编程  >>> 开发cs架构的软件

  并发编程,前端,数据库,框架  >>> 开发bs架构的软件

 

  起源于:美国军事,想要实现远程数据传输

 

  如何实现远程沟通交流?

    电话插电话线

    大屁股电脑插网线

    笔记本电脑无线网卡

  

  想要实现远程通信,第一具备的条件就是:物理连接介质

 

  不同国家的人交流需要一个公共的语言作为媒介>>英语

  计算机与计算机想要实现远程通信,光有物理连接介质是不够的,他们也需要一个共同的标准     >>>>>协议

 

二、 OSI七层协议(模型)!

    应用层

    表示层

    会话层

    传输层

    网络层

    数据链路层

    物理连接层

 

  进一步简化成五层

    应用层(包含了表示层和会话层)

    传输层

    网络层

    数据链路层

    物理连接层

 

  1.物理连接层:

    实现计算机之间物理连接,传输的数据都是01010的二进制

    电信号工作原理:电只有高低电平

 

  2.数据链路层(‘以太网协议!’)  

    ①.规定了二进制数据的分组方式

    ②规定了只要是介入互联网的计算机,都必须有一块网卡

    网卡上刻有世界唯一的编号:

      每一块网卡出厂的时候都烧制上了一个世界唯一的mac地址,长度为48位二进制,通常由12位16进制表示(前六位是厂商编号,后六位是流水线号)

      我们把网卡上刻有的编号叫做电脑的>>>mac地址

    ------->>>> 上面的两个规定其实就是‘以太网协议‘’!

     基于以太网协议通信:通信基本靠吼!

     弊端:广播风暴

    

     交换机:如果没有交换机,你的电脑就变成了马蜂窝,有了交换机之后,所有的电脑只需要有一个网卡连接交换机

     即可实现多台电脑之间的物理连接

 

  3.网络层(IP协议)

    规定了计算机都必须有一个IP地址

      ip地址特点:点分十进制

      有两个版本ipv4和ipv6 为了能够兼容更多的计算机

      最小0.0.0.0  (ipv6的话就是0.0.0.0.0.0)

      最大:255.255.255.255 

    IP协议可以跨局域网传输

    IP地址能够唯一标识互联网中独一无二的一台机器!

 

  4.传输层(端口协议)

    TCP,UDP基于端口工作的协议!

    其实计算机之间通信其实是计算机上面的应用程序之间的通信

    端口(port):唯一标识一台计算机上某一个基于网络通信的应用程序

    端口范围:0 - 65535(动态分配)

      注意:0-1024是归操作系统分配的端口号

      通常情况下:我们写的软件端口建议起在8000之后

      flask框架默认端口5000

      Django框架默认端口8000

      MySQL数据库默认端口3306

      Redis数据库默认端口6379

    注意:一台机算上同一时间一个端口号只能被一个应用程序占用

 

小总结:

  IP地址:唯一标识世界接入互联网的独一无二的机器

  port端口号:唯一标识一台计算机上的摸一个应用程序

  ip+port:能够标识世界上独一无二的一台计算机上的某一个应用程序

 

  补充:arp协议:根据IP地址解析mac地址

 

  应用层(HTTP协议,FTP协议)

  TCP协议(流式协议,可靠协议)

    三次握手四次挥手

       

            

    

 

  

  

  

 

 

posted @ 2019-04-29 15:33  Mr-Bear  阅读(106)  评论(0编辑  收藏  举报