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)

 

posted @ 2020-03-05 19:21  红叶楠木  阅读(259)  评论(0)    收藏  举报