tcp 与udp 的区别
1.TCP和UDP对比
TCP(Transmission Control Protocol)可靠的、面向连接的协议(eg:打电话)、传输效率低全双工通信(发送缓存&接收缓存)、面向字节流。使用TCP的应用:Web浏览器;文件传输程序。
UDP(User Datagram Protocol)不可靠的、无连接的服务,传输效率高(发送前时延小),一对一、一对多、多对一、多对多、面向报文(数据包),尽最大努力服务,无拥塞控制。使用UDP的应用:域名系统 (DNS);视频流;IP语音(VoIP)。
TCP和UDP下socket差异对比图:
2.TCP详解
服务端示例
1 import socket 2 sk = socket.socket() 3 sk.bind(('127.0.0.1',8898)) #把地址绑定到套接字 4 sk.listen() #监听链接 5 conn,addr = sk.accept() #接受客户端链接 6 ret = conn.recv(1024) #接收客户端信息 7 print(ret) #打印客户端信息 8 conn.send(b'hi') #向客户端发送信息 9 conn.close() #关闭客户端套接字 10 sk.close() #关闭服务器套接字
客户端示例
import socket sk = socket.socket() # 创建客户套接字 sk.connect(('127.0.0.1',8898)) # 尝试连接服务器 sk.send(b'hello!') ret = sk.recv(1024) # 对话(发送/接收) print(ret) sk.close() # 关闭客户套接字
TCP三次握手流程:
一次挥手:客户端发送连接请求报文SYN = 1 ,seq=x
二次挥手:服务端发送确认报文,同时请求连接客户端 SYN =1, ACK = 1, ack = x+1, seq = y
三次挥手:客户端发送确认报文: ACK = 1,ack = y+1, seq = x+1,连接建立成功
TCP断开连接的四次挥手
一次挥手: 客户端向服务器发送连接释放报文,并且停止发送数据
二次挥手: 服务器发出确认报文,同意连接释放
客户端等待服务器发出连接释放报文
三次挥手:服务器向客户端发送连接释放报文,并且停止发送数据
四次挥手: 客户端发出确认报文, SYN = 1,同时开启 时间等待计时器,等待2倍最长报文段寿命,
若服务端没接收到客户端发回的报文,则服务端率先进入closed状态,若服务端没有接收到客户端发来的确认报文,
,则一段时间后服务端会超时重发(即重新进行步骤3和4)
为什么建立连接需要3次握手
3 udp实例
服务端示例
import socket udp_sk = socket.socket(type=socket.SOCK_DGRAM) #创建一个服务器的套接字 udp_sk.bind(('127.0.0.1',9000)) #绑定服务器套接字 msg,addr = udp_sk.recvfrom(1024) print(msg) udp_sk.sendto(b'hi',addr) # 对话(接收与发送) udp_sk.close() # 关闭服务器套接字
客户端示例
import socket ip_port=('127.0.0.1',9000) udp_sk=socket.socket(type=socket.SOCK_DGRAM) udp_sk.sendto(b'hello',ip_port) back_msg,addr=udp_sk.recvfrom(1024) print(back_msg.decode('utf-8'),addr)
转载于:https://www.cnblogs.com/Arvin2018/p/10009400.html
tcp 与udp 的区别相关推荐
- TCP和UDP的区别(转)
TCP协议与UDP协议的区别 首先咱们弄清楚,TCP协议和UCP协议与TCP/IP协议的联系,很多人犯糊涂了,一直都是说TCP/IP协议与UDP协议的区别,我觉得这是没有从本质上弄清楚网络通信 ...
- 5.TCP和UDP的区别
定义:TCP(Transmission ControlProtocol 传输控制协议)是一种面向连接的.可靠的.基于字节流的传输层通信协议,由IETF的RFC 793定义.在简化的计算机网络OSI模型 ...
- tcp和udp的区别和三次 四次挥握手 http://www.cnblogs.com/bizhu/archive/2012/05/12/2497493.html...
小结TCP与UDP的区别: 1.基于连接与无连接: 2.对系统资源的要求(TCP较多,UDP少): 3.UDP程序结构较简单: 4.流模式与数据报模式 : 5.TCP保证数据正确性,UDP可能丢包,T ...
- 【转】TCP和UDP的区别
TCP协议与UDP协议的区别 首先咱们弄清楚,TCP协议和UDP协议与TCP/IP协议的联系,很多人犯糊涂了, 一直都是说TCP协议与UDP协议的区别,我觉得这是没有从本质上弄清楚网络通信! TCP/ ...
- udp 使用connect优点_一文搞懂TCP和UDP的区别
TCP(Transmission Control Protocol,传输控制协议)和UDP(User Data Protocol ,用户数据报协议)都属于TCP/IP协议簇.TCP/IP协议集包括了超 ...
- TCP和UDP的区别(Socket)
TCP和UDP区别 TCP和UDP编程区别 TCP编程的服务器端一般步骤是: 1.创建一个socket,用函数socket(): 2.设置socket属性,用函数setsockopt(); * 可选 ...
- 网络通信tcp与udp的区别
tcp与udp的区别 网络udp概述 UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议.一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务.类似于日常生 ...
- TCP/IP的初步理解,TCP和UDP的区别
1.什么是TCP/IP协议 TCP/IP协议是一个协议簇.里面包括很多协议的.UDP只是其中的一个.之所以命名为TCP/IP协议,因为TCP,IP协议是两个很重要的协议,就用他俩命名了. TCP/IP ...
- 传输层协议TCP和UDP的区别详解
一.TCP协议 1.TCP的优点: 可靠,稳定 TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认.窗口.重传.拥塞控制机制,在数据传完后,还会断开连接用来节约系 ...
- TCP和UDP的区别有哪些
TCP和UDP的区别有哪些 传输层协议主要有TCP与UDP. UDP:提供无连接的通信,不能保证数据包被发送到目的地址,典型的即时传输少量数据的应用程序使用UDP TCP:面向连接的.可靠地.基于字节 ...
最新文章
- 一气发了3个patch
- Html中的次方符号怎么写
- selenium:反反爬拖动验证码
- 【渝粤教育】21秋期末考试个人与团队管理10257k2
- java 防止sql xxs注入,Java-JSP网站 防SQL注入,防XSS等攻击有什么好的处理办法?...
- Vue.js 基础学习
- Module build failed: Error: Couldn't find preset react relative to directory
- c语言起点到目的地方法数,最短路径动态规划问题及C语言实现探讨
- python中的round()函数
- 变态java面试题一览
- 企业即时通讯软件提高工作效率的三个要点
- 以色列顶级货运公司Zim向所有客户开放区块链平台
- p4vasp的linux版,科学网-p4vasp on Linux-单光存的博文
- 非隔离DCDC变换器的CCM分析
- python统计各省大学数_“双一流”大学各省分布情况统计
- ContentProvider解析-获取ContentProvider接口
- Word中 Go to endnote 出现闪退问题解决办法
- PDF转EXCEL,分享几个免费的方法给大家!
- 浮动QQ在线客服amp;网站QQ在线咨询
- 2021年机械式停车设备司机考试题及机械式停车设备司机考试资料
热门文章
- rabbitMQ实例(java)
- scikit-learn入门到精通(二):seting和estimator
- 大话深度残差网络(DRN)ResNet网络原理
- 型臂x线机结构图解_织女必备 | 从入门到高级的毛衣编织图解,这里全都有!...
- must implement OnFragmentInteractionListener/ Fragment与Activity,Fragment与Fragment之间的信息传递
- 大数据基础知识(上)
- 读我们的学科——计算机专业学习浅谈
- 英孚教育APP应用获全球杰出商业银奖
- python中将科学计数法转数字
- 安装部署WSUS服务器