• python学习——网络基础


    1.交换机
    通过交换矩阵,创建局域网,进行相互之间通信
    2.mac地址
    网卡内部带的
    3.IP地址
    电脑地址
    4.socket模块
    服务端:收发数据->accept/recv
    客户端:收发布局->connect/recv
    5.黏包
    当服务端同时收到多个数据且每个数据长度小于最大接收数时,服务端无法正确拆分多个数据
    解决方法:struct模块
    6.socketserver模块
    服务端创建多个自己与客户端进行交互

    网络基础
    1.我的电脑有网卡,网卡里有mac地址
    2.我到某个地方插上网线,路由器或交换机中的DHCP服务为我分配IP地址
    IPv4
    ip:192.169.11.11
    00000000.00000000.00000000.00000000
    0~255 0~255 0~255 0~255
    IPv6
    00000000.00000000.00000000.00000000.00000000.00000000
    子网掩码:255.255.255.0
    192.168.13.84
    网关IP:192.168.13.1
    三个概念:局域网、城域网、广域网
    3.DNS
    网络连接:
    域名解析
    www.baidu.com:域名 域名背后一定有一个IP
    连接
    sk = socket.socket()
    sk.connent(('xxx.xxx.xxx',80)) 网站默认80
    问题: 域名和IP的对应关系在哪里?
    先在本地找:
    win本地电脑:C:WindowsSystem32driversetchost
    DNS服务器:全球顶级DNS服务器13台
    创业:
    a.一个服务器+公网IP
    b.租域名
    域名+IP解析

    总结:
    1.DHCP,自动为局域网内电脑分配IP
    2.网关,路由器中连接交换机的口。
    3.IP,4个点分的十进制表示 192.11.11.11
    4.子网掩码,将挡住的IP的位数作为网段,未挡住的部分作为可变的值。
    ip:192.168.13.99
    掩码:255.255.255.0
    5.广域网、局域网、城域网
    6.arp协议,通过广播给某人发送数据,他通过单播回复
    7.DNS,先找本地hosts文件
    1.网络端口
    -端口,是什么?为什么要有?
    端口是为了将同一个电脑上的不同程序进行隔离。

    IP是找电脑
    端口是找电脑上的程序

    示例:
    MySQL是一个软件,帮助我们在硬盘上进行文件操作。默认端口3306
    Redis是一个软件,帮助我们在内存里进行文件操作。默认端口6379
    网站默认端口:80,访问时:http://www.baidu.com:80
    网站默认端口:443,访问时:https://www.baidu.com:443
    范围:
    1 - 65535
    1 - 1024
    一般程序员用的端口:8000~
    -OSI 7层模型
    应用层(产生数据,通过自己写的代码实现:自己代码+框架)
    应用层:软件
    表示层:看到的数据,如图片、视频
    会话层:保持登录或链接状态,网站发的令牌:cookie;无痕窗口不允许发令牌

    (以下通过socket模块实现)
    传输层:TCP/UDP [TCP][cookie]
    网络层:IP [IP][TCP][cookie]
    数据链路层:MAC [MAC][IP][TCP][cookie]
    物理层:将数据转换成电信号发送
    ********注意:7层一定要背会
    -TCP三次握手/四次挥手
    socket客户端向服务端发起连接请求:三次握手(客户端发2次,服务端发1次)
    client.connect((。。。))
    客户端 服务端
    我能。。
    可以
    好的,来了
    ------------------------------
    client.send('...')
    收发数据 收发数据
    客户端和服务端断开连接:四次握手(客户端2次,服务端2次)
    client.close()或conn.close()
    我要断开
    等我处理完
    处理完了,断吧
    拜拜
    补充:断开连接时,反映到代码上:抛出异常/发送空内容;
    总结:了解网络相关知识,
    你与科班出身的人区别:
    1、计算机组成原理
    2、网络
    3、数据结构
    4、算法
  • 相关阅读:
    Windows向虚拟机Linux传输文件方法
    Postgresql ERROR: permission denied for relation app_info
    Spring Boot: Cannot determine embedded database driver class for database type NONE
    零宽度正预测先行断言是什么呢,看msdn上的官方解释定义
    php 的curl 模拟登陆
    使用ProxychainsMac下安装及配置
    利用onekeyup即可实现验证码的点击刷新功能
    程序中使用gc_enable() 和 gc_disable()开启和关闭
    通过ReflectionMethod,我们可以得到Person类的某个方法的信息
    order by id asc得出的排序是什么原理
  • 原文地址:https://www.cnblogs.com/bilx/p/11433362.html
Copyright © 2020-2023  润新知