zoukankan      html  css  js  c++  java
  • 【刷题】网络:TCP与UDP

    区别

    • TCP提供面向连接的、可靠的数据流传输,UDP提供的是非面向连接的、不可靠的数据流传输。
      • TCP传送数据之前建立连接,传送结束后释放连接,UDP传送数据之前不建立连接,收到后不给出任何确认。
      • tcp:提供可靠交付的服务(无差错,不丢失,不重复,且按序到达)(校验和、重传控制、序号标识、滑动窗口、确认应答实现可靠传输。如丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制。)。
      • udp:尽最大努力交付(不保证可靠交付)。
    • TCP适用于大文件,UDP适用于小文件。
    • TCP传输单位称为TCP报文段,UDP传输单位称为用户数据报。
      • TCP面向字节流,UDP面向报文。
    • 每一条TCP连接只能是点对点的(一对一),UDP支持一对一、一对多、多对一和多对多的交互通信。
      • TCP提供全双工通信,UDP无拥塞控制。
    • TCP注重数据安全性,传输慢;UDP数据传输快,但是其安全性却一般。
    • TCP对应的协议和UDP对应的协议不同。
    • UDP无拥塞控制,适用于实时应用;
    • UDP首部开销小,8B,TCP20B。

    其他

    • TCP的主要特点是:

    面向连接。
    每一条TCP连接只能是点对点的(一对一)。
    提供可靠交付的服务(无差错,不丢失,不重复,且按序到达)(校验和、重传控制、序号标识、滑动窗口、确认应答实现可靠传输。如丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制。)。
    提供全双工通信。
    面向字节流。

    • UDP的主要特点是:

    无连接。
    尽最大努力交付(不保证可靠交付)。
    面向报文。
    无拥塞控制。
    支持一对一、一对多、多对一和多对多的交互通信。
    首部开销小(只有四个字段:源端口、目的端口、长度、检验和)。

    TCP对应的协议和UDP对应的协议

    TCP对应的协议:

    (1) FTP:定义了文件传输协议,使用21端口。
    (2) Telnet:一种用于远程登陆的端口,使用23端口,用户可以以自己的身份远程连接到计算机上,可提供基于DOS模式下的通信服务。
    (3) SMTP:邮件传送协议,用于发送邮件。服务器开放的是25号端口。
    (4) POP3:它是和SMTP对应,POP3用于接收邮件。POP3协议所用的是110端口。
    (5) HTTP:是从Web服务器传输超文本到本地浏览器的传送协议。

    UDP对应的协议:

    (1) DNS:用于域名解析服务,将域名地址转换为IP地址。DNS用的是53号端口。
    (2) SNMP:简单网络管理协议,使用161号端口,是用来管理网络设备的。由于网络设备很多,无连接的服务就体现出其优势。
    (3) TFTP(Trivial File Transfer Protocal),简单文件传输协议,该协议在熟知端口69上使用UDP服务。

    TCP如何实现可靠性传输?

    • 校验,序号,确认机制、重传机制、滑动窗口。
      • 重传:超时和冗余ACK

    怎么让udp实现可靠连接

    UDP不属于连接协议,具有资源消耗少,处理速度快的优点,所以通常音频,视频和普通数据在传送时,使用UDP较多,因为即使丢失少量的包,也不会对接受结果产生较大的影响。

    传输层无法保证数据的可靠传输,只能通过应用层来实现了。实现的方式可以参照tcp可靠性传输的方式,只是实现不在传输层,实现转移到了应用层。

    最简单的方式是在应用层模仿传输层TCP的可靠性传输。下面不考虑拥塞处理,可靠UDP的简单设计。

    1、添加seq/ack机制,确保数据发送到对端
    2、添加发送和接收缓冲区,主要是用户超时重传。
    3、添加超时重传机制。
    详细说明:送端发送数据时,生成一个随机seq=x,然后每一片按照数据大小分配seq。数据到达接收端后接收端放入缓存,并发送一个ack=x的包,表示对方已经收到了数据。发送端收到了ack包后,删除缓冲区对应的数据。时间到后,定时任务检查是否需要重传数据。

    目前有如下开源程序利用udp实现了可靠的数据传输。分别为RUDP、RTP、UDT。

    参考链接

    END

  • 相关阅读:
    从零构建自己的远控•界面搭建(2)
    从零构建自己的远控•项目简介(1)
    特训99小游戏
    WritePrivateProfileSection 示例
    dll劫持
    c/c++创建动态库
    不传请求号修改测试系统或者正式系统代码
    ABAP 业务处理中的弹窗提示
    SAP MM 采购订单中货币单位怎么修改
    ABAP 屏幕字段无搜索帮助处理
  • 原文地址:https://www.cnblogs.com/anliux/p/12567465.html
Copyright © 2011-2022 走看看