python 中的UDP和TCP(1)
一、TCP:
TCP是Transmission Control Protocol的简称,中文名传输控制协议。是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP通信需要经过创建连接、数据传输、终止连接三个步骤。通信开始前,一定要先建立相关的链接,才能发送数据。完成数据交换后,双方必须断开链接释放系统资源。
TCP优点:
1、TCP采用发送应答机制
TCP发送的每个报文段都必须得到接收方的应答才认为这个TCP报文段传输成功
2、超时重传
发送端发送一个报文段后就启动定时器,如果在定时时间内没有收到应答就重新发送这个报文段。TCP为了保证不发生丢包,就给每个包一个序号,同时序号也保证了
接收端实体包的按序接收。然后接收端实体对已成功收到的包发回确认;发送端实体在合理返回时延内未收到确认,那么对于的数据包就会被假设丢失,将会被进行重传。
3、错误校验
TCP用一个校验和函数来检验数据是否有错误;在发送和接收时都要计算校验和
4、流量控制和阻塞管理
流量控制用来避免主机发送得过快而使接收方来不及完全收下
二、UDP
UDP是User Datagram Protocol的简称,中文名是用户数据报协议,是一种简单的面向数据表的运输层协议,在网络中用于处理数据报,是一种无连接的协议。UDP不提供可靠连接,只负责把应用程序传给IP层的数据报发送出去,并不能保证它们能达到目的地。由于UDP传输数据报前不用在用户和服务器之间搭建一个连接,且没有重发机制,故而传输速度快。
三、TCP和UDP区别
1、基于连接与无连接
2、TCP要求系统资源较多,UDP比较少
3、UDP程序结构较简单
4、TCP:流模式;UDP:数据报模式
5、TCP保证数据正确性,UDP可能丢包
6、TCP保证数据顺序,UDP不保证
7、TCP首部开销20字节,UDP只有8个字节
8、每一条TCP连接只能是点对点的;UDP支持一对一,一对多,多对一和多对多
下一章写pythonTCP、UDP代码实现
python 中的UDP和TCP(1)的更多相关文章
- TCP/IP协议中的UDP与TCP的区别
TCP面向连接,UDP面向非连接即发送数据前不需要建立链接TCP提供可靠的服务(数据传输),UDP无法保证,它没有TCP的接受确认.窗口等机制,因此也不需要交换控制信息:发生丢包也一概不负责.TCP面 ...
- Python中的UDP协议应用之飞秋应用-单IP版本
UDP协议是无连接的.不稳定的网络通信协议. 通过使用飞秋端口(2425),以及模拟飞秋消息格式实现使用UDP协议对飞秋进行通信. 飞秋通信格式: '1:1000:66:%s:32:%s' 以冒号分割 ...
- Python中的端口协议之基于UDP协议的通信传输
UDP协议: 1.python中基于udp协议的客户端与服务端通信简单过程实现 2.udp协议的一些特点(与tcp协议的比较) 3.利用socketserver模块实现udp传输协议的并 ...
- python中的TCP及UDP
python中是通过套接字即socket来实现UDP及TCP通信的.有两种套接字面向连接的及无连接的,也就是TCP套接字及UDP套接字. TCP通信模型 创建TCP服务器 伪代码: ss = sock ...
- Python中Socket编程(TCP、UDP)
1. TCP协议下的如何解决粘包问题 TCP(transport control protocol 传输控制协议) 使用Nagle算法,将多次间隔较小且数据量小的数据,合并成大的数据块:接受端无法识 ...
- python中TCP协议中的粘包问题
TCP协议中的粘包问题 1.粘包现象 基于TCP实现一个简易远程cmd功能 #服务端 import socket import subprocess sever = socket.socket() s ...
- python中的tcp
目录 TCP简介 TCP介绍 TCP特点 TCP与UDP的不同点 udp通信模型 TCP通信模型 tcp客户端 tcp服务器 tcp注意点 TCP简介 TCP介绍 TCP协议,传输控制协议(英语:Tr ...
- python中TCP粘包问题解决方案
TCP协议中的粘包问题 1.粘包现象 基于TCP写一个远程cmd功能 #服务端 import socket import subprocess sever = socket.socket() seve ...
- Python基础教程之udp和tcp协议介绍
Python基础教程之udp和tcp协议介绍 UDP介绍 UDP --- 用户数据报协议,是一个无连接的简单的面向数据报的运输层协议.UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但 ...
随机推荐
- 从软件工程师的角度看MacBook Air的几个设计亮点
我多年从事软件开发和运营工作,从未跟“设计”间断过.现在在设计一个全新saas产品:超级表格(www.domypp.com).最近买了台苹果最新款的笔记本电脑MacBook Air,从该产品功能设计和 ...
- mvc4站点支持.html
MVc站点在配置通配符后,还需要配置这个才能支持.html.在自定义的路由中加入.自定义代码就可以支持子定义的html了.
- 移动端调试工具weinre
前段时间在大豹公众号上看到一个关于移动端调试的工具,了解了一下,确实不错. npm install -g weinre 先全局安装,然后使用的时候通过如下命令启动 weinre --boundHost ...
- C++ 数据库 char 转 wchar_t SQLWCHAR
C++中对数据库的操作感觉太复杂了,不如C#好使,但最近出于某些原因还是学习了一下C++下操作数据库的方法. 如果要想用C++实现对数据库的操作其实很简单,但是如果你需要动态的操作数据库(比如获得用户 ...
- 如何使用Kubernetes的configmap通过环境变量注入到pod里
在Kubernetes官网里,有这样一篇文章,提到了Kubernetes里的一个最佳实践就是把应用代码同配置信息分开,一种方式就是使用Kubernetes 1.2里引入的configmap概念. ht ...
- Android Studio常用快捷键、Android Studio快捷键大全
Android Studio 是谷歌基于IntelliJ IDEA开发的安卓开发工具,有点类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调 ...
- Zookeep启动异常:Error contacting service. It is probably not running.
异常提示: [root@hadoop bin]# ./zkServer.sh status JMX enabled by default Using config: /usr/local/zk/bin ...
- samb共享
1. 2. 3. ssh root@192.168.10.1 cd /etc smbpasswd -a root 在提示下创建新密码即可 4. 在Mac下的finder内使用快捷键command + ...
- 【luogu P3384 树链剖分】 模板
题目链接:https://www.luogu.org/problemnew/show/P3384 诶又给自己留了个坑..不想写线段树一大理由之前的模板变量名太长 #include <cstdio ...
- 阻止vue事件冒泡的方法