`
javajeye
  • 浏览: 62339 次
  • 性别: Icon_minigender_2
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论
  • docong: 这根本不是lazy initial 的问题,而是你没有覆盖Th ...
    ThreadLocal

数据包的长度tcp,udp,ip

阅读更多
IP数据包的最大长度是64K字节(65535),因为在IP包头中用2个字节描述报文长度,2个字节所能表达的最大数字就是65535。

由于IP协议提供为上层协议分割和重组报文的功能,因此传输层协议的数据包长度原则上来说没有限制。实际上限制还是有的,因为IP包的标识字段终究不可能无限长,按照IPv4,好像上限应该是4G(64K*64K)。依靠这种机制,TCP包头中就没有“包长度”字段,而完全依靠IP层去处理分帧。这就是为什么TCP常常被称作一种“流协议”的原因,开发者在使用TCP服务的时候,不必去关心数据包的大小,只需讲SOCKET看作一条数据流的入口,往里面放数据就是了,TCP协议本身会进行拥塞/流量控制。

UDP则与TCP不同,UDP包头内有总长度字段,同样为两个字节,因此UDP数据包的总长度被限制为65535,这样恰好可以放进一个IP包内,使得UDP/IP协议栈的实现非常简单和高效。65535再减去UDP头本身所占据的8个字节,UDP服务中的最大有效载荷长度仅为65527。这个值也就是你在调用getsockopt()时指定SO_MAX_MSG_SIZE所得到返回值,任何使用SOCK_DGRAM属性的socket,一次send的数据都不能超过这个值,否则必然得到一个错误。

那么,IP包提交给下层协议时将会得到怎样的处理呢?这就取决于数据链路层协议了,一般的数据链路层协议都会负责将IP包分割成更小的帧,然后在目的端重组它。在EtherNet上,数据链路帧的大小如以上几位大侠所言。而如果是IP   over   ATM,则IP包将被切分成一个一个的ATM   Cell,大小为53字节。

http://java-mzd.iteye.com/blog/1007577
分享到:
评论

相关推荐

    TCPIP数据包的分析

    截取了一个TCP/IP数据包后,首先分离出IP协议(IP“Internet Protocol”协议是TCP/IP协议族中最为核心的协议,所有的TCP、UDP、ICMP和IGMP数据等都是以IP数据报格式传输的)的头部分,从IP协议头中可以得到很多关键...

    UDP协议通信演示Delphi源码

    资料1:以太网的MTU是1500字节,IP包头占20个字节,UDP首部占8个字节,也就是说实际数据应该小于1472字节. 资料2:鉴于Internet上的标准MTU值为576字节,所以我建议在进行Internet的UDP编程时.最好将UDP的数据长度...

    IP数据包分析程序

    可输入需要捕获的IP数据包数量,输出每个IP数据包的相关字段值(包括版本、总长度、标志位、片偏移、协议、源地址与目的地址等),协议字段需要区分出具体类型(例如TCP、UDP、ICMP、IGMP、IPv6、EGP、OSPF等)。

    RTX 与 Windows 以太网性能分析

    使用 TCP/IP 协议, 当传输的数据包长度低于1460 上限时, RTX 下数据包传输的实时性明显优于 Windows 。当传输数据包长度超过 1460 上限的大包时, RTX 在应用层分包, Windows 下在 IP 层自动分包。由于 TCP 协议数据...

    基于winpcap的网络协议分析器

    支持以太网MAC协议、IP和TCP/UDP协议的分析,并实现了ARP,ICMP,IGMP协议的分析,提取各个协议的字段值,能进行简单的过滤。基于winpcap开源包1.2 开发环境 Microsoft Visual Studio .NET 2003,WinPcap 4.1.2

    个人嗅探器

    比如,对 IP 头而言,需要显示 版本、头长度、服务类型、数据包长度、标识、 DF/MF 标志、段内偏移、生存期、协议类型、源目的 IP 地址、选项内容、数据内容。能够侦听来源于指定 IP 地址的数据包,能够侦听指定目的...

    实用的网络调试助手,涵盖tcp,udp等

    应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,然后TCP把数据流分区成适当长度的报文段(通常受该计算机连接的网络的数据链路层的最大传输单元( [1] MTU)的限制)。之后TCP把结果包传给IP层,由它来...

    packetnet:官方存储库-高性能.Net程序集,用于解剖和构造网络数据包,例如以太网,ip,tcp,udp等

    Packet.Net Packet.Net是一种高性能的.Net程序集,用于解剖和构造网络数据包,例如以太网,ip,tcp,udp等。 最初由Chris Morgan 创建 在PacketDotNet命名空间中找到代码。表现Packet.Net旨在实现最高性能。 因此,...

    网络嗅探器课程设计.doc

    比如,对 IP 头而言,需要显示 版本、头长度、服务类型、数据包长度、标识、 DFMF 标志、段内偏移、生存期、协议类型、源目的 IP 地址、选项内容、数据内容。要求显示数据的实际含义(例如用 ASCII 表示); •能够...

    网络嗅探器带报告带源码

    比如,对 IP 头而言,需要显示 版本、头长度、服务类型、数据包长度、标识、 DF/MF 标志、段内偏移、生存期、协议类型、源目的 IP 地址、选项内容、数据内容。要求显示数据的实际含义(例如用 ASCII 表示); • ...

    个人网络嗅探器 (Sniffer) .rar

    比如,对 IP 头而言,需要显示 版本、头长度、服务类型、数据包长度、标识、 DF/MF 标志、段内偏移、生存期、协议类型、源目的 IP 地址、选项内容、数据内容。要求显示数据的实际含义(例如用 ASCII 表示); •...

    入侵检测方法探索vc.rar

    本文深入研究了TCP/IP协议组中的TCP,IP,UDP协议,数据包地分析,入侵检测方法,NIDS入侵规则的建立,DNS服务器的建立,TCP连接的跟踪。利用VC++开发工具实现数据实时抓包,对数据包实时分析,根据端口,协议,IP...

    发送TCP数据包源代码

    //8位协议 (TCP, UDP 或其他) USHORT checksum; //16位IP首部校验和 ULONG sourceIP; //32位源IP地址 ULONG destIP; //32位目的IP地址 }IP_HEADER; //填充IP首部 ipHeader.h_verlen=(IPVER| sizeof(ip...

    基于原始套接字的网络嗅探器

    可以用它来发送和接收 IP 层以上的原始数据包, 如 ICMP, TCP, UDP...在将原始套接字设置完毕,使其能按预期目的工作时,就可以通过recv()函数从网卡接收数据了,接收到的原始数据包存放在缓存RecvBuf[]中,缓冲区...

    网络嗅探器(争优通过).rar

    1.利用原始套接字实现简单的网络嗅探器。 2.系统功能包括: 2.1 原始套接字与网卡邦定,并接收流经网卡的所有...2.5 也可以只分析一种协议,比如IEEE802.3协议、IP协议、TCP协议、或UDP协议等; 2.6 显示分析结果;

    led屏控制sdk包和demo

    1. SDK协议使用UDP或TCP协议进行...5. 数据包的最大长度为9 * 1024字节 ,数据过大时需要分包处理。 6. 下位机使用一个小于等于15字节(最大长度15字节)的设备ID来唯一标识当前控制卡。例如:A603-D000-A0000 和 A30-

    计算机网络课程设计嗅探器(源文件及实验报告)

    1.利用原始套接字实现简单的网络嗅探器。...2.5 也可以只分析一种协议,比如IEEE802.3协议、IP协议、TCP协议、或UDP协议等。如果每层协议都分析,可获加分。 2.6 显示分析结果 3. 开发工具不限,建议使用VC++

    计算系统与网络安全.pptx

    ICMP ICMP是TCP/IP中重要的协议之一 ICMP使用与IP相同的首部格式,在首部之后,在IP数据包的数据部分,ICMP加入一个ICMP类型字段,ICMP余下的格式依赖于ICMP类型字段 ICMP的类型:响应应答(0)、目的不可到达(3)...

    可以仿造ip

    我们知道,TCP/IP网络数据全部是通过封装在IP数据包中在Internet网上传送的,也就是封装建立起一个包含IP头和数据的IP数据报。一般来说,网络软件总是以多个32位字产生IP头,即使必须用附加的0填充IP头。IP头包含了...

    抓包工具 sniffer

    40039=导出 TCP/IP 流报告(&E) 40001=保存数据包摘要(&A) 40009=属性(&P) 40002=退出(&X) 70002=编辑(&E) 40031=复制(&C) 40007=全选(&A) 40015=全部取消选定(&D) 40032=下一项(&N) 40033=上一项(&P) 70003=查看(&V)...

Global site tag (gtag.js) - Google Analytics