TCP与UDP

UDP

主要特点有:

1.无连接。知道对端的IP和端口号就直接进行传输,发送数据不需要建立连接,减少时延

2.尽最大努力交付,不保证可靠交付,对方没收到,也不会重传

3.面向报文。发送方对于应用层下来的报文,不做处理,只添加首部就给IP层。相当于,不管应用层的报文有多长,udp都照样发送,一次发送一个报文。接收方对于IP层上来的udp数据报,在去除首部后,就给应用层

4.没有拥塞机制。网络拥塞不会使源主机发送速率减低,对应有些实时传输要求高,但是允许网络拥塞丢失部分数据的情况,udp适合这种要求

5.支持一对一,一对多,多对一,多对多通信

6.首部开销小只有8个字节

TCP:

1.面向连接,数据传输前,需要建立连接。数据传输完毕需要关闭连接

2.每一条TCP连接只能有两个端点,每个端口由主机的ip和端口号(socket)决定

3.TCP提供可靠交付的服务,数据无差错,不丢失,不重复,按序到达

4.全双工通信,两端都有发送缓存和接收缓存,用来临时存放双向通信的数据

5.面向字节流。TCP中的流指的是流入到进程或从进程流出的字节序列。应用程序与TCP交互是一次一个数据块,但TCP把应用程序交下来的数据看成是一连串字节流。而且TCP不保证接受方收到的数据块和发送方应用程序的数据块具有对应大小的关系。(例如:只调用了一次write,发送了100个字节,但是对方可以分10次收完,每次10个字节;你也可以调用10次write,每次10个字节,但是对方可以一次就收完)但是,你发送的数据量不能大于对方的接收缓存(流量控制),如果你硬是要发送过量数据,则对方的缓存满了就会把多出的数据丢弃。TCP并不关心进程一次把多长的报文存到TCP缓存中,而是根据对方给出的窗口值和网络拥塞状态觉得发出的一个报文段包含多少字节。

 

TCP可靠传输原理

理想传输条件有以下两个特点:

1.传输信道无差错

2.不管发送方以多块速度发送数据,接收方总来的及处理

停止等待协议是最简单的无差错协议,A向B发送一个分组会暂时保留已发送分组的副本,而每次发送时,会设置一个超时计时器。如果在超时周期内收到了确认报文,说明报文送达,清楚这个副本。如果超时了,就会重传该报文分组。

连续ARQ协议

该协议规定,发送方每收到一个确认,就吧发送窗口往前滑动一个。接收方一般采用累积确认,不必对收到的分组逐个确认,而是对按序到达的最后一个分组进行确认。优点在于,即使确认丢失也不必重传,缺点在于不能向发送方反映出接收方已正确收到所有分组的信息

窗口滑动协议比较复杂,是TCP的精髓,后续补充 

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值