网络基础——基于udp协议的套接字通信
一、基于udp协议的套接字通讯
udp协议server
# TCP VS UDP协议 # 1、可靠性 # tcp协议是可靠协议: # 对方必须回复一个ack确认信息,才会将自己这端的数据从内存中删除 # udp协议不可靠: # 发送一条消息就会立即删除,不管对方是否接收到 # 2、有无链接 # tcp有链接,udp无链接 # 3、传输数据的效率 # udp更高 # 4、粘包问题 # udp协议称之为数据报协议,每次发送都是一个完整的数据报,一个发送唯一对应一个接收 # 所以udp协议没有粘包问题 from socket import * import time server = socket(AF_INET, SOCK_DGRAM) server.bind(('127.0.0.1', 8080)) while True: data, client_addr = server.recvfrom(1024) time.sleep(10) server.sendto(data.upper(), client_addr)
udp协议client
from socket import * client = socket(AF_INET, SOCK_DGRAM) while True: msg = input('>>: ').strip() client.sendto(msg.encode("utf-8"), ('127.0.0.1', 8080)) data, server_addr = client.recvfrom(1024) print(data.decode('utf-8'))
DNS地址不在局域网内 www.baidu.com 二级 顶级 分级查询:不需要存那么多IP地址,分摊压力,保证了域名了唯一性 DNS有缓存机制 申请一个域名: 域名跟公网IP关联,同步到dns, https://www.cnblogs.com/linhaifeng/articles/5937962.html#_label14 递归查询, 找同级别的DNS 迭代查询, DNS的查询过程走的就是UDP协议,最大不能超过512个字节。 时间同步问题: NTP服务器(时间服务器) 集群化作业对时间非常重要 在linux系统上安装好服务器都要跟阿里云服务器对时间 加机器,防止单点故障 #编写UDP协议的通讯 tcp必须先启动服务端 UDP可以发空,但可以收到小元组有IP地址,TCP不行 UDP不能并发,只能处理完一个再处理下一个 #基于socketserve模块 安全组:就是网络防火墙
-----33-----