TCP、UDP over IP

T C P / I P协议族分为四层:链路层、网络层、运输层和应用层,每一层各有不同的责任。
在T C P / I P中,网络层和运输层之间的区别是最为关键的:网络层( I P)提供点到点的服务,
而运输层( T C P和U D P)提供端到端的服务。





U D P数据与 T C P数据基本一致。唯一的不同是 U D P传给 I P的信息单元称作 U D P数据报( UDP datagram),而且U D P的首部长为8字节。











1TCP数据传输不存在边界 -- 是面向连接的数据传输方式 -- 传送带传递物品
这表示“数据传输过程中调用I/O函数的次数不具有任何意义”。
它是可靠的、按顺序的、基于字节的面向连接的数据传输方式。



266000 -- 是数据包的“边界” - send(26600)




而TCP接收是没有这个边界的概念,越过了 - recv()。


所以需要对接收的TCP流找到边界,做分包处理。



2.UDP是具有数据边界的协议 -- 是面向消息的数据传输方式 -- 高速移动的摩托车快递
  传输中调用的I/O函数的次数非常重要。因此,输入函数的调用次数应和输出函数的调用次数完全一致,这样才能保证接收全部已发送数据。
它是不可靠的、不按顺序的、以数据的高速传输为目的面向消息的数据传输方式





流控制是区分UDP和TCP的最重要的标志。如果从TCP中除去流控制,所剩内容也屈指可数。也就是说,TCP的生命在于流控制。与对方套接字连接及断开过程,也属于流控制的一部分。
UDP的可靠性比不上TCP,但UDP在结构上比TCP更简洁。UDP不会发送类似ACK的应答信息,也不会想SEQ那样给数据包分配序号。因此,UDP的性能比TCP高出很多。
因此,在注重性能而非可靠性的情况下,UDP是个很好的选择。


通过网络实时传输视频或音频的情况,丢失一部分也没有太大问题。这只会引起暂短的画面抖动,或出现细微的杂音。但因为需要提供实时服务,速度就成为非常重要的因素。这时流量控制就显得
有些多余,此时需要考虑使用UDP。


TCP比UDP慢原因:
1.收发数据前后进行的连接设置及清楚过程
2.收发数据过程中为保证可靠性而添加的流控制



rtp包头部有不包含长度信息 -- 通过UDP传输,每个UDP包含有一个RTP包,所以不需要长度信息来解包。


RTP增加SQ和timestamp等, 解决了UDP可靠性问题。














编写软件过程中,需要根据程序特点决定服务端和客户端之间的数据传输规则(规定),这便是应用层协议。比如:RTP(UDP),RTMP(TCP)等等。
网络编程的大部分工作内容就是设计并实现应用层协议。




如果你设计的传输规则足够合理高效,就有可能成为标准协议:)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wishfly

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值