python可能会用到的网络基础
网络编程
1.两种构架:(1)C/S构架:client, server
(2) B/S构架:browser,server
2.地址相关:(1)MAC地址,物理地址,唯一,但可以更改
(2)ip地址,网络地址,网络位置,可更改。
3.相关设备知识:(1)交换机:局域网内用来连接各电脑,实现局域网内通信;
无法直接识别IP地址;可识别MAC地址
先广播,在通过返回信息中的MAC地址实现一对一通信;
即通过一台机器的IP地址找到其MAC地址:arp协议,地址解析协议
(2)路由器:实现不同局域网之间的通信;
(3)网关ip:一台机器对局域网外地址进行通信、访问时,使用的出口ip
4.端口:端口对应机器上具体应用对应的服务 0~65535;9000之后一般随便用,之前的端口有惯用端口,可能被占用
格式 IP地址 : 端口号 例:192.168.0.1:8080
5.子网掩码:和IP地址与运算,用来界定不同地址是否是同一网段 例:255.255.255.0
6.常用的网段划分:全网段 0.0.0.0~255.255.255.255
局域网三种:10.0.0.0~10.255.255.255
(保留字段)172.16.0.0~172.16.255.255
192.168.0.0~192.168.255.255 65535个地址
本地回环地址 127.0.0.1
全网段地址 0.0.0.0
7.socket
# 服务端举例 import socket sk = socket.socket()
sk.bind((''127.0.0.1,9008))
sk.listen() conn,addr = sk.accept()
conn.send('server_test')
msg = conn.recv(1024)
print(msg,addr) conn.close()
sk.close()
# 客户端举例 import socket sk = socket.socket()
sk.connect(('127.0.0.1',9008)) msg = sk.recv(1024)
print(msg)
sk.send('client_test') sk.close() 基于TCP
***********************************************************************************************************************************************
# server端举例 import socket sk = socket.socket(type = socket.SOCK_DGRAM)
sk.bind(('127.0.0.1',9002)) msg,client_addr = sk.recv(1024)
print(msg,client_addr) sk.sendto('你好,已收到'.encode('utf-8'),client_addr) sk.close()
# 客户端举例 import socket sk = socket.socket(type=socket.SOCK_DGRAM) sk.sendto(b'halo,who?where?what?',('127.0.0.1',9002))
msg,server_addr = sk.recvfrom(1024)
print(msg.decode('utf-8'),server_addr) sk.close() 基于UDP
8.网络传输协议 TCP / UDP 特点区别
(1)TCP协议:传递信息前必须先建立连接,在连接的基础上进行信息传递。
a.面向连接
b.可靠:数据完整,不会丢失或重复
c.数据传递长短无限制
d.但是速度慢
(2)UDP协议:不需要建立连接,直接发送和接收。
a.无连接
b.相对不可靠,可能丢失信息
c.数据长短有限制
d.速度快
PS:建立连接:三次握手(第一次A向B发送建立连接请求,第二次B向A发送建立连接回复+建立连接请求,第三次A发送建立连接回复+数据)
断开连接:四次挥手(第一次A向发送断开,第二次B回复A的断开,第三次B向A发送断开,第四次A向B回复断开;中间第二次第三次不可合并,中间可能还存在传输的数据)
过程中的名词缩写:SYN;ACK;FIN
9.OSI七层协议(OSI五层协议)
(1)物理层: 网线等
(2)数据链路层:MAC地址相关 arp协议,二层交换机,网卡
(3)网络层: IP地址相关 ip协议,路由器,三层交换机
(4)传输层: 端口 TCP/UDP传输协议,四层交换机,四层路由器
*************************
(5)会话层
5层--(6)表示层 应用层: python
(7)应用层
************************
python可能会用到的网络基础的更多相关文章
- Python进程间通信和网络基础
Python进程间通信和网络基础 Python支持多种进程间通讯的方式, 有单机通信的signal和mmap等, 也有可以通过网络的socket方式, 这里先介绍select等的有关知识, socke ...
- python基础(29):网络编程(软件开发架构、网络基础、套接字初使用)
1. 软件开发架构 我们了解的程序之间通讯的应用可分为两种: 第一种是应用类:qq.微信.百度网盘.腾讯视频这一类是属于需要安装的桌面应用. 第二种是web类:比如百度.知乎.博客园等使用浏览器访问就 ...
- Python服务器开发 -- 网络基础
Python服务器开发 -- 网络基础 网络由下往上分为物理层.数据链路层.网络层.传输层.会话层.表示层和应用层.HTTP是高层协议,而TCP/IP是个协议集,包过许多的子协议.... 网络由下 ...
- Python服务器开发二:Python网络基础
Python服务器开发二:Python网络基础 网络由下往上分为物理层.数据链路层.网络层.传输层.会话层.表示层和应用层. HTTP是高层协议,而TCP/IP是个协议集,包过许多的子协议.包括: ...
- Python网络编程之网络基础
Python网络编程之网络基础 目录 Python网络编程之网络基础 1. 计算机网络发展 1.1. OSI七层模型 1.2. 七层模型传输数据过程 2. TCP/IP协议栈 2.1 TCP/IP和O ...
- 2.Python爬虫入门二之爬虫基础了解
1.什么是爬虫 爬虫,即网络爬虫,大家可以理解为在网络上爬行的一直蜘蛛,互联网就比作一张大网,而爬虫便是在这张网上爬来爬去的蜘蛛咯,如果它遇到资源,那么它就会抓取下来.想抓取什么?这个由你来控制它咯. ...
- Python爬虫入门二之爬虫基础了解
1.什么是爬虫 爬虫,即网络爬虫,大家可以理解为在网络上爬行的一直蜘蛛,互联网就比作一张大网,而爬虫便是在这张网上爬来爬去的蜘蛛咯,如果它遇到资源,那么它就会抓取下来.想抓取什么?这个由你来控制它咯. ...
- JAVA基础知识之网络编程——-网络基础(Java的http get和post请求,多线程下载)
本文主要介绍java.net下为网络编程提供的一些基础包,InetAddress代表一个IP协议对象,可以用来获取IP地址,Host name之类的信息.URL和URLConnect可以用来访问web ...
- 网络基础四 DNS DHCP 路由 FTP
第1章 网络基础 1.1 IP地址分类 IP地址的类别-按IP地址数值范围划分 IP地址的类别-按IP地址用途分类 IP地址的类别-按网络通信方式划分 1.2 局域网上网原理过程 DHCP原理过程详情 ...
随机推荐
- chrome调试vue.js的插件:vue.js devtools
1.什么是vue.js devtools? vue.js devtools是chrome的一款插件,用来调试vue的一款神器. 2.为什么下载vue.js devtools? 由于vue是数据驱动的, ...
- C#生成树形结构泛型类
C#生成树形结构泛型类,使用方法: ToTree<ShowMessageUpdatesTableTreeViewModel>.ToDo(models) public class ToTre ...
- python入门(十二):面向对象
1.场景:玩过游戏.主人公,进入了一个场景,有10个小怪物是一样的.有攻击力,血(100格).如果小怪物有多个数值需要管理,小怪物的血量.小怪物出现在屏幕的地点. 可以使用字典来进行记录: {&quo ...
- HTML基本入门完成
四. (一)丶下拉框select元素:一般可以创建单选或多选菜单.<select>与<option>一般同时使用,select代表下拉框,option代表他的每一项. 1.基本 ...
- day48 前端高级选择器优先级
复习 1. 基础选择器 标签选择器(div) | 类选择器(.div1) | id选择器(#div2) <div class="div1" id="div2&quo ...
- SQL数据库索引理解与应用【转贴--收藏】
SQL数据库中索引分为聚集索引(CLUSTERED)和非聚集索引(NONCLUSTERED)两种. 聚集索引确定表中数据的物理顺序,它就类似与电话簿,按照姓氏排列数据.由于聚集索引规定数据表中的物理顺 ...
- 理解javascript中的立即执行函数(function(){})()
之前看了好多代码,都有用到这种函数的写法,但是都没认真的去想为什么会这样写,今天开始想学习下jquery的源码,发现jquery也是使用这种方式,用(function(window, undefine ...
- 解决了好几天的关于django xadmin后台增加链接并执行函数的问题
由于xadmin后台封装的完整性,想要在后台做一些改动对于新手来说还是有点困难,目前解决的第一个问题: 在admin后台增加链接,使其改变上级签收状态 如图 点击签收按钮之后,改变其状态 代码展示: ...
- Spring+Quartz集群环境下定时调度的解决方案
集群环境可能出现的问题 在上一篇博客我们介绍了如何在自己的项目中从无到有的添加了Quartz定时调度引擎,其实就是一个Quartz 和Spring的整合过程,很容易实现,但是我们现在企业中项目通常都是 ...
- 将python文件打包成exe可运行文件
https://blog.csdn.net/douzhenwen/article/details/78886244