网络编程

文章探讨了软件开发中的C/S架构(客户端/服务器)和B/S架构(浏览器/服务器)的应用,介绍了OSI七层协议,包括网络通信原理,以及TCP和UDP协议的特点。重点强调了这两种架构在网络传输中的作用和局限性。
摘要由CSDN通过智能技术生成

软件开发架构

网络编程:我们要编写一款基于网络传输的软件,你现在写的项目都不是基于网络的,比如ATM

# 举个案例:
"""
    我们现在以ATM为例,你现在写的ATM别人是不能够访问的,只能你自己用,但是,这不是目的,目的是我们要写一款ATM,然后让所有人都能够访问.
    
    如果想让别人下载使用我们的软件,我们需要开发一款客户端,然后让用户在自己的电脑上下载这个客户端就能用了,还需要有一个服务端,比如,以ATM为例,用户下载客户端之后,用户需要输入用户名和密码登录,然后把用户名和密码提交到服务端做校验,提交到的地方就是服务端
"""
client                                                                server
客户端--------------------------网络传输-----------------------------------服务端
我们通常称为这种架构为C/S架构

客户端服务端是存在一定的问题的:
    # 当我们需要下载大量的软件的时候,会占用大量的资源,其次,就是使用起来不方便,因此,这个时候,就有人站出来开发了浏览器,那么,这个浏览器其实也是一个客户端,浏览器它是一个万能客户端,超级客户端

browser                                                                server
浏览器(客户端)-----------------------网络传输-------------------------------服务端
我们通常称为这种架构为B/S架构
"""本质上B/S架构也是C/S架构!!!"""

# 当下我们使用的软件架构模式是二者兼有!
"""很多的公司开发的软件都是小程序(微信), 为了转换更加容易一些"""

# 扩展一个知识点
服务端的特征:
    1. 24小时不间断对外提供服务
    2. 服务端要有一个公网IP(服务器部署、它就是另外一台计算机,系统:Linux系统, centos、乌班图等)
    3. 常见的服务器:阿里云、腾讯云、百度云、华为云等

OSI七层协议

1. 什么是网络? 什么是上网?
    # 上网其实就是上传和下载数据的过程
    背景:
        在早期的时候,其实世界范围内的计算机是不能够互相通信的,当时的计算只是在'局域网'中通信,后来呢,世界范围内的计算机也通信了,在广域网中通信,这就是互联网.
    
    网络的组成:物理链接设备(路由器、交换器、网线等) + 计算机界的英语(互联网通信协议)
    
2. 互联网通信协议(osi七层协议)
    # 互联网的本质就是一系列的网络协议,这个协议就叫OSI协议(一系列协议),按照功能不同,分工不同,人为的分层七层。实际上这个七层是不存在的。没有这七层的概念,只是人为的划分而已。区分出来的目的只是让你明白哪一层是干什么用的。
    
   """协议是干什么的,协议就是标准。"""
七层划分为:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。
五层划分为:应用层、传输层、网络层、数据链路层、物理层。
四层划分为:应用层、传输层、网络层、网络接口层

"""物理层"""
    它是专门用来发送高低电频的,其实就是01二进制 (0101010)101010101111010(1010)0101(01)
    # 物理层单纯的发送电频是没有任何的意义的,因为不知道发送的电频什么意思,所以,需要对发送的电频进行分组,但是呢,物理层做不了分组
"""数据链路层"""
    它就是专门用来对物理层发送过来的数据进行分组的,该层使用的以太网协议ethernet
    一组电信号构成一个数据报,叫做帧,或者叫数据帧,数据帧的组成:报头head和数据data两部分
    ● head包含:(固定18个字节)
      ○ 发送者/源地址,6个字节
      ○ 接收者/目标地址,6个字节
      ○ 数据类型,6个字节
    # 数据报的具体内容:head长度+data长度=最短64字节,最长1518字节,超过最大限制就分片发送
   

    Mac地址:
        以太网协议规定,每一个接入互联网的设备都必须要有一个网卡,发送端和接收端的地址便是指网卡的地址,即Mac地址
        
        Mac地址:每块网卡出厂时都被烧制上一个世界唯一的Mac地址,长度为48位2进制,通常由12位16进制数表示(前六位是厂商编号,后六位是流水线号。
    # 通过一个Mac地址能不能确定局域网中得唯一一台计算机? 能确定
    
"""网络层"""
    该层使用的是IP协议,规定每一个接入互联网的计算机都必须要有一个IP地址,网络层中的数据我们称为是数据包,IP地址的组成格式
    分类:IPv4、IPv6, 目前大多数用的都是IPv4,由于IPv4地址即将耗尽,所以,其他场景开始使用IPv6了
    IPv4:
    0.0.0.0------------------------------------->255.255.255.255
00000000.00000000.00000000.00000000    ---------->    11111111.11111111.11111111.11111111
    
    192.168开头的地址基本上都是局域网中得ip地址
    公网ip:需要购买的,阿里云、腾讯云的,人家或给你一个公网ip地址,固定的,不会变。172.0.1.200
    内网ip:192.168开头的地址基本上都是局域网中得ip地址
    
    IPv6:十六进制表示法
    """
        如何查看自己的IP地址:
            windows: cmd----->ipconfig
            linux(macOS): ifconfig
    """
    # 其实通过一个IP地址它是可以定位唯一一个局域网
    """IP+Mac地址确定世界范围内的唯一一台计算机? 是的"""
    但是我们知道,现在只需要一个IP地址就能够确定唯一一台计算机,那是因为:arp协议的玩意儿,它能够通过你的IP地址计算出Mac地址,归根结底还是:IP+Mac地址
    
    记忆:本地回环地址:127.0.0.1(你自己的电脑)
    192.168.1.252 127.0.0.1  localhost (这两个有时候会有区别)
 

"""传输层"""
    该层使用的是TCP协议或者是UDP协议,暂且忽略. 它也称之为是端口协议,一个端口可以代码一个应用程序
端口的范围:0-65535
     """
         1. 0-1024之间的端口号都是系统自己使用的
         2. 1024-8000之间的端口号一般是常用软件的端口号
             MySQL:3306
             Django:8000
             flask:5000
             ...

TCP和UDP协议

客户端    服务端
"""客户端要想给服务端发送消息,肯定需要建立链接"""
tcp协议它也称为是可靠协议(三次握手), 流式协议(发送数据可以分多次发送 100M数据  10M 10次)
三次握手--------------------> 建立链接


四次挥手---------------------> 断开链接
"""一定是客户端先给服务端发送消息,然后,服务端给客户端做返回信息"""
# 有个个例,服务端可以先给客户端发送消息,需要使用websocket协议,一般用在即时通信软件
客服系统、微信、QQ等都是

客户端可以是多个的,服务端(饭店)只有一个


UDP协议:
    它不可靠、是因为它不建立链接,没有三次握手、四次挥手
     速度快
远程控制

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值