ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python学习笔记18

2020-04-05 20:01:21  阅读:188  来源: 互联网

标签:python 18 笔记 sk 地址 ip 连接 服务端 客户端


python学习笔记18

网络基础概念

MAC地址(物理地址):计算机的唯一标识。

IP地址:IP地址是指互联网协议地址(Internet Protocol Address又称网际协议地址),是IP Address的缩写。IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。

ipv4地址:四位点分十进制数字组成,已经使用枯竭(0.0.0.0~255.255.255.255)

ipv6地址:冒分十六进制表示, 格式为X:X:X:X:X:X:X:X,其中每个X表示地址中的16b,以十六进制表示(如 ABCD:EF01:2345:6789:ABCD:EF01:2345:6789)

查看计算机的IP地址:ipconfig(Windows)、ifconfig(mac)

公网地址:需要申请购买

内网地址:保留字段

  • 192.168.0.0-192.168.255.255
  • 172.16.0.0-172.31.255.255
  • 10.0.0.0-10.255.255.255

特殊的ip地址:127.0.0.1 本地回环地址(测试用)

子网掩码:也是一个ip地址,用来判断两台机器是否在同一个局域网(对计算机子网掩码和ip地址进行按位与运算得出的结果进行比较,相同的局域网下结果一致)。

端口: 设备与外界通讯交流的出口 (0-65535)。

局域网:连接同一个交换机(只识别mac地址,不识别ip地址)的多台计算机形成一个局域网。局域网有广播(交换机将数据发送给所有计算机)、单播(将数据发送给一台计算机)、组播(将数据发送给一部分计算机)功能。一个局域网内的计算机属于一个网段,共用一个网关(网关ip由路由器提供)。当需要与其他局域网通信时,需要通过网关和路由器(识别ip地址)。

arp协议:地址解析协议,通过一台机器的ip地址获取到它的mac地址,需要用到交换机的广播和单播功能。

B/S(Browser-Server)架构和C/S(Client-Server)架构

区别:

  1. 硬件环境不同:

C/S建立在专用网络上,小范围的网络环境,局域网之间再通过专门服务器提供I连接和数据交换服务。

B/S建立在广域网上,不需要专门的网络硬件环境。

  1. 安全要求不同:

C/S一般要求面向固定的用户群,对信息安全控制能力强,一般高度机密的信息系统采用。

B/S建立在广域网上,对安全的掌控能力弱,面向不可知的用户的用户群。

  1. 系统维护不同:

C/S程序由于整体性,必须整体考察,升级困难,多建立在Windows上,表现方法有限,对程序员要求较高。

B/S系统无缝升级,维护开销小,有更加丰富的表现形式,开发难度较低。

  1. 处理问题不同:

C/S处理用户固定,安全要求高,要求相同操作系统。

B/S面向所有用户,分散广,对系统要求小。

使用socket模块实现一个简易的C\S架构

# Server服务端
import socket
sk = socket.socket()
# 设置服务器ip地址以及端口
sk.bind(('127.0.0.1',9011))
# 开始监听访问
sk.listen()
# 存储连接和地址
conn,addr = sk.accept()
# 向连接对象发送信息,只能发送字节流
conn.send(b'hello')
# 接收对方的信息,限定最大信息接收值
msg = conn.recv(1024)
print(msg) # ByeBye
# 断开连接
conn.close()
# 结束整个服务
sk.close()
# Client客户端
import socket
sk = socket.socket()
# 建立连接
sk.connect(('127.0.0.1',9011))
# 接收并打印信息
msg1 = sk.recv(1024)
print(msg1) # hello
# 发送信息
sk.send(b'ByeBye!')
# 关闭连接
sk.close()

OSI模型、TCP协议和UDP协议

OSI模型七层分别是(从底层到高层):物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。

也有将最上三层合并得到的五层模型:

  • 应用层(应用程序数据相关):
  • 传输层(端口相关):TCP协议UDP协议、四层路由器、四层交换机
  • 网络层(ip相关):ipv4协议、ipv6协议、三层路由器、三层交换机
  • 数据链路层(m‘ac地址相关):arp协议、二层交换机、网卡
  • 物理层:

TCP协议

  • 需要建立连接才能进行通信
  • 占用连接,数据传输可靠(数据不会丢失),实时性高,速度慢

建立连接的过程---三次握手:客户端向服务端发送请求连接服务(SYN),服务端向客户端发送确认连接以及请求连接服务(SYN+ACK),最后客户端向服务端发送确认连接服务(ACK)。这样客户端和服务端就建立了一个全双工的通信。

断开连接的过程---四次挥手:客户端向服务端发送最后一条信息(FIN),服务端向客户端发送确认信息(ACK),并断开客户端到服务端的连接;服务端再向客户端发送最后一条信息(FIN),客户端向服务端发送确认信息(ACK),并断开服务端到客户端的连接。(需要四次挥手是因为后断开的一方可能由数据未发送完,需要发送完数据才能断开连接)

UDP协议

  • 不需要建立连接就可以通信
  • 不占用连接,数据传输不可靠,实时性差,速度快

标签:python,18,笔记,sk,地址,ip,连接,服务端,客户端
来源: https://www.cnblogs.com/20-03-14/p/12638748.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有