TCP协议和UDP协议基础介绍
TCP协议和UDP协议区别
标签(空格分隔): TCP,udp
TCP的三次握手
TCP被称为可靠的数据传输协议,主要是通过许多机制来实现的其中最主要的就是三次握手的功能,当然,TCP传送数据的机制非常复杂,有兴趣的朋友请自行参考相关的网络书籍,那么如何利用TCP的包头来确认这个数据包已经被对方接收,并进一步对方的主机实现连接?我们以图说明:

在上边的数据包连接的过程中,必须经过三次确认的动作,所以这种连接方式也被称为三次握手(Tree-way handshake)那么我们将上边的步骤分为:A,B,C,D四个阶段来说明;
- A:数据包发起:
- B:数据包接受也确认数据包传输:
- C:回送确认数据包:
- D:取得最后的确认:
若一切顺利,就能建立真正的连接了;
也就是说你必须了解“网络是双向的”这个事实,所以不论是客户端还是服务端都必须通过一次SYN和ACK来建立连接,所以总共进行三次交谈!在设定的防火墙或者是追踪网络连接的问题时,这个“双向”的概念是最容易忽略的,而且常常导致无法成功连接的问题;
- 如下例子模拟三次握手:
有人问:***你在吗?
回答:在的,你在吗?
对方回答:在的
此时两个人确认彼此都可以听到对方的时候,就可以建立可靠的连接了;
无连接的UDP的协议:
UDP的全称是即:用户数据报协议,UDP和TCP不一样,UDP不提供可靠的传输模式,因为它不是面向连接的机制,这是因为在UDP的传送过程中,接收端在接收导数据包之后,不会回复响应数据包(ACK)给发送端,所以数据包并不像TCP有较为严密的检查机制;
TCP的数据包确实是比较可靠的,因为通过三次握手,不过,也由于三次握手的缘故,TCP数据包的传输速度会非常的慢,至于UDP数据包由于不需要确认对方是否正确的收到数据,故报头数据较少,所以UDP就可以在data 处填充更多的数据,同时UDP比较适合需要实施反映一些数据流,例如影向实时传输软件等等,就可以实用这类的数据包传输,也就是UDP的传输并不考虑连接要求,连接终止与流量控制等特性,所以适合的场景是:当数据的正确性要求不是很重要的时候,例如:网络摄影机;
另外的很多的软件提供了TCP和UDP的传输协议的,举例来说,查看主机的名字DNS服务就同时提供了TCP和UDP协议,由于UDP较为快速,所以我们的client端可以先使用UDP来与服务器连接,但是当使用UDP连接却还是无法取得正确的数据时,便转换为较为可靠的TCP协议来传输了,这样可以同时兼顾快速和可靠的传输;
- :例子:上课的时候老师一直讲很多的东西,不管同学听不听他都一直讲,也不需要学生的响应,就一直讲,这就是UDP协议
TCP协议和UDP协议基础介绍的更多相关文章
- python语法基础-网络编程-TCP协议和UDP协议
############### 网络编程 ############## """ 网络编程 学习了Python基础之后,包括函数,面向对象等,你就可以开发了,你 ...
- python 全栈开发,Day33(tcp协议和udp协议,互联网协议与osi模型,socket概念,套接字(socket)初使用)
先来回顾一下昨天的内容 网络编程开发架构 B/S C/S架构网卡 mac地址网段 ip地址 : 表示了一台电脑在网络中的位置 子网掩码 : ip和子网掩码按位与得到网段 网关ip : 内置在路由器中的 ...
- (1)基于tcp协议的编程模型 (2)tcp协议和udp协议的比较 (3)基于udp协议的编程模型 (4)反射机制
1.基于tcp协议的编程模型(重中之重)1.1 编程模型服务器: (1)创建ServerSocket类型的对象,并提供端口号: (2)等待客户端的连接请求,调用accept()方法: (3)使用输入输 ...
- (1)网络编程的常识 (2)基于tcp协议的编程模型 (3)tcp协议和udp协议的比较 (4)基于udp协议的编程模型
1.网络编程的常识 目前主流的网络通讯软件有:微信.QQ.YY.陌陌.探探.飞信.阿里旺旺.... 在吗? 1.1 七层网络模型(熟悉) 为了保证数据传递的可靠安全等等,ISO(国际标准委员会组织)将 ...
- python基础-TCP协议和UDP协议
TCP协议是一种流式协议,UDP协议是一种数据包协议. TCP和UDP是OSI模型中传输层的协议.TCP提供可靠的通信传输,而UDP则常被用于让广播和细节控制交给应用的通信传输. TCP和UDP区别总 ...
- TCP协议和UDP协议的区别
1. TCP协议面向连接. UDP协议面向非连接 (有无链接)2. TCP协议传输速度慢. UDP协议传输速度快 (传输速度)3. TCP协议保证数据顺序. UDP协议不保证 (数据的有序性. 在IP ...
- TCP协议和UDP协议下的socket
UDP协议的服务端和客户端: ##udp_服务端 import socket udp_server = socket.socket(type=socket.SOCK_DGRAM)#选择udp协议 ip ...
- tcp协议和udp协议的使用场景
一:什么是TCP(Transmission Control Protocol,传输控制协议) tcp是面向连接的协议,也就是说,在收发数据前,必须和对方建立可靠的连接.一个TCP连接必须要经过三次 ...
- TCP协议和UDP协议区别
tcp协议:可靠的.面向连接的协议(eg:打电话).传输效率低全双工通信(发送缓存&接收缓存).面向字节流.使用TCP的应用:Web浏览器:文件传输程序 udp协议:不可靠的.无连接的服务,传 ...
随机推荐
- 【Angular】——TypeScript之胖箭头(=>)函数
前言:胖箭头(=>)函数是一种快速书写函数的简介语法. ES5和TypeScript比较:在ES5中,每当我们要用甘薯作为方法参数时,都必须用function关键字和紧随其后的花括号({})表示 ...
- DockerToolbox在Win7上的安装和设置
为什么使用Docker Toolbox Docker在Windows上使用有两种方式,一是利用VirtualBox建立linux虚拟机,在linux虚拟机中安装docker服务端和客户端,二是利用Wi ...
- django 的后台管理
class bcb(models.Model): name = models.CharField(max_length=64,verbose_name='班次名称') verbose_name = ' ...
- maven项目pom.xml添加main启动类
pom.xml配置添加main启动类: <build> <finalName>MyApp</finalName> <!-- 最终package打包的jar名称 ...
- [UE4]AttachToComponent的AttachmentRule
官方文档 KeepRelative 将当前相对转换保持为新父级的相对转换 KeepWorld 自动计算相对变换,使附着的组件保持相同的世界变换 SnapToTarget 捕捉转换到附着点
- ZooKeeper是按照CP原则构建的,不适合做Service服务发现
一.cap 分布式领域中存在CAP理论,且该理论已被证明:任何分布式系统只可同时满足两点,无法三者兼顾. ①C:Consistency,一致性,数据一致更新,所有数据变动都是同步的. ②A:Avail ...
- python 简单图像识别--验证码
python 简单图像识别--验证码 记录下,准备工作安装过程很是麻烦. 首先库:pytesseract,image,tesseract,PIL windows安装PIL,直接exe进行安装更方便( ...
- Spring-MVC配置思路
前言: Spring-mvc是一个解决页面代码和后台代码分离的框架. 在没有配置servlet在服务器启动时就创建被创建时,总是当请求过来了servlet对象才会被创建 因此先从请求开始. 为了给每一 ...
- Quartus Linux usbblaster
In path: /etc/udev/rules.d adding file: 51-usbblaster.rules $ pwd/etc/udev/rules.d$ ls -lZ 51-usbbla ...
- 2019年1月16日22:50:28 白糖SR1905
很好的机会,只拿了点皮毛,如果说都是因为上班时间不充裕那是给自己找借口,最主要原因没别的:思维不清,策略不明- 这里的入场初衷是周线区间下沿,日线向下脱离中枢失败后回拉一笔,那么这一单的做法就应该很明 ...