到底UDP和TCP是什么个概念?
今天在论坛看到一牛人对tcp和udp的解释和区分,突然间恍然大悟。
以下全为拷贝。
在现实生活中,“要想富,先修路”;同时人总要“居有定所”,于是盖起了N多的房子。但是当你和同事商量好去做客的时候却发现,兜了半天就是找不到他家的房子。原因是路上没有指示牌,且所有的房子都没有门牌号码。所以你一怒之下,将有关部门举报了。几天过后门牌号码都钉在了房子的显著位置上。于是你再次和同事约定,按照朋友给的地址,顺利找到他家。可是,当你到了他家门口又遇到问题了:他家的房子非常的大,所以四处都装了门,有N个,你不知敲哪个门。
上面的比喻里:道路就不要说了,都是指网络中的硬件,光线、海底电缆...,路由器做指示牌,地址有现实中的xx省xx市xx路xxx号xx楼统一变为xxx.xxx.xxx.xxx的IP地址了;而那房子就是计算机/服务器,房子的N个门就是计算机的65535个端口。
说到你问的TCP,你不能单纯的去用TCP连接理解网络实际工作过程。在我上面的例子中,代表“TCP连接”的是"你和朋友面对面接触并商量好"这个过程而已。如果你换个方式:你没见到他本人,只是给他留个便条,说你要去做客,然后你就去了,那这个过程就是一个UDP的过程,因为你到了他的办公桌前,留下了纸条,就视作建立了“UDP连接”。
TCP是可靠的连接,因为你和他当面锣对面鼓的商定了那件事情;而UDP是不可靠连接,因为你只是留了个便条给他,你不知道他是否收到了你的便条,天知道纸条是否被风扇吹到垃圾篓去了:))。但是显而易见的是,UDP更便当而TCP很麻烦。
说到这些就不能不提到SOCKET这个重要的概念。一个著名的比喻是:你要打电话,首先必须要先把电话线接到电话插槽。然后你拿起电话给朋友打电话,电话通了,你问:“你是赵二吗?”,对方回答“是”,这样你们就建立了一次可靠连接;然后你说:“周六我去你家做客,准备好酒菜”;赵二回答:“好的”,这样你们就建立了二次可靠的连接---事情敲定!这就是TCP连接(两次握手)。然而当你拿起电话给朋友打电话,电话通了但一直没人接,几声之后转到录音电话上,你只好留言说我要去做客了云云,然后就挂断电话了。你也并不知道赵二是否听到了你的录音留言,这就是UDP的不可靠连接。
所以你用是“绳子”来理解网络连接本身是不太好理解的。上面朋友也建议了,去看看有关计算机网络的形成历史和原理的书吧。
当然,我的这些比喻都是不很确切的,权当一笑吧,呵呵。
到底UDP和TCP是什么个概念?的更多相关文章
- 游戏服务器:到底使用UDP还是TCP
http://blog.jobbole.com/64638/ 在编写网络游戏的时候,到底使用UDP还是TCP的问题迟早都要面对. 一般来说你会听到人们这样说:“除非你正在写一个动作类游戏,否则你就用T ...
- Http UDP还是TCP
http://1024monkeys.wordpress.com/2014/04/01/game-servers-udp-vs-tcp/ 在编写网络游戏的时候,到底使用UDP还是TCP的问题迟早都要面 ...
- Android程序员必知必会的网络通信传输层协议——UDP和TCP
1.点评 互联网发展至今已经高度发达,而对于互联网应用(尤其即时通讯技术这一块)的开发者来说,网络编程是基础中的基础,只有更好地理解相关基础知识,对于应用层的开发才能做到游刃有余. 对于Android ...
- java 网络通信传输层协议——UDP和TCP
本文原文由作者“zskingking”发表于:jianshu.com/p/271b1c57bb0b,本次收录有改动. 1.点评 互联网发展至今已经高度发达,而对于互联网应用(尤其即时通讯网专注的即时通 ...
- 网络游戏程序员须知 UDP vs TCP(转)
本文为作者原创或翻译,转载请注明,不得用于商业用途. 作者:rellikt@gmail.com 首发链接:http://blog.csdn.net/rellikt/archive/2010/08/21 ...
- C# HTTP1.0 1.1 2.0与HTTPS 、TCP/IP协议的UDP与TCP、 Socket介绍与WebSocket
一.HTTP1.0 1.1 2.0和HTTPS 1.HTTP协议是什么? HTTP协议是超文本传输协议的缩写,英文是Hyper Text Transfer Protocol.它是从WEB服务器传输超文 ...
- 移动端IM系统的协议选型:UDP还是TCP?
1.前言 对于有过网络编程经验的开发者来说,使用何种数据传输层协议来实现数据的通信,是个非常基础的问题,它涉及到你的第一行代码该如何编写. 从PC时代的IM开始,IM开发者就在为数据传输协议的选型争论 ...
- RUDP之一 —— UDP VS TCP
原文链接 原文:http://gafferongames.com/networking-for-game-programmers/udp-vs-tcp/ 介绍 大家好,我是Glenn Fiedler, ...
- 通信协议之HTTP,UDP,TCP协议
1.UDP,TCP,HTTP之间的关系 tcp/ip是个协议组,它可以分为4个层次,即网路接口层,网络层,传输层,以及应用层, 在网络层有IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协 ...
随机推荐
- Centos 6.4 python 2.6 升级到 2.7
Centos 6.4 python 2.6 升级到 2.7 分类: Python Linux2013-09-13 21:35 37278人阅读 评论(2) 收藏 举报 一开始有这个需求,是因为用 Ya ...
- 解决mysql数据库连接问题
设置mysql远程连接root权限 在远程连接mysql的时候应该都碰到过,root用户无法远程连接mysql,只可以本地连,对外拒绝连接.需要建立一个允许远程登录的数据库帐户,这样才可以进行在远程操 ...
- Andrew Ng机器学习公开课笔记 – Factor Analysis
网易公开课,第13,14课 notes,9 本质上因子分析是一种降维算法 参考,http://www.douban.com/note/225942377/,浅谈主成分分析和因子分析 把大量的原始变量, ...
- Listener-监听器+ServletContext+ApplicationContext
参考资料 ServletContext和ApplicationContext有什么区别 ServletContext:是web容器的东西, 一个webapp一个, 比session作用范围要大, 从中 ...
- (java版)斐波那契数列
用JAVA编写Fibonacei(1,1,2,3,5,8,13...)数列的第n项 分析:当n=1时,a(n)=1;当n=2时 ,a(n)=2. 所以当n=>3时,a(n)=a(n-1)+a(n ...
- Transform.InverseTransformPoint 反向变换点
JavaScript ⇒ public function InverseTransformPoint(position: Vector3): Vector3; C# ⇒public Vector3 I ...
- 如何离线安装chrome插件【转】
http://blog.csdn.net/shuideyidi/article/details/45674601 原文链接 前言------可以不看: 实习做web,要弄单点登录SSO和验证Contr ...
- ngios
一.Nagios简介 Nagios是一款开源的电脑系统和网络监视工具,能有效监控Windows.Linux和Unix的主机状态,交换机路由器等网络设置,打印机等.在系统或服务状态异常时发出邮件或短信报 ...
- Qt通过QToolTip显示浮动信息
QToolTip类的应用十分简单,其QToolTip类中全都是静态方法,如果要显示浮动信息的话使用该函数即可: void QToolTip::showText ( const QPoint & ...
- php--递归调用