美文网首页
python-tcp/ip网络编程认识(四)

python-tcp/ip网络编程认识(四)

作者: 叩丁狼教育 | 来源:发表于2018-12-05 17:25 被阅读9次

本文作者:黎智煊,叩丁狼高级讲师。原创文章,转载请注明出处。

udp的介绍

前面我们说了很多的知识都是关于tcp的知识点,但是,其实与tcp相对来说不同的还有就是也是非常重要的udp了.

  1. UDP --- 用户数据报协议

是一个无连接的简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。

  1. UDP是一种面向无连接的协议

每个数据报都是一个独立的信息,包括完整的源地址或目的地址,它在网络上以任何可能的路径传往目的地,因此能否到达目的地,到达目的地的时间以及内容的正确性都是不能被保证的。

  1. UDP特点:

UDP是面向无连接的通讯协议,UDP数据包括目的端口号和源端口号信息,由于通讯不需要连接,所以可以实现广播发送。 UDP传输数据时有大小限制,每个被传输的数据报必须限定在64KB之内。 UDP是一个不可靠的协议,发送方所发送的数据报并不一定以相同的次序到达接收方。

【适用情况】

UDP是面向消息的协议,通信时不需要建立连接,数据的传输自然是不可靠的,UDP一般用于多点通信和实时的数据业务,比如

  • 语音广播
  • 视频
  • QQ
  • TFTP(简单文件传送)
  • SNMP(简单网络管理协议)
  • RIP(路由信息协议,如报告股票市场,航空信息)
  • DNS(域名解释)

注重速度流畅

UDP操作简单,而且仅需要较少的监护,因此通常用于局域网高可靠性的分散系统中client/server应用程序。例如视频会议系统,并不要求音频视频数据绝对的正确,只要保证连贯性就可以了,这种情况下显然使用UDP会更合理一些。

平时我们可以利用unix/linux/window系统里面自带的netstat工具可以捕获到tcp通信的一些信息
那么,我们在linux里面,可以通过tcpdump udp这个命令去查看本机的udp通信情况.

叩丁狼教育.png 还有就是,我们的DNS解析,会用大量的udp去通讯. 叩丁狼教育.png

现在,介绍之前介绍的socket编程,里面讲到的type里面有两种类型,

Type:套接字类型

  1. 可以是 SOCK_STREAM(流式套接字,主要用于 TCP 协议
  2. SOCK_DGRAM(数据报套接字,主要用于 UDP 协议

udp网络程序-发送数据

创建一个udp客户端程序的流程是简单,具体步骤如下:

  1. 创建客户端套接字
  2. 发送/接收数据
  3. 关闭套接字


    叩丁狼教育.png

下面再用一些代码进行一些说明.
代码如下:


from socket import *

#1. 创建套接字
udpSocket = socket(AF_INET, SOCK_DGRAM)

#2. 准备接收方的地址
sendAddr = ('localhost', 8080)

#3. 从键盘获取数据
sendData = input("请输入要发送的数据:")

#4. 发送数据到指定的电脑上
udpSocket.sendto(sendData, sendAddr)

#5. 关闭套接字
udpSocket.close()

然后利用linux/unix系统自带的tcpdump可以捕获一些信息


叩丁狼教育.png

里面这个命令可以查看接收到的内容sudo tcpdump -s 0 -X "udp port 8080"

叩丁狼教育.png

想获取更多技术干货,请前往叩丁狼官网:http://www.wolfcode.cn/all_article.html

相关文章

  • python-tcp/ip网络编程认识(四)

    本文作者:黎智煊,叩丁狼高级讲师。原创文章,转载请注明出处。 udp的介绍 前面我们说了很多的知识都是关于tcp的...

  • python-tcp/ip网络编程认识(三)

    本文作者:黎智煊,叩丁狼高级讲师。原创文章,转载请注明出处。 socket简介 介绍 socket起源于Unix,...

  • python-tcp/ip网络编程-网络调试助手的使用

    本文作者:黎智煊,叩丁狼高级讲师。原创文章,转载请注明出处。 网络调试助手的使用 俗话说,好马配好鞍,今天我们来简...

  • socket通讯编程

    这一块属于网络编程,主要是学习TCP/IP四层的网络体系结构,学习TCP编程和UDP编程。 java.net中 一...

  • s9python网络编程

    python之路——网络编程计算机网络ftp作业 网络编程 mac地址 arp协议:通过ip地址找mac地址 ip...

  • Python网络编程 —— IP、UDP

    Python网络编程 —— IP、UDP IP ip地址: 在网络中标识一台唯一的设备 ip地址的作用: 通过ip...

  • 网络编程(四)IP协议-上

    IP(Internet Protocol,网际协议)。IP作为整个TCP/IP中至关重要的协议,主要负责将数据包发...

  • python-网络编程-tcp/ip认识(一)

    本文作者:黎智煊,叩丁狼高级讲师。原创文章,转载请注明出处。 互联网的认识 首先来了解一下最早的互联网的背景. 互...

  • python-网络编程-tcp/ip认识(二)

    本文作者:黎智煊,叩丁狼高级讲师。原创文章,转载请注明出处。 端口 1 什么是端口 那么TCP/IP协议中的端口指...

  • 安卓网络编程系列

    1.网络编程系列第(一)篇---TCP/IP 第一篇主要介绍TCP/IP协议组 2.网络编程系列第(二)篇---h...

网友评论

      本文标题:python-tcp/ip网络编程认识(四)

      本文链接:https://www.haomeiwen.com/subject/yfpwcqtx.html