udp详解(TCP和UDP详解)

      最后更新:2023-04-28 16:07

      UDP协议如何进行通信

      B并不用确定A的端口号,因为UDP本身就是不面向连接的数据传送,所以不存在连接问题。 参考如下:UDP是一个无连接协议,传输数据之前源端和终端不建立连接,当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。在发送端,UDP传送数据的速度仅仅是受应用程序生成数据的速度、计算机的能力和传输带宽的限制;在接收端,UDP把每个消息段放在队列中,应用程序每次从队列中读一个消息段。 由于传输数据不建立连接,因此也就不需要维护连接状态,包括收发状态等,因此一台服务机可同时向多个客户机传输相同的消息。
      UDP协议不需要显式的连接,需要在两个Winsock控件中间发送数据,关键需要完成以下的三步: 1.将RemoteHost属性设置为另一台计算机的名称。2.将RemotePort属性设置为第二个控件的LocalPort属性。 3.调用Bind方法,指定使用的LocalPort。
      UDP协议如何进行通信

      名词解释dns,tcp,udp

      DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。在RFC文档中RFC 2181对DNS有规范说明,RFC 2136对DNS的动态更新进行说明,RFC 2308对DNS查询的反向缓存进行说明。 TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,用户数据报协议(UDP)是同一层内另一个重要的传输协议。在因特网协议族(Internet protocol suite)中,TCP层是位于IP层之上,应用层之下的中间层。不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换 UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETF RFC 768是UDP的正式规范。UDP在IP报文的协议号是17
      dns域名系统是用于域名转换的工具,例如你输入域名 www.baidu.com会帮助你转换为相应的网络IP地址。tcp/udp是tcp/ip协议栈中运输层的两个协议,它们有各自对应支持的应用程序。 深入了解其结构和工作原理推荐看《TCP/IP详解:卷一》
      名词解释dns,tcp,udp

      UDP "TCP/IP详解" 第十章 读书笔记

      头部8字节, 四个字段各2Byte长度2Byte-> 在这里虽然依旧能够到达65535Byte, 但是是冗余的, 在IP数据报中已经记录大小.校验和2Byte-> 在IPv4中做12字节伪头部 or 在IPv6中做40字节伪头部进行校验.穿过NAT后, 伪头部会被修改.值得注意的是:可以容忍部分的内容错误下一头部字段 136头部中的校验和字段变成了校验范围, 能够选择校验0~65535中的前多少. 但是这个值在1~7之间是非法的, 因为头部要求必须被校验MTU常见的是1500Byte,留给UDP内容是1472Byte.如果超过这个大小, UDP就会被分片. 不同的分片段有同一个IP数据报序号.前面的片MF被设置"还有更多". 每一个分片带有偏移字段, *8后代表最终携带的字节.在非第一个分片的IP数据报中, 没有说明"下一个头部"的号码.拥有更大的偏移量的片会被优先投递, 让接收方提前知道这个UDP数据报到底有多大, 可以提前分配内存只对前两个分片报告ICMP超时, 后续的不再报告.甚至有可能根本不报告, 因为收到的前两个数据报中没有携带端口信息, 导致ICMP数据报缺少内容收到第一个分片就开始计时, 收到后续分片不重置计时器, 一般是30s超时发送的第一个UDP数据报可能默认是DF(不要分片)的, 这样如果IP数据报大小大于MTU时会被直接丢弃, 并返回一个ICMP消息. 如果在网络层报告的MTU信息之后, 这个程式还在运行, 那么就会利用这个MTU发现, 来更改DF信息, 允许分片. MTU信息也会有超时, 如果超时了, 那么又会恢复到之前的默认状态.历史问题:对于无状态的地址转化, 原来被分片后带有零校验和的IPv4-UDP不能转换, 因为变成IPv6之后没法计算(IPv6没有首部校验)虽然字段上能设置成65535 - 8 = 65527Byte, 但是应用程序不一定能接受这么大, 或者系统不接受这么大系统会API截断, 丢弃这个数据报中超出的部分 or 超出的部分留到下一次读取中 or 通知上层有多少被丢弃了. (取决于系统实现). 这被称为消息边界. TCP没有消息边界, 以"流"的形式传输.要注意IPv6和IPv4的地址长度不同, 使用不同的数据结构.IPv6的程序端口可能会同时占用Ipv4的端口如果想让重用同样的端口给不同的地址, 需要显式的通知系统.(e.g. 监听两个网卡的80端口).每一个端点都会收到一个拷贝. (端点的概念同时包含了防止多线程的进程多次读取)虽然只有<0.1%的流量是分片的, 但是70%左右的分片都是UDP的分片出现的可能因素:
      UDP

      udp协议详解

      应用层:应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。 传输层:在此层中,它提供了节点间的数据传送服务,如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。互连网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。网络接口层:对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、Serial Line等)来传送数据。TCP/IP中的协议以下简单介绍TCP/IP中的协议都具备什么样的功能,都是如何工作的:1. IP网际协议IP是TCP/IP的心脏,也是网络层中最重要的协议。IP层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层---TCP或UDP层;相反,IP层也把从TCP或UDP层接收来的数据包传送到更低层。IP数据包是不可靠的,因为IP并没有做任何事情来确认数据包是按顺序发送的或者没有被破坏。IP数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)。 高层的TCP和UDP服务在接收数据包时,通常假设包中的源地址是有效的。也可以这样说,IP地址形成了许多服务的认证基础,这些服务相信数据包是从一个有效的主机发送来的。IP确认包含一个选项,叫作IP source routing,可以用来指定一条源地址和目的地址之间的直接路径。对于一些TCP和UDP的服务来说,使用了该选项的IP包好象是从路径上的最后一个系统传递过来的,而不是来自于它的真实地点。这个选项是为了测试而存在的,说明了它可以被用来欺骗系统来进行平常是被禁止的连接。那么,许多依靠IP源地址做确认的服务将产生问题并且会被非法入侵。
      udp协议详解

      IP TCP UDP的关系

      看看附图就明白了。tcp和udp是在传输层,传输层的数据要将本层数据向下交给网络层才能和远程主机通信。他下面的网络层使用IP协议来完成数据的封装处理。
      比喻呀 IP就象胃,TCP就像小肠,UDP就像大肠网络信息先经过胃(IP),分类后,一部分进入小肠TCP,一部分进入大肠UDP展开来说网络接口就像咽喉,应用层就像人体的出口信息就像食物,从入口(口腔)到出口 好像有点恶心的比喻
      建议您学习一些基础的知识再看这本书,如果能具备一点点C语言的基础就更加好了。
      IP TCP UDP的关系

      本文由 在线网速测试 整理编辑,转载请注明出处。

          热门文章

          文章分类