zoukankan      html  css  js  c++  java
  • 3.3 无连接运输:UDP

    3.3 无连接运输:UDP

    简介:

           UDP提供不可靠的服务,它只做了运输层能做的最少工作,除了分解/复用以及少量的差错检测之外,几乎对IP没增加什么东西。

           为什么应用开发人员宁愿再UDP之上构建应用,而不是选择再TCP上构建应用?

        1.应用层可以更为精细对数据的控制:

    应用进程只需要将数据传递给UDP,UDP就会为其加上首部信息,然后交给网络层。TCP有更多的功能,比如拥塞控制机制会抑制发送端的传输速率

        2.不需要建立连接:

    TCP需要三次握手建立连接,四次挥手断开连接,这样就增加了时延,而UDP不需要连接,如果DNS是运行在TCP协议上,DNS就会慢很多)。

        3.分组开销小:

    TCP首部20字节,UDP首部8个字节。

       4.无连接状态:

    TCP传输的时候必须在端系统中维护连接的状态,而UDP不用。

    3.3.1UDP报文结构

    源端口号

    目的端口号

    长度

    检验和

    应用数据(报文)

    源端口号:发送方的端口号。

    目的端口号:接收方端口号。

    长度:包括首部在内的报文长度。

    检验和:用来差错检验。只发现错误不纠正,错了就扔。然后重发

    检验和的计算:

           就是源端口号(16位,两个字节),目的端口号(16位),长度(16位),  相加取反,相加的时候需要回卷,就是溢出的再加到后边,例如:

           1001 + 0111 = 10001,出现了5位,第一位的1,再加到后边,等于,0001 + 1 = 0010.

           得到检验和,这样做的好处,在接收端收到数据的时候,将首部四个字段加起来很明显应该16个1,就说明没错,否则就说明有错。

  • 相关阅读:
    如何禁止复制网页内容?(javascript)
    CSS实现的div仿制Textarea效果
    C/S WinForm自定义控件实现B/S菜单样式
    ER/Studio 数据库建模
    设为首页JS,加入收藏夹js,加入收藏夹代码,设为首页代码,火狐和ie兼容
    entity framework进行一对多的联合查询
    增加asp.net应用程序性能的19种方法
    MVC Models定义验证属性
    [导入]linq与xml
    Entity Framework 批量删除
  • 原文地址:https://www.cnblogs.com/wuwangchuxin0924/p/8711083.html
Copyright © 2011-2022 走看看