一起学Python:TCP简介
来源:互联网 发布:python源码剖析第二版 编辑:程序博客网 时间:2024/05/17 01:36
一起学Python:TCP简介
TCP介绍
TCP协议,传输控制协议(英语:Transmission Control Protocol,缩写为 TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。
TCP通信需要经过创建连接、数据传送、终止连接三个步骤。
TCP通信模型中,在通信开始之前,一定要先建立相关的链接,才能发送数据,类似于生活中,"打电话""
TCP特点
1. 面向连接
通信双方必须先建立连接才能进行数据的传输,双方都必须为该连接分配必要的系统内核资源,以管理连接的状态和连接上的传输。
双方间的数据传输都可以通过这一个连接进行。
完成数据交换后,双方必须断开此连接,以释放系统资源。
这种连接是一对一的,因此TCP不适用于广播的应用程序,基于广播的应用程序请使用UDP协议。
2. 可靠传输
1)TCP采用发送应答机制
TCP发送的每个报文段都必须得到接收方的应答才认为这个TCP报文段传输成功
2)超时重传
发送端发出一个报文段之后就启动定时器,如果在定时时间内没有收到应答就重新发送这个报文段。
TCP为了保证不发生丢包,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的包发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据包就被假设为已丢失将会被进行重传。
3)错误校验
TCP用一个校验和函数来检验数据是否有错误;在发送和接收时都要计算校验和。
4) 流量控制和阻塞管理
流量控制用来避免主机发送得过快而使接收方来不及完全收下。
TCP与UDP的不同点
面向连接(确认有创建三方交握,连接已创建才作传输。)
有序数据传输
重发丢失的数据包
舍弃重复的数据包
无差错的数据传输
阻塞/流量控制
udp通信模型
udp通信模型中,在通信开始之前,不需要建立相关的链接,只需要发送数据即可,类似于生活中,"写信""
TCP通信模型
udp通信模型中,在通信开始之前,一定要先建立相关的链接,才能发送数据,类似于生活中,"打电话""
==================================================================
注:以上课程笔记为学习时整理的老师课堂学习笔记,如需转载,如需完整笔记,请私聊联系我。
专题Python每天更新我的学习笔记。以上内容整理与上课笔记,更多详情查看原文链接,我的公众号干货持续更新中
原文链接:公众号文章Python开发者交流平台
- 一起学Python:TCP简介
- 一起学Python:tcp服务器
- 跟我一起学Python之四:字符串简介
- 通知,about“一起学python”
- 我们一起学python-helloworld
- 我们一起学python-helloworld2
- 一起学python(一)
- 一起学python(二)
- 一起学python(三)
- 一起学python(四)
- 一起学python(五)
- 一起学python(七)
- 跟我一起学Python之二:变量语句及函数简介
- 一起学docker(1)--简介
- 一起学Python 3.1 控制流语句
- 嗯哇和您一起学python
- 一起学Python 什么是python?(转自“人人网”公共主页“一起学python”)
- 一起学Netty(六)之 TCP粘包拆包场景
- udp绑定信息
- Java中,&&与&,||与|的区别
- maven 多环境配置
- 优化代码空心菱形
- oracle锁告警处理案例
- 一起学Python:TCP简介
- jqgrid 学习资料
- 第二天的学习
- 学习java注解,初试启动springboot项目
- 也来测测javascript拼接字符串不同方法的效率
- 伪对象选择器&&属性选择器
- 循环链表应用之约瑟夫环
- 一起学Python:tcp服务器
- Ubuntu 中英文man手册安装方法