Python——网络编程
时间:2020-04-16
本文章向大家介绍Python——网络编程,主要包括Python——网络编程使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
网络编程
1、CS架构与BS架构
-
Client <===============> Server
''' 客户端软件send 服务器软件recv 操作系统 操作系统 计算机硬件 <=====物理介质====> 计算机硬件 '''
-
Browsewr<=============>Server
''' 浏览器 <=========> 服务器 '''
2、网络通信
- 网络存在的意义就是跨地域数据传输=> 称之为通信
- 网络=物理链接介质+互联网通信协议
3、OSI七层协议
-
互联网协议按照功能不同分为osi七层或tcp/ip五层或tcp/ip四层
-
五层协议
''' 1、应用层 2、传输层 3、网络层 4、数据链路层 5、物理层 '''
-
协议:规定数据的组织格式
# 格式:头部+数据部分 # 封包裹的过程:数据外加头 # 拆包裹的过程:拆掉头获取数据
-
OSI七层协议数据传输的封包与解包过程
4、五层协议
'''
计算机1: 计算机2:
应用层 应用层
传输层 传输层
网络层 网络层
数据链路层 数据链路层
物理层 <======================> 物理层
01010101010
(源mac地址,目标mac地址)(源ip地址,目标ip地址)数据
'''
-
物理层负责发送电信号
''' 一组物理层数据称之为:位 单纯的电信号毫无意义,必须对其进行分组 '''
-
数据链路层:ethernet以太网协议
''' 规定1:一组数据称之为一个数据帧 规定2:数据帧分成两部分=》头+数据 头包含:源地址与目标地址,该地址是mac地址 数据包含:包含的是网络层发过来的整体的内容 规定3:规定但凡接入互联网的主机必须有一块网卡,每块网卡在出厂时都烧制好一个全世界独一无二的地址,该地址称之为mac地址 注意:计算机通信基本靠吼,即以太网协议的工作方式是广播 '''
-
网络层:IP协议
''' 要达到的目的: 划分广播域 每一个广播域但凡要接通外部,一定要有一个网关帮内部的计算机转发包到公网 网关与外界通信走的是路由协议 规定1:一组数据称之为一个数据包 规定2:数据帧分成两部分=》头+数据 头包含:源地址与目标地址,该地址是IP地址 数据包含的:传输层发过来的整体的内容 ipv4地址: 8bit.8bit.8bit.8bit 0.0.0.0 255.255.255.255 子网掩码: 8bit.8bit.8bit.8bit 255.255.255.0对应的二进制表达 11111111.11111111.11111111.00000000 一个合法的ipv4地址组成部分=ip地址/子网掩码地址 172.16.10.1/255.255.255.0 172.16.10.1/24 计算机1: 172.16.10.1: 10101100.00010000.00001010.000000001 255255.255.255.0: 11111111.11111111.11111111.000000000 通过ip地址+mac地址算出计算机1的网段地址 172.16.10.0: 10101100.00010000.00001010.000000000 计算机2: 172.16.10.2: 10101100.00010000.00001010.000000010 255.255.255.255.0: 11111111.11111111.11111111.000000000 通过ip地址+mac地址算出计算机2的网段地址 172.16.10.0: 10101100.00010000.00001010.000000000 计算机1: 计算机2: 应用层 应用层 传输层 传输层 网络层 网络层 数据链路层 数据链路层 物理层 <=========二层交互机========> 物理层 0101010101010 (源mac地址,xxxx)(源ip地址,目标ip地址)数据 (源mac地址,网关的mac地址)(172.16.10.10/24,101.100.200.11/10)数据 事先知道的是对方的ip地址 但是计算机的底层通信是基于ethernet以太网协议的mac地址通信 ARP: 所以必须能够将ip地址解析成mac地址 '''
- 计算机在同一局域网以及不同局域网内的通信方式
''' # 两台计算机在同一个局域网内 计算机1:172.16.10.10/24 直接 计算机2:172.16.10.11/24 ARP: 自己的ip,对方的ip 1、计算二者网络地址,如果一样,拿到计算机2的mac地址就可以了 2、发送广播包 发送端mac FF:FF:FF:FF:FF:FF 172.16.10.10/24 172.16.10.11/24 数据 # 两台计算机不在同一个局域网内 计算机1:172.16.10.10/24 网关 计算机2:101.100.200.11/10 ARP: 自己的ip,对方的ip 1、计算机二者网络地址,如果不一样,应该拿到网关的mac地址 2、发送广播包 发送端mac FF:FF:FF:FF:FF:FF 172.16.10.10/24 172.16.10.1/24 数据 '''
-
总结
''' ip地址+mac地址=》标识全世界范围内独一无二的一台计算机 或者: ip地址=》标识全世界范围内独一无二的一台计算机 '''
原文地址:https://www.cnblogs.com/guanxiying/p/12713179.html
- 洛谷P3178 [HAOI2015]树上操作
- Numpy 修炼之道 (6)—— 复制和视图
- 事务日志已满,原因为“ACTIVE_TRANSACTION”
- 【 关关的刷题日记46】Leetcode 28. Implement strStr()
- Python的机器学习库之Sklearn快速入门1.基本概述2.入门实践3.部分结果
- 再论 ASP.NET 中获取客户端IP地址
- 洛谷P3038 [USACO11DEC]牧草种植Grass Planting
- 【 关关的刷题日记47】Leetcode 38. Count and Say
- 《Python自然语言处理》答案第一、二章
- 【 关关的刷题日记49】 Leetcode 434. Number of Segments in a String
- 自然语言处理构建文本向量空间1.百科2.源代码3.参考:
- 小爬虫之爬取豆瓣电影排行榜1.技术路线2.任务3.分析4.运行结果5.源码
- Numpy 修炼之道 (5)—— 索引和切片
- 深入理解final关键字
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Manytasking Jmetal 代码反向解析 2_MMDTLZ
- GitLab服务器搭建
- MATP1生成测试SolutionSet
- 以猜数字游戏引出的分治算法的理解与思考
- MATP ManyTask Multitask Problem 和 Solution 的变量范围
- Sinopia安装部署
- Nginx的405 not allowed错误解决
- Linux免密登陆
- 一起来学matlab-matlab学习笔记8 基本绘图命令_2基本绘图操作
- 用一个图书库实例搞懂二分搜索树的底层原理
- 自已做动画及编写程序搞清楚最大堆的实现原理
- 一起来学演化计算-matlab基本函数strcmp num2str 字符串格式
- 一起来学matlab-matlab学习笔记8 基本绘图命令_1 图形窗口简介
- 根据barcode过滤bam文件
- biopython - 比较两个序列的相似性