python学习Day29--网络基础知识
【知识点】
1、网络基础知识
(1)架构
① C/S架构:client客服端和server服务器端
优点:能充分发挥PC机的性能
② B/S架构:browser浏览器和server服务器,隶属于C/S架构
优点:统一了应用的接口。
(2)通信
① 同一台电脑上两个py程序通信:打开一个文件
② 两个电脑如何通讯:连一根网线
③ 多个电脑通信:交换机
知识点:
① mac地址——物理地址,唯一性;
② IP地址——四位点分十进制,标识计算机在网络中的位置
③ arp协议——让目标IP地址获取目标mac地址的一个协议
④ 端口——操作系统为本机上每一个运行的程序都随机分配一个端口,其他电脑上的程序可以通过端口获取到这个程序
⑤ 路由器——连接不同网段,路由
⑥ 网关——类似一个局域网的出口和入口
⑦ 网段——一个局域网内的ip地址范围
⑧ 子网掩码——子网掩码&ip地址,得到网段
【面试题】路由器与交换机的区别?
https://m.tianqi.com/toutiao/keji/50048.html
交换机的主要功能是:组织局域网。经过交换机内部处理解析信息之后,将信息以点对点,点对多的形式发送给固定端。
路由器的主要功能:进行跨网段进行数据传输,路由器选择最佳路径。
如果你需要将多台电脑连接到一根网线,用交换机即可。
如果你有一个外网IP,但是你有好多台电脑需要上网,用路由器即可。
2、socket(又名套接字)
【补充】:
osi 五层模型:
互联网协议的逻辑划分:应用层、传输层、网络层、数据链路层、物理层
每层运行常见物理设备:

每层运行常见的协议:

(1)socket层

(2)socket模块
这是一个新的模块,import socket
有很多种类型,掌握以下两种就好:
① AF_UNIX 基于文件类型的套接字(早起socket是源于unix系统而研发的一个功能,主要是为了同一台电脑上,多个程序直接通信)
② AF_INET 基于网络类型的套接字
3、TCP协议和UDP协议
(1)tcp:可靠的、面向连接的协议(eg:打电话)。传输效率低全双工通信、面向字节流。
使用tcp协议的应用:Web浏览器;电子邮件;文件传输程序。
(2)udp:不可靠的、无连接的服务,传输效率高(发送前时延小),一对一、一对多、多对一、多对多、面向报文,尽最大努力服务,无拥塞控制。
使用udp的应用:域名系统(DNS);视频流;IP语音(VoIP)。
(3)服务器与客服端
1 # **************服务器************** 2 import socket 3 import time 4 5 sk=socket.socket() # 不传参数,默认使用基于网络类型的套接字 6 7 sk.bind(('192.168.1.26',18090)) # 端口的范围是0~65535,但是0~1023别用 8 sk.listen() # 同时能接受的连接 9 10 conn,addr=sk.accept() # 等待接受客服端的连接 阻塞等待 11 12 print('conn:%s' % conn) 13 print("addr:%s" % type(addr)) 14 msg=conn.recv(20) # 接收 大小限制20的内容 15 print(msg.decode('utf-8')) # 中文 16 17 time.sleep(20) 18 19 conn.close() 20 sk.close() 21 22 23 # *************客服端*************** 24 import socket 25 import time 26 27 sk = socket.socket() 28 29 sk.connect(("192.168.1.26",18090)) 30 sk.send('中文'.encode('utf-8')) 31 32 time.sleep(20)
【注意】另一种基于文件类型的套接字udp协议:sk=socket.socket(family=AF_UNIX , type=SOCK_STREAM)

浙公网安备 33010602011771号