一、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)的更多相关文章

  1. TCP/IP协议中的UDP与TCP的区别

    TCP面向连接,UDP面向非连接即发送数据前不需要建立链接TCP提供可靠的服务(数据传输),UDP无法保证,它没有TCP的接受确认.窗口等机制,因此也不需要交换控制信息:发生丢包也一概不负责.TCP面 ...

  2. Python中的UDP协议应用之飞秋应用-单IP版本

    UDP协议是无连接的.不稳定的网络通信协议. 通过使用飞秋端口(2425),以及模拟飞秋消息格式实现使用UDP协议对飞秋进行通信. 飞秋通信格式: '1:1000:66:%s:32:%s' 以冒号分割 ...

  3. Python中的端口协议之基于UDP协议的通信传输

    UDP协议: 1.python中基于udp协议的客户端与服务端通信简单过程实现 2.udp协议的一些特点(与tcp协议的比较)        3.利用socketserver模块实现udp传输协议的并 ...

  4. python中的TCP及UDP

    python中是通过套接字即socket来实现UDP及TCP通信的.有两种套接字面向连接的及无连接的,也就是TCP套接字及UDP套接字. TCP通信模型 创建TCP服务器 伪代码: ss = sock ...

  5. Python中Socket编程(TCP、UDP)

    1. TCP协议下的如何解决粘包问题 TCP(transport control protocol 传输控制协议)  使用Nagle算法,将多次间隔较小且数据量小的数据,合并成大的数据块:接受端无法识 ...

  6. python中TCP协议中的粘包问题

    TCP协议中的粘包问题 1.粘包现象 基于TCP实现一个简易远程cmd功能 #服务端 import socket import subprocess sever = socket.socket() s ...

  7. python中的tcp

    目录 TCP简介 TCP介绍 TCP特点 TCP与UDP的不同点 udp通信模型 TCP通信模型 tcp客户端 tcp服务器 tcp注意点 TCP简介 TCP介绍 TCP协议,传输控制协议(英语:Tr ...

  8. python中TCP粘包问题解决方案

    TCP协议中的粘包问题 1.粘包现象 基于TCP写一个远程cmd功能 #服务端 import socket import subprocess sever = socket.socket() seve ...

  9. Python基础教程之udp和tcp协议介绍

    Python基础教程之udp和tcp协议介绍 UDP介绍 UDP --- 用户数据报协议,是一个无连接的简单的面向数据报的运输层协议.UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但 ...

随机推荐

  1. eclipse中手动设置library,选择编译工具方法

    target=android-25sdk.buildtools=25.0.2 target=android-26android.library=falseandroid.library.referen ...

  2. mybatis3 step by step 快速上手

    作者:Panda Fang 出处:http://www.cnblogs.com/lonkiss/p/6895617.html 原创文章,转载请注明作者和出处,未经允许不可用于商业营利活动 官方网站 h ...

  3. 创建Spark镜像文件

    创建Spark镜像文件 1.将spark容器提交到新的镜像中 $>docker commit 01a25bdf1499 myrepos:centos-spark 2.将centos-spark镜 ...

  4. aws查看官方centos镜像imageid

    aws ec2 describe-images --owners aws-marketplace --filters Name=product-code,Values=aw0evgkw8e5c1q41 ...

  5. 再学UML-深入浅出UML类图(五)

    实例分析3——售票机控制程序 某运输公司决定为新的售票机开发车票销售的控制软件.图I给出了售票机的面板示意图以及相关的控制部件. 图I   售票机面板示意图 售票机相关部件的作用如下所述: (1) 目 ...

  6. 一点一点学写Makefile(2)-自动搜所当前目录下的所有源文件

    上个博客我们使用的是笨方法添加源文件,本次我要实现的是遍历文件夹来获得所有的cpp文件 //makefile CROSS = CC = $(CROSS)gcc CXX = $(CROSS)g++ DE ...

  7. C语言 数组的使用

    #include <stdio.h> // 数组的定义和存储 void test1() { ]; // 64bit环境下占用4*5=20个字节 // 计算数组占据的存储空间 // size ...

  8. bootstrapTable refresh 方法使用简单举例

    本文就bootstrapTable refresh 方法如何传递参数做简单举例说明. 下面代码中,一个table,一个button,单击button会触发刷新表格操作. <!DOCTYPE ht ...

  9. Haskell 与范畴论-函子、态射、函数

    范畴论基本概念 如果你是第一次听说范畴论(category theory),看到这高大上的名字估计心里就会一咯噔,到底数学威力巨大,光是高等数学就能让很多人噩梦连连.和搞编程的一样,数学家喜欢将问题不 ...

  10. expected expression __bridge

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/u013020103/article/details/30491117 expected expres ...