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协议:不可靠的.无连接的服务,传 ...
随机推荐
- python基础知识1---python相关介绍
阅读目录 一 编程与编程语言 二 编程语言分类 三 主流编程语言介绍 四 python介绍 五 安装python解释器 六 第一个python程序 七 变量 八 用户与程序交互 九 基本数据类型 十 ...
- maven编译下载源码
下载源码 mvn dependency:sources 跳过TEST mvn -DskipTests
- HP880G3 安装RHEL6.5
###关于读不到网卡驱动的问题 HP 880G3 在安装系统的时候会提示acpi错误 需要按F9 选择 lency开头走U盘安装系统 进入安装界面按tab 输入 acpi=off 这样就可以安装了 ...
- Oracle 巡检命令
[grid@XXXXX ~]$ asmcmd -pASMCMD [+] > lsdg
- MemCache在网站中的使用
MemCache安装好后,网站一直没法使用,后来查找资料,发现需要在配置文件里写几行代码,如下所示 <enyim.com> <memcached protocol="Tex ...
- NLP一些工程应用模型
发现一个DL的博客,对文章分类归纳做的比较好:第三篇文章中的模型可以重点参考 “自然语言学习资料的汇总” 综述 | 一文读懂自然语言处理NLP(附学习资料) 用深度学习(CNN RNN Attenti ...
- ntp服务
ntp服务主要是用于对计算机的时间同步管理操作.时间是对服务器来说是很重要的,一般很多网站都需要读取服务器时间来记录相关信息,如果时间不准,则可能造成很大的影响,对于集群,也需要时间同步. 部署安装N ...
- Android Jetpack 组建介绍(一)——Lifecycler
转自带你领略Android Jetpack组件的魅力 Android Jetpack 对于任何一个产品来说,我们开发中都会面对哪些问题?如:产品交互.用户体验.代码结构.数据获取.数据存储.网络优化. ...
- Jmeter分布式部署- linux
https://www.cnblogs.com/beginner-boy/p/7836276.html https://www.cnblogs.com/wuhenyan/p/6419368.html ...
- go 语言学习笔记(一)
本次学习目的:熟悉了解 go 语言特点,实现基本功能. 1.readfile.go package main import ( "bufio" "fmt" &q ...