网络基础——基于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-----

posted @ 2020-08-17 12:56  1024bits  阅读(268)  评论(0编辑  收藏  举报