参考TCP/IP三卷
第11章 UDP:用户数据报协议
在这章中,提到了UDP,分片,和UDP服务器的特征。
文章第一句话就指出,IP数据报分片,并不是发送端主机连接第一个网络才这么做,而是在源端到目的端之间
每个网络都可能产生分片。
最显著一个特征,不提供可靠性。
UDP首部字段:
16位UDP长度:这个长度指的是全长减去IP首部的长度。即,UDP首部和UDP数据的字节长度
UDP检验和:
看看IP首部检验方法:只覆盖了IP首部,不涉及到数据。
UDP和TCP都有覆盖他们的首部和数据, 同时,UDP的检验和是可选的,TCP是必须的。RFC标准中,UDP检验默认
是开启的。要想知道UDP是否打开检验和,检查UDP首部的UDP检验和即可。
检验时是16bit进行相加,所以对可能出现奇字节的UDP,经常用一个全0的字段填充,这个全0的字段是否会被
发送,要靠具体情况而定。
UDP和TCP段都包含一个12字节长的伪首部,为了计算检验而设置,不做为包发送, 伪首部包含IP首部一些字段
,其目的让UDP进行两次检验。。 其实可以发现ARP中也包含了一些重复性的数据。我对这个看法认为,各层
之间是透明的,除了一些检验外,不涉及到其他数据交换等。所以有这种现象是正常的。
IP分片:
为什么要IP分片。略
在分片时,除了第一片有运输层的首部,其他都只有IP层的首部
几个主要特征位:
一个唯一的标志值
是否允许分片()
是否还有其他分片
偏移量
ICMP不可达差别(需要分片)
基本MTU都在1500字节左右
当路由器收到一份需要分片的数据报,而在IP首部又设了不可分片标志.在该报文中设置了下一站网络的MTU
最大UDP数据报长度
理论上,IP数据报最大长度为65535字节。去除20字节IP首部和8个字节的UDP首部,理论为65507,但是大多
数实现所提供的长度比这个最大值小
UDP路径MTU发现
略
UDP和ARP之间交互作用
这里作者举了一个很有意思的例子:发送一个8192字节UDP,产生6个数据报片,ARP缓存似乎空的。
用tcpdump查看结果是,在第一个arp返回前,总共产生6个ARP请求。认为原因是,IP很快产生6个数据报片,而
每个数据报片都引发一个ARP请求。
在接收到第一个ARP应答时,只发送最后一个数据报片,似乎将前5个数据报片全都丢弃了。那么可以得出,
ARP操作的规律,在等待一个ARP应答时,只将最后一个报文发给特定的目的主机(FIFO)。(RFC里规定,ARP应该
至少保留一个报文.)
在这里就有个问题,如果IP分片越多,发送的ARP就越多。建议最高速率是每秒一次。
在监视时大家会发现没产生ICMP错误,这里有两个原因:
1.大多数从Berkeley派生的实现从不产生错误.这些实现会设置定时器.比如在以上例子中,在第一个数据报
片出现时,IP层必须启动一个定时器.正常值为30秒或60秒,如果超时,或所有数据报片未能全部到达,那么将丢弃
2.并未接收到第一个数报片(包含传输层首部),ICMP就无法区分出是哪个进程所发送的数据报被丢弃.
UDP输入队列
一台服务器,先休眠30秒.2台客户机,同时向它各发送3个数据报,在12秒内完成.结果S只收到两台C的第一份数
据报.其他四份丢弃.从这里可以看出,不存在像ICMP的报错信息,UDP输出队列遵循FIFO的.而在ARP里却是LIFO.
限制本地IP地址
大多UDP服务器在创建UDP端点都使用直接监听方式.如 *.* ports
就表明进入的UDP数据报如果其目的为服务器端口,那么(可能有多个地址)本接口均可接收到它.
可以手动指定IP地址
变成
XXX.XXX.XXX.XXX ports
分享到:
相关推荐
《TCP/IP协议分析》课程实验主要涵盖了网络通信中四个核心协议——IP、UDP、TCP以及ICMP的报文构造和解析。实验旨在让学生通过实际编程深入理解这些协议的工作原理和结构,增强对网络协议栈的理解。 实验环境要求...
下面将对TCP和UDP的详细知识点进行归纳总结。 ### TCP协议知识点 1. **TCP/IP协议族成员**: TCP/IP并不只是指TCP和IP两种协议,它是一系列网络协议的统称,这些协议共同构成了互联网的基础。除了TCP和IP,还包括...
**Winsock**(Windows Sockets)是微软为Windows操作系统开发的一个网络编程接口,它提供了一种用于实现TCP/IP协议和其他网络协议的API(应用程序编程接口)。通过Winsock,开发者可以编写出能够在不同计算机之间...
这部分内容是对历年来考试重点的归纳,可能包括OSI模型的七层结构、TCP/IP四层模型、路由协议(如RIP、OSPF、BGP)、网络安全策略、网络设备配置(路由器、交换机)等内容。考生需要理解每层模型的功能,熟悉各类...
- **支持多种网络模式**:包括TCP服务器模式、TCP客户端模式和UDP模式等,可以根据应用场景灵活选择。 - **配置工具**:提供了图形界面的配置工具,可以方便地进行网络参数设置(如IP地址、子网掩码、网关地址等)...
该类提供了低级别的网络编程接口,支持多种协议(如TCP/IP、UDP等)。 #### 1. Socket类的基础用法 - **创建Socket**:通过构造函数`new Socket(AddressFamily addressFamily, SocketType socketType, ProtocolType...
以上是计算机网络中关于TCP/UDP协议、OSI模型、TCP/IP协议栈、IP地址与MAC地址、ARP协议、TCP连接建立、端口作用、网络设备功能等方面的详细解析。这些知识点对于理解和操作计算机网络至关重要。
3. **丰富的协议支持**:LWIP支持多种网络协议,包括但不限于IP转发、ICMP、IGMP、UDP、TCP、DNS、SNMP、PPP、ARP、IP分片处理和DHCP。此外,还提供了实验性的UDP扩展。 4. **自定义接口**:LWIP提供内部回调接口...
Apache Mina是一个开源的网络应用框架,它主要面向TCP/IP和UDP/IP通信协议栈,并提供了一系列用于开发高性能、可扩展的网络应用的API。它的主要特点包括事件驱动模型、异步I/O操作,以及对Java对象序列化和虚拟机...
2. **TCP/IP协议族详解**:详细介绍TCP/IP协议族中的各个层次及其对应协议,如IP协议、TCP协议、UDP协议、ICMP协议等。 3. **网络数据分析工具**:学习使用Wireshark等网络数据分析工具来捕获和分析网络数据包。 4. ...
TCP/IP协议:熟悉TCP/IP协议族的基本原理,包括TCP、UDP、IP、ICMP、ARP等协议的作用和工作原理。 HTTP协议:了解HTTP协议的基本概念和工作流程,如GET、POST等请求方法。 FTP协议:掌握FTP协议用于文件传输的...
为了理解这个问题,我们需要从TCP/IP协议的四层结构入手:链路层、网络层、传输层和应用层。 首先,在链路层,以太网(Ethernet)的数据帧的长度是(46+18)-(1500+18),其中的18是数据帧的头和尾,也就是说...
TCP/IP模型简化了OSI模型,将其归纳为四层:网络接口层、网际层、运输层和应用层。五层协议体系结构进一步简化,与TCP/IP模型相似,但没有单独的会话层和表示层。每一层都有相应的协议,如物理层的RJ45、数据链路层...
此时,需要确保系统防火墙和路由器设置中开放TCP端口80和6060,以及UDP端口6060,以便花生壳正常工作。 通过以上步骤,用户可以利用花生壳实现动态IP环境下的固定域名访问,这对于需要远程访问或监控的DTU等设备来...
用户文件如main.c、stm32f10x_it.c、led.c、usart.c、spi_enc28j60.c、enc28j60.c、ip_arp_udp_tcp.c和web_server.c等,分别对应了主程序、中断服务、LED操作、串口通信、SPI与ENC28J60的交互、ENC28J60的具体驱动、...
它旨在提供一种简单、灵活的方式来创建各种类型的网络应用,包括但不限于TCP/IP和UDP/IP应用程序。此外,MINA还支持其他多种传输层协议,并且具有良好的扩展性和可移植性。 #### 2. 架构特点 - **事件驱动模型**:...
生成套接字需要三个参数:通信目的IP地址、使用的协议、使用的端口号。通过将这三个参数结合起来,应用层就可以和传输层(或网络层)通过套接字接口,区分来自不同应用程序进程或网络连接的通信。 TCP编程的服务器...
HLK-RM04是由深圳海联讯电子科技有限公司开发的一款低成本嵌入式UART-ETH-WIFI模块,它将串口、以太网和无线网络(WiFi)接口融合在一起,基于通用串行接口网络标准,内置TCP/IP协议栈。该模块的主要功能是使传统...