1,网络的基础和最简单的CS架构

1,网络的概念

网络编程的目的

为打基础
    了解一些网络的基础知识
    简单了解一些底层的网络通信

大致内容

​    1,网络的概念
​    2,基于原生的网络模块来实现通信
​    3,完成一些简单的程序
​    4,了解一些协议的特点,扬长避短

1,网络的概念

1,引言

上学时用的学号:临时的编号\可以变化的
身份证号:一个人的唯一标识\不变的

2,在电脑上的不变的和变化的

不变的:mac地址  能够唯一标识这台机器的出厂时就有的,具有唯一性
变化的:IP地址  能够更好地更方便的找到机器的网络的地址,通过网络ip可以确定你的物理地址

局域网:用于网络和用户的通信

交换机:交换机下就是一个局域网,交换机只认识mac地址,可以广播,单播和组播(一部分发消息一部分不发)

工作方式:arp协议,地址解析协议,通过一台机器的IP地址获得机器的mac地址用到了广播,单播。

    在一个局域网中靠‘喊’来寻找,先将一个消息发给局域网下的所有电脑(广播),只有一台电脑回复了交换机并且将自己的mac地址发给了交换机,这个时候双方都知道了对方的mac地址,交换机就可以和这一台电脑进行单独的数据交流(单播)

网段:192.168.12.0  192/168/12每一段都代表不同的含义,也就是缩小范围

广域网:由多个局域网组成,用于局域网之间的通信

路由器,网关:可以解析IP地址,并且有内存可以记录

3,IP地址

ipv4:

由4位4段点分十进制的内容  例如:192.168.12.88

每一位只能表示0-255

ipv4可以表示的范围:0.0.0.0---255.255.255.255 IP地址是有限的

公网地址:需要申请购买的IP地址  公网通讯依赖路由器

内网地址:保留字段 内网通讯依赖交换机

      192.168.0.0  ---  192.196.25.5255 内网地址
      172.16.0.0  ----  172.31.255.255
      10.0.0.0  ----  10.255.255.255

    特殊的IP地址

       172.0.0.1 本地回环地址  自己访问自己 测试的时候用

       自己的IP地址查看:Windows:ipconfig  Linux:ifconfig

     192.168.12.0:这个开头的IP地址只能装配255台计算机 网关使用一个IP地址,如果想要装500台机器,就只能使用192.168.0.0这个地址,那么这时候就分不清楚192.168.12.1和192.168.13.1是不是一个局域网内的IP地址了,这个时候就衍生出了子网掩码

 子网掩码:

大部分都是255或0系列每一段不是255就是0,子网掩码也是一个IP地址,用来判断两个机器在不在同一个局域网内

      判断方法

         IP地址a:  192.168.12.1
         IP地址b:  192.168.13.1
         子网掩码:255.255.255.0
         子网掩码和IP地址一起进行一种暗谓语计算

        192.168.12.1

      IP地址a的二进制:11000000.10101000.00001100.00000001

      ​        255.255.255.0

      子网掩码二进制:  11111111.11111111.11111111.00000000

      IP地址a的二进制与子网掩码的二进制进行位与计算(相同位全为1才是1)

      ​                        ob 11000000.10101000.00001100.00000001  =  192.168.12.1

      IP地址b的二进制:11000000.10101000.00001101.00000001

      IP地址b的二进制与子网掩码的二进制进行位与计算

      ​                         ob  11000000.10101000.00001101.00000001 =  192.168.13.1

      得到的结果相同就是在同一个局域网下的IP地址

      

+ ipv6:


  由6位6段冒分十六进制的内容  例如:aaaa48:bbbb12:d4c6b2a2:ddd4739a:e589a45f:aa4f3b2e
   ipv6可以表示的范围:0:0:0:0:0:0: ----  FFFFFF:FFFFFF:FFFFFF:FFFFFF:FFFFFF:FFFFFF

4,端口

虚拟的概念  用来确认机器上具体程序的

 端口的范围:0 --- 65535
 我们访问服务器获得的端口是随机的,服务器发数据给我们是固定的

概念整理
1,局域网
交换机:


在同一个局域网内的机器由交换机负责通信
  交换机只认识mac地址
  可以完成广播 组播和单播
   单播 -- mac地址(在网卡上,全球唯一)

路由器

局域网之间的通信


  提供网关ip,同一个局域网的所有机器共享一个网关
  我们不能访问除了本局域网之外的其他内网IP地址
 子网掩码
  用来判断两台机器是否在同一个局域网中

协议

 IP地址协议:
   ipv4协议
   ipv6协议
mac地址:arp协议:通过ip找mac
端口(port):用来确认一台机器上的应用

2,CS和BS架构

1,C/S架构:

  • client:客户端

    • 有多个想开就开想关就关需要自己安装

  • server:服务端

    • 只有一个全天开着不需要自己安装

  • cs架构的优点:

    • 可以离线使用

    • 功能更加完善

    • 安全性更高

python中的CS架构

client.py    客户端

'''
必须先启动服务端

'''

import socket

sk = socket.socket()
sk.connect(('127.0.0.1', 9000))

msg = sk.recv(1024)     # 接收服务端发送的内容
print(msg)
sk.send(b'byebye')      # 向客户端发送内容

sk.close()  # 断开连接

servser.py    服务端

import socket

sk = socket.socket()  # 创建一个server端的对话
# 127.0.0.1:9000也是自己的IP地址
sk.bind(('127.0.0.1', 9000))  # 给server端绑定一个ip地址和端口 申请操作系统的资源
sk.listen()  # 可以开始监听(接收)

for i in range(10):
    conn, addr = sk.accept()  # 建立连接  conn是连接  conn里存储的是一个客户端和server端的连接信息
    print('conn:', conn)
    conn.send(b'hello')         # 向客户端发送内容
    msg = conn.recv(1024)
    print(msg)
    conn.close()  # 挥手 断开连接 整个服务不关闭还可以和其他的客户端连接

sk.close()  # 关闭整个服务  归还申请的操作系统的资源

2,B/S架构:

百度,谷歌,码云,访问的信息被展示在网页上的都是bs架构

  • browser:浏览器

    • 只需要一个网址

  • server:服务端

  • B/S架构也是C/S架构的一种

  • bs架构的优点:

    • 不用安装就可以使用

    • 统一pc端入口

    • 以后开发的趋势就是bs架构

更多内容可以查看自己学python的过程,简单笔记。-CSDN博客

更多内容可以查看自己学python的过程,简单笔记。-CSDN博客

更多内容可以查看自己学python的过程,简单笔记。-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值