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协议基础介绍的更多相关文章

  1. python语法基础-网络编程-TCP协议和UDP协议

    ###############    网络编程    ############## """ 网络编程 学习了Python基础之后,包括函数,面向对象等,你就可以开发了,你 ...

  2. python 全栈开发,Day33(tcp协议和udp协议,互联网协议与osi模型,socket概念,套接字(socket)初使用)

    先来回顾一下昨天的内容 网络编程开发架构 B/S C/S架构网卡 mac地址网段 ip地址 : 表示了一台电脑在网络中的位置 子网掩码 : ip和子网掩码按位与得到网段 网关ip : 内置在路由器中的 ...

  3. (1)基于tcp协议的编程模型 (2)tcp协议和udp协议的比较 (3)基于udp协议的编程模型 (4)反射机制

    1.基于tcp协议的编程模型(重中之重)1.1 编程模型服务器: (1)创建ServerSocket类型的对象,并提供端口号: (2)等待客户端的连接请求,调用accept()方法: (3)使用输入输 ...

  4. (1)网络编程的常识 (2)基于tcp协议的编程模型 (3)tcp协议和udp协议的比较 (4)基于udp协议的编程模型

    1.网络编程的常识 目前主流的网络通讯软件有:微信.QQ.YY.陌陌.探探.飞信.阿里旺旺.... 在吗? 1.1 七层网络模型(熟悉) 为了保证数据传递的可靠安全等等,ISO(国际标准委员会组织)将 ...

  5. python基础-TCP协议和UDP协议

    TCP协议是一种流式协议,UDP协议是一种数据包协议. TCP和UDP是OSI模型中传输层的协议.TCP提供可靠的通信传输,而UDP则常被用于让广播和细节控制交给应用的通信传输. TCP和UDP区别总 ...

  6. TCP协议和UDP协议的区别

    1. TCP协议面向连接. UDP协议面向非连接 (有无链接)2. TCP协议传输速度慢. UDP协议传输速度快 (传输速度)3. TCP协议保证数据顺序. UDP协议不保证 (数据的有序性. 在IP ...

  7. TCP协议和UDP协议下的socket

    UDP协议的服务端和客户端: ##udp_服务端 import socket udp_server = socket.socket(type=socket.SOCK_DGRAM)#选择udp协议 ip ...

  8. tcp协议和udp协议的使用场景

      一:什么是TCP(Transmission Control Protocol,传输控制协议) tcp是面向连接的协议,也就是说,在收发数据前,必须和对方建立可靠的连接.一个TCP连接必须要经过三次 ...

  9. TCP协议和UDP协议区别

    tcp协议:可靠的.面向连接的协议(eg:打电话).传输效率低全双工通信(发送缓存&接收缓存).面向字节流.使用TCP的应用:Web浏览器:文件传输程序 udp协议:不可靠的.无连接的服务,传 ...

随机推荐

  1. ubuntu设置 SSH 通过密钥对登录

    1. 制作密钥对 首先在服务器上制作密钥对.登录到打算使用密钥登录的账户,然后执行以下命令: [root@host ~]$ ssh-keygen <== 建立密钥对 Generating pub ...

  2. docker整理

    Docker的简单介绍 docker是什么 Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,于 2013 年 3 月以 Apache ...

  3. centos7 下安装zabbix3.0 agent

    设置YUM源:rpm -ivh http://mirrors.aliyun.com/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpmrpm - ...

  4. 软件推荐----RDO(Remote Desktop Organizer)

    平时工作,经常使用远程桌面控制,在多个远程之间切换.使用上Remote Desktop Organizer方便很多.类似的软件很多,此软件只能应用于windows的远程桌面控制,好处如下: 可以保存用 ...

  5. 初学者常用的LINUX命令

    测试初学者常用的LINUX命令 一.常用管理命令:1. shutdown -h now 关机命令2. shutdown -r now (reboot) 立即重启命令 3. clear 清屏命令 4. ...

  6. Revit 命令添加下拉框

    在学习revit制作下拉框时,需要分为三个步骤: 1.创建一个面板(panel). RibbonPanel panel10 = application.CreateRibbonPanel(Global ...

  7. pl-svo在ROS下运行笔记

    一.程序更改的思路(参考svo_ros的做法): 1.在ROS下将pl-svo链接成库需要更改相应的CMakeLists.txt文件,添加package.xml文件: 2.注册一个ROS节点使用svo ...

  8. electron builder 打包错误 cannot unpack electron zip file 解决方案

    npm run buildwin > study01@1.0.0 buildwin F:\Nodejs\electron\Test\study01> electron-builder -- ...

  9. jQuery入门基础(选择器)

    一.jQuery简介 jQuery 是一个 JavaScript 库. jQuery 极大地简化了 JavaScript 编程. jQuery 库位于一个 JavaScript 文件中,其中包含了所有 ...

  10. Burp Suite设置代理

    一.确认代理信息 打开Burp Suite,查看proxy->options,看到Interface一栏为127.0.0.1:8080. 二.在Firefox中设置代理服务器 可以下载工具Fox ...