python网络编程之网络通信过程
该文档仅用作学习笔记,转载请表明出处
UDP广播
- 只有UDP才有广播,TCP没有广播。
- 一台电脑发出的数据,所有电脑可以收到,这就叫广播数据。
- 单播,多播,广播
- 单播:点对点
- 多播:一对多
- 广播 :一对所有
- 使用广播的前提:需要发送广播数据的套接字进行修改设置,否则不能发送广播数据。setsockopu()方法。
- 192.168.1.0 -----》网络号
- 192.168.1.255 -----》广播地址
案例v07: udp广播
'''
udp广播案例
'''
from socket import *
import sys
udpSocket = socket(AF_INET,SOCK_DGRAM)
destAddr = ('<broadcast>',8080)
udpSocket.setsockopt(SOL_SOCKET,SO_BROADCAST,1)
udpSocket.sendto('i love you'.encode(),destAddr)
while True:
print(udpSocket.recvfrom(2048).decode())
udpSocket.close()
Packet Tracer介绍&安装
Packet Tracer介绍
- Packet Tracer是由Cisco(著名网络公司 - 思科)公司发布的一个辅助学习工具。为学习思科网络课程的初学者去设计,配置,排除网络故障提供了网络模拟环境。
- 用户可以在软件的图形用户界面上直接使用拖曳的方式建立网络拓扑,并可提供数据包在网络中行进的详细处理过程,观察网络实时运行情况。
Packet Tracer安装
链接:https://pan.baidu.com/s/1H7GnYQLr4KSXd0U64RaV7w 提取码:dgrz
- 你可以在Packet Tracer官网上直接下载,当然也可以通过上方链接下载
- 安装方法只需要你在 www.baidu.com 上搜索“如何安装Packet Tracer”就可以
两台电脑组网
如图所示:
将ip地址,子网掩码,默认网关分别设置为:
pc0分别ping自己和ping pc1:
网络掩码,3台电脑使用hub组网
- 网络掩码和IP地址按位与得到该主机网络号,网络号相同可以直接通信。
- hub 集线器
如图:
PC0,PC1设置不用改变,将PC2设置成:
此时使用PC3 ping PC1可以ping通:
集线器和交换机
交换机配置的局域网:
arp和icmp
- 两台电脑通信的前提是:在同一网络号内。
- 链接多台电脑的hub集线器有什么作用:实现多台电脑的连接,组成一个小型局域网。
- 集线器和交换机的区别:集线器收到的消息都是广播,交换机有些时候不是广播,效率比较高。
- ping:使用的是icmp协议。
- 实际地址(MAC地址):网卡有一个序列号:前3组表示厂商地址,后3组确定一个厂商中生产的网卡的序列号。(6个字节)
- arp:命令插卡
- mac:地址信息
路由器的作用以及组网
- 路由器又称网关设备是用于连接多个逻辑上分开的网络。
- 所谓逻辑网络是代表一个单词的网络或者一个子网,当数据从一个子网传输到另一个子网时,可通过路由器的路由功能来完成。
- 具有判断网络地址和选择IP路径的功能。
- TCP/IP规定不是一个网络号不可以通信,哪怕距离再近。
- 链接不同网络使之可以通信的设备叫做路由器。
网络通信过程中mac地址以及ip的不同
- mac地址:在两个设备之间通信时在变化(标记实际转发数据时的设备地址)
- ip地址:在整个通信的过程中都不会发生任何变化(标记逻辑上的地址)
- netmask:和ip地址一起来确定网络号
- 默认网关:发送的ip不在同一个网段内,那么就会把这个数据转发给默认网关。
访问百度的过程
- 第一步:先要解析出www.baidu.com对应的ip地址
- 1.先知道默认网关的mac(使用arp获取默认网关的mac地址)
- 2:组织数据发送给默认网关(ip还是DNS服务器的ip,但是mac地址是默认网关的mac地址)
- 3:默认网关拥有转发数据的能力,把数据转发给路由器
- 4:路由器根据自己的路由协议,来选择一个合适的较快的路径,转发数据给目的网管
- 5:目的网关(dns服务器所在的网关),把数据转发给dns服务器。
- 6:dns服务器查询解析出baidu.com对应的ip地址,并把它原路返回给请求域名的客户端。
- 第二步:得到百度对应的ip地址之后,会发送tcp的3次握手,进行连接。
- 第三步:使用http协议发送请求数据给web服务器
- 第四步:web服务器收到数据请求之后,通过查询自己的服务器得到相应的结果原路返回给浏览器
- 第五步:浏览器接收到数据后,通过浏览器自己的渲染功能来显示这个网页
- 第六步:浏览器关闭tcp连接,即四次挥手。