ip,tcp,udp的邮局理论

IP:(Internet协议)

IP拥有把一个数据包从一个地方发送到另一个地方的能力,通过提供一种”地方“或“设备”一个特定的地址(IP地址),并指定怎样通过地址在设备之间移动数据包来实现这个协议。现在,IP和下一层的协议之间的区别在于,在第2层的设备总是确切知道如何给其它网络设备发送信息。

IP除了可以发送单个数据包到单个地址外不能干其它任何事情,当然它可以接收从任何一个网络发过来的包(不像其它低级的协议),但仅此而已。明显缺点如下:


  • IP不提供发送、接收、出错等通知。
  • IP不提供“端口号”之类的标记来隔离发到目标IP地址的数据包。
  • IP不提供双向通讯。
  • IP不会用任何方式对多个包排序或分组。


最简单的比喻是IP好比邮政服务,你住邮箱里扔一张带地址的明信片,然后它就照着你写的地址寄过去了,寄到,或者没寄到,你并不知道。当明信片寄到时家时,你并不知道别的室友是不是读过它了。如果你想到一个回复,你的收件人不能在同一个卡片上写东西然后还给邮递员,他们要在自己的卡片上写字,贴上邮票,写上地址,最后自己寄出。


TCP:传输控制协议

虽然IP协议不提供这些功能,但TCP可以。如果你先看一下IP不能提供的那些特性,再看看邮递然后可以说:“嗯?当然可以做双向通信!人们写信来来回回就像一直在对话一样”。或者,“你可以直接要求收信人或者邮局给你回一封信”。或者说:“算了笨蛋,你可以把明信片标上数字记号然后告诉收信人按顺序阅读,如果有丢失就告诉你”。好吧,你是对的,这就是TCP做的事情。它使用基本的IP(或邮政服务)并指定通过何种方式添加一些附加信息,以便实现这些特性。 所以,TCP真正解决的是如何实现在多个IP设备间进行可靠的多次通信。神马意思?这意味着你可以发送一系列消息(包),基于一个选定的会话(端口或连接),这个包会以同样的顺序接收,发送时不会丢包,同样也不会有重复。 它是这样做的:给所有的包都写一个端口号,用来把其它连接和会话区别开,同时给每个包一个序列号,接收方就能知道传输中是否有丢失。之后,TCP指定接收方响应每个接收的数据(并不强制每个包都响应,可以简单的回复:“我收到第13456个字节之前的全部数据,或者“我收到845到13433之间的数据”),这样发送方就知道是否要重新发送。最后,通信是双向的,不仅仅有应答,还可以让接收方不用指定地址就可以直接往回发信息,有点像给每个包附加一个写好自己地址的回复信封。 可以看到,如果丢包或顺序不对,TCP实际上需要做很多工作。如果我们继续邮局理论,TCP就像一个私人助理,他帮你收集、分类邮件,排好序,获取并阅读,再回复回去。如果邮政服务超级可靠,TCP的任务就很简单,只需要做一个中间人把文件分发出去就好,反之,TCP就要做很多工作,把丢失的包发回去,跟踪并存储许多信息。


UDP:用户数据协议

UDP就比TCP简单多了, 它和IP做的一样,并加上了端口的概念,这样你就把消息发给另一个有IP地址的接收者。它没有顺序或连接,或双向连接,也没有应答。 你应该会认为UDP不靠谱,因为你知道TCP是一个可靠的连接方案,但是实际上在同一个网段,或者在信号很好的局域网,UDP实际上是非常可靠的。如没有丢包并包的按顺序依次到达(这个几乎是短局域网的常态),并不需要重新传输包,所以TCP的所有应答和等待只会浪费时间,增加网络延时。对于可以包容丢包的应用(实时音频和视频)来说,即使网络不给力,UDP也通常是一个好方案。


转自http://blog.csdn.net/herbert5069/article/details/31358641

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值