TCP数据包格式如何去看?

如题所述

ICMP是“Internet Control Message Protocol”(Internet控制消息协议)的缩写。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。  我们在网络中经常会使用到ICMP协议,只不过我们觉察不到而已。比如我们经常使用的用于检查网络通不通的Ping命令,这个“Ping”的过程实际上就是ICMP协议工作的过程。还有其他的网络命令如跟踪路由的Tracert命令也是基于ICMP协议的。 ICMP的重要性  ICMP协议对于网络安全具有极其重要的意义。ICMP协议本身的特点决定了它非常容易被用于攻击网络上的路由器和主机. 比如,可以利用操作系统规定的ICMP数据包最大尺寸不超过64KB这一规定,向主机发起“Ping of Death”(死亡之Ping)攻击。“Ping of Death” 攻击的原理是:如果ICMP数据包的尺寸超过64KB上限时,主机就会出现内存分配错误,导致TCP/IP堆栈崩溃,致使主机死机。  此外,向目标主机长时间、连续、大量地发送ICMP数据包,也会最终使系统瘫痪。大量的ICMP数据包会形成“ICMP风暴”,使得目标主机耗费大量的CPU资源处理,疲于奔命。  应对ICMP攻击  虽然ICMP协议给黑客以可乘之机,但是ICMP攻击也并非无药可医。只要在日常网络管理中未雨绸缪,提前做好准备,就可以有效地避免ICMP攻击造成的损失。  对于“Ping of Death”攻击,可以采取两种方法进行防范:第一种方法是在路由器上对ICMP数据包进行带宽限制,将ICMP占用的带宽控制在一定的范围内,这样即使有ICMP攻击,它所占用的带宽也是非常有限的,对整个网络的影响非常少;第二种方法就是在主机上设置ICMP数据包的处理规则,最好是设定拒绝所有的ICMP数据包。  设置ICMP数据包处理规则的方法也有两种,一种是在操作系统上设置包过滤,另一种是在主机上安装防火墙。freebsd下可以使用ipfw来防止ping(icmp)~
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-08-15
如图所示:
第2个回答  推荐于2017-12-16
TCP报头结构包括:
1.Source Port(源端口):标识客户设备发起请求的端口号
2.Destination Port(目的端口):标识提供服务的设备的应用程序的端口号
3.Sequence number(序号):用于标识本地发送的TCP数据的顺序
4.Acknowledgment number(确认号):用于对接收到的TCP数据进行确认
5.header length(报头长度):用于标识TCP数据报头的长度(TCP报头通常为20Byte,最大为40Byte)
6.Reserver(保留):该字段不被使用
7.Code(代码):用于标识TCP不同的控制消息
8.Window Size(窗口尺寸):用于标识本地设备在收到对方确认消息前能够发送的TCP数据量的大小
9.Checksum(校验和):用于校验TCP数据的正确性
10.Urgent Pointer(紧急指针):用于标识TCP所承载的高层数据需要紧急或特殊处理的部分
11.Options(选项):用于TCP报头功能的扩展
12.Data(数据):用于承载高层数据载荷本回答被网友采纳