TCP和UDP面试经常被问到,一些初学者也经常问我这种问题,由于TCP协议和UDP协议是基于三次“对话”,解释起来很费劲,所以在这里详细的描述一下自己对TCP协议和UDP协议的理解,如有不妥之处,望指正。

首先是TCP,全称Transmission control protocol,是基于连接的协议,也就是说,这个协议的前提条件就是必须建立稳定的联系才能走协议方法。一个TCP协议必须经过三次对话建立,其中的过程比较复杂,基于本人也是做的前端开发的程序员,所以就简单的打个比方:

Long long ago,服务器A想给服务器B发送一个avi文件,然后通过QQ小窗口抖动联系服务器B,“嗨,我这里有份avi文件,你要不要?”;

PS:这是第一次对话,服务器A给服务器B发送请求数据包。

服务器B回复:“好啊,好啊,你什么时候发,我的大刀已经饥渴难耐了”;

PS:这是第二次对话,服务器B同意连接请求,要求同步。

服务器A回复:“我现在就给你发,你收好,嘿嘿”;

PS:这是第三次对话,服务器A确认同步并发出数据包。

经过这三次“对话”,服务器A才可以和服务器B发送数据。

据悉,现在的主流的聊天软件都是用的TCP协议

接下来是UDP,全称User Data protocol,是于TCP协议相对应的协议,UDP是面向非连接的协议,它不与对方建立连接,而是直接把数据包发送过去,UDP使用于一次只传送少量数据、对可靠性要求不高的应用环境,没有建立连接的过程,所以通信效果高,但也正因为如此,它的可靠性不如TCP协议高。

TCP协议和UDP协议的区别:

1、TCP协议是面向连接的协议,UDP是面向非连接的协议

2、TCP要比UDP更可靠、更安全

3、在传输大量数据的时候一般用TCP,小数据传输用的是UDP

4、UDP要比TCP要快。

一个深圳的可爱小朋友,问我这样的一个问题“FTP、TCP和UDP有什么联系?”。我只想说,FTP是文本传输协议,剩下的自己理解吧。

浅知拙见,如有纰漏瑕疵,欢迎指针。

iOS_TCP和UDP的详解的更多相关文章

  1. ip头、tcp头、udp头详解及定义,结合Wireshark抓包看实际情况

    公司的同事们在分析网页加载慢的问题,忽然使用到了Wireshark工具,我就像发现新大陆一样好奇,赶紧看了看,顺便复习了一下相关协议.上学时学的忘的差不多了,汗颜啊! 报文封装整体结构 mac帧头定义 ...

  2. 计算机网络——TCP与UDP协议详解

    根据应用程序的不同需求,运输层需要两种不同的运输协议,即面向连接的TCP和无连接的UDP. TCP:传输控制协议 TCP特点: 1)TCP是面向连接的运输层协议.所以,应用程序在使用TCP协议之前,必 ...

  3. IP头、TCP头、UDP头详解以及定义

    一.MAC帧头定义 /*数据帧定义,头14个字节,尾4个字节*/typedef struct _MAC_FRAME_HEADER{ char m_cDstMacAddress[6];    //目的m ...

  4. UDP协议详解

    1.UDP协议的作用 IP协议无法区别同一个主机系统上的多个应用程序.UDP采用端口标识同一主机上的不同应用程序. 无法采取进程ID来标识不同应用程序的原因: 1)系统中应用程序的进程ID分配和销毁是 ...

  5. 网络通信协议八之UDP协议详解

    视频传输中使用UDP协议比较多 UDP协议的责任 >>创建进程到进程间的通信(由端口号完成) >>有限的差错控制,出现差错悄悄丢弃报文(注意这点和TCP协议的区别)

  6. 运输层(TCP/UDP)详解

    TCP和UDP的区别: tcp是面向连接的可靠的传输协议 udp是非连接的不可靠的传输协议 TCP组成 可以看到虽然tcp是面向字节流的,但是其传输的基本单位还是报文(tcp首部和数据,ip报文和ud ...

  7. TCP与UDP区别详解

    TCP协议与UDP协议的区别    首先咱们弄清楚,TCP协议和UCP协议与TCP/IP协议的联系,很多人犯糊涂了,一直都是说TCP/IP协议与UDP协议的区别,我觉得这是没有从本质上弄清楚网络通信! ...

  8. UDP编程详解

    目录 报文格式 通信过程 UDP客户端流程 UDP客户端编码 UDP服务器流程 UDP服务器编码 参考文献 UDP与TCP的不同之处是:他的通信不需要建立连接的过程.中文名称用户数据报协议.时OSI参 ...

  9. 《TCP/IP详解卷1:协议》第11章 UDP:用户数据报协议-读书笔记

    章节回顾: <TCP/IP详解卷1:协议>第1章 概述-读书笔记 <TCP/IP详解卷1:协议>第2章 链路层-读书笔记 <TCP/IP详解卷1:协议>第3章 IP ...

随机推荐

  1. Android开发——搭建最新版本的Android开发环境

    http://www.cnblogs.com/smyhvae/p/3788534.html http://www.cnblogs.com/xdp-gacl/p/4322165.html http:// ...

  2. Swift基础语法学习总结(转)

    Swift基础语法学习总结 1.基础  1.1) swift还是使用// 和/* */ 来注释,并且/* */允许多行注释. 1.2) swift使用print和println打印,它的传参是一个泛型 ...

  3. JavaScript 中的对象

    JavaScript 中的对象 在 JavaScript 中,对象是数据(变量),拥有属性和方法. JavaScript 中的所有事物都是对象:字符串.数字.数组.日期,等等.   访问对象的属性 访 ...

  4. 微信小程序-发起请求

    wx.request(object) wx.request发起的是https请求.一个微信小程序,同时只能有5个网络请求连接. object参数说明: 示例代码: wx.request({ url: ...

  5. JSON方式提交文档时SOLR报:AtomicUpdateDocumentMerger Unknown operation for the an atomic update, operation ignored

    文档是数组转成的json 原数组: array( 0 =>3, 1 =>3, 2 =>4, 3 =>5, 4 =>5, 5 =>6) 用array_unique去掉 ...

  6. vnc连接kali 2.0 报错:A problem has occurred and the system can't recover.

    kali版本: root@kali:~# uname -a Linux kali -kali1-amd64 # SMP Debian -7kali2 (--) x86_64 GNU/Linux 第一步 ...

  7. 在WebBrowser中截获弹出对话框内容并将其屏蔽

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  8. 实现table的单线边框的办法

    实现table的单线边框的办法 现在给出效果图: 1.实现方法一:    <table border="0" cellspacing="1" style= ...

  9. public protect private. 草稿。

    public protect private. 草稿. #include <iostream> #include <thread> #include <memory> ...

  10. X.509,RSA,PKCS 普及

    X.509 X.509是一种非常通用的证书格式.所有的证书都符合ITU-T X.509国际标准,因此(理论上)为一种应用创建的证书可以用于任何其他符合X.509标准的应用. 在一份证书中,必须证明公钥 ...