ip封包
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
從一直以來討論至今﹐我們都不斷地接觸到“封包”這個詞﹐相信您也很有興趣想知道這個“封包”究竟是個什麼樣的東東吧﹗下面就讓我們一起看看一個IP封包究竟包含了那些內容。 擷取IP封包 如果您的機器上面裝有 netxray 等封包擷取軟體﹐或使用NT的“網路監視器”﹐我們就可以擷取那些進出本機的封包了。 當我們打開擷取功能之後﹐然後使用ping命令隨便ping一個地址﹐如﹕www.hinet.net。我們可以擷取到如下這些封包﹕ 正如我們所見到的﹐我們擷取到DNS和ICMP的封包了﹐因為www.hinet.net需要到DNS解釋﹐而ping是一個ICMP協定。您或許知道ICMP封包的type為“Echo Request”和“Echo Reply”分別代表什麼意思吧﹖ 讓我們再深入一點﹐看看DNS封包裡面有些什麼東東﹕ 如果您往上卷回有關“DNS”的文章﹐看看我們用 nslookup 的 debug 模式查找 www.hinet.ne t這個網址時候﹐引證一下那裡的內容﹐您就知道這個封包說些什麼了。 下面讓我們再看看ICMP封包裡面的內容﹕ 其實我們真正擷取到的封包內容應該是紅圈的範圍﹐在上面和右邊的欄目裡面的資料是經過程式整理出來的結果。在第一行裡面﹐我們看到“00 80 c7 47 8c 9a 48 54 e8 27 75 77”這串數字﹐所代表的分別是目的地和來源地的MAC地址﹔然後“08 00”代表的是一個Ethernet II的IP協定類型。Ethernet II可以說是IEEE802.3的改進版本。(還記得“網路概論”裡面關於“邏輯形態”的敘述麼﹖)。這裡可以說是Datalink網路層所要追蹤的資料。 然後﹐接下來的是屬於IP封包的內容﹕ 請先記著上圖的內容﹐我打算在下一節裡面在詳細討論每一行的意思。 IP封包格式 首先﹐讓我們看看IP封包的格式是怎樣的﹐和其組成部份﹐以及各部份的長度如何﹕
在上圖中﹐括號之內的數字就是各部件的長度(bit)﹐如果您夠細心﹐就會計算得出每一列的總長度都是32bit。下面我們分別對各部件名稱解釋一下﹕
讓我們看看我們擷取的ICMP封包﹐其中屬於IP部份的開頭﹕ 在這裡﹕我們看到的數值是“45”﹐前面的“4”就是版本號數﹐而後面的“5”則是標頭長度。
從上圖我們看到的十六進位數值是“003C”﹐換成十進位就是“60”了。
從上圖我們可以看到此封包的ID為﹕40973 (將 a00d 換成十進制就知道了)。
在下例中﹐我們看到這個封包的標記為“0”﹐也就是目前並未使用。
上圖中我們看到的數值﹐可不是 20 哦﹐因為這是個十六進位數字﹐要換成十進位才知道 TTL 原來是 32 個跳站。
------------------------------------------------------ ip 0 IP # internet protocol, pseudo protocol number icmp 1 ICMP # internet control message protocol igmp 2 IGMP # Internet Group Management ggp 3 GGP # gateway-gateway protocol ipencap 4 IP-ENCAP # IP encapsulated in IP (officially ``IP'') st 5 ST # ST datagram mode tcp 6 TCP # transmission control protocol egp 8 EGP # exterior gateway protocol pup 12 PUP # PARC universal packet protocol udp 17 UDP # user datagram protocol hmp 20 HMP # host monitoring protocol xns-idp 22 XNS-IDP # Xerox NS IDP rdp 27 RDP # "reliable datagram" protocol iso-tp4 29 ISO-TP4 # ISO Transport Protocol class 4 xtp 36 XTP # Xpress Tranfer Protocol ddp 37 DDP # Datagram Delivery Protocol idpr-cmtp 39 IDPR-CMTP # IDPR Control Message Transport rspf 73 RSPF #Radio Shortest Path First. vmtp 81 VMTP # Versatile Message Transport ospf 89 OSPFIGP # Open Shortest Path First IGP ipip 94 IPIP # Yet Another IP encapsulation encap 98 ENCAP # Yet Another IP encapsulation ------------------------------------------------------ 在我們這個例子中﹐可以看得出PROT的號碼為“01”﹐對照/etc/protocol檔案﹐我們可以知道這是一個ICMP協定。
上圖中我們看到的封包之HC為﹕“9049”。
我們將“c0.a8.00.0f”換成十進位﹐就可以得出“192.168.0.15”這個地址了。
看看﹐你能不能將“a8.5f.01.54”換成“168.95.1.84”﹖
www.study-area.org © 2001 Netman 網中人 |
ip封包的更多相关文章
- IP封包的封装 - 首部内容
IP 封包的封装 目前因特网社会的 IP 有两种版本,一种是目前使用最广泛的 IPv4 (Internet Protocol version 4, 因特网协定第四版), 一种则是预期未来会热门的 IP ...
- IP封包协议头/TCP协议头/TCP3次握手/TCP4次挥手/UDP协议头/ICMP协议头/HTTP协议(请求报文和响应报文)/IP地址/子网掩码(划分子网)/路由概念/MAC封包格式
IP协议头IP包头格式: 1.版本号:4个bit,用来标识IP版本号.这个4位字段的值设置为二进制的0100表示IPv4,设置为0110表示IPv6.目前使用的IP协议版本号是4. 2.首部长度:4个 ...
- 【linux】虚拟机安装centos后ping ip地址出现错误:Network is unreachable
来源:https://my.oschina.net/stonezing/blog/515480 方案一: 进入/etc/sysconfig/network-scripts/ 查看这下面的文件 每个人的 ...
- 2.1.5 计算机网络协议: TCP/IP
应用程序阶段:妳打开浏览器,在浏览器上面输入网址列,按下 [Enter].此时网址列与相关数据会被浏览器包成一个数据, 并向下传给 TCP/IP 的应用层: 应用层:由应用层提供的 HTTP 通讯协议 ...
- 如何在 Linux 终端中知道你的公有 IP
导读 在本文中我将会介绍在几种在 Linux 终端中查看你的公有 IP 地址的方法.这对普通用户来说并无意义,但 Linux 服务器(无GUI或者作为只能使用基本工具的用户登录时)会很有用.无论如何, ...
- IP的种类与获取方式
IP 的种类与取得方式 接下来要跟大家谈一谈也是很容易造成大家困扰的一个部分,那就是 IP 的种类!很多朋友常常听到什么『真实IP, 实体 IP, 虚拟 IP, 假的 IP....』烦都烦死了-其实不 ...
- 初识TCP/IP协议
初识TCP/IP协议 TCP/IP 全称是(Transmission Control Protocol / Internet Protocol),传输控制协议/网际协议.TCP/IP定义了电子设备(比 ...
- 在Linux终端中查看公有IP的方法详解
首先回顾一下一般的查看IP的命令: ifconfigLinux查看IP地址的命令--ifconfigifconfig命令用于查看和更改网络接口的地址和参数 $ifconfig -a lo0: fla ...
- 【TCP/IP】【网络基础】网页访问流程
引用自 <鸟哥的linux私房菜> http://cn.linux.vbird.org/linux_server/0110network_basic_1.php#ps7 那 TCP/IP ...
随机推荐
- vim - Convert between hex and decimal
http://vim.wikia.com/wiki/VimTip448 ga g8
- yii框架的增删改查
一.新增 使用model::save()操作进行新增数据 $user= new User; $user->username =$username; $user->password =$pa ...
- ebs R12.2启动报错"failed to start a managed process after the maximum retry limit"
启动日志: Error --> Process (index=1,uid=1739599208,pid=4479) failed to start a managed process after ...
- eclipse进行编译时总是有javascript validator错误提示
右击工程项目的properties——builders——去掉对javascript的验证就ok啦
- linux格式批量转换为dos格式
注:写的只是基本知识,望高手勿喷,写这个不是为了炫耀,只是为了方便其他人,仅此而已. 一:脚本功能: 批量处理目录以及子目录下的文件格式问题,能够轻易的将linux格式转换为dos格式. 二:写此博客 ...
- docker命令小记
最近工作需要,对docker稍微了解了一下,大部分内容网上都有各种各样的教程.有两个稍微特殊的命令这里记录一下: 1. rename image的命令 从各种私有镜像下载后用docker images ...
- .NET 泛型分析
.NET 泛型解析 一.问题背景 我们在编程的时候往往因为需要处理不同类型的数据或者对象,重复编写很多类似的代码,造成代码的冗余,代码也显得不那么优雅,泛型的出现,正好是为了解决这个问题,实现继承. ...
- java关键字 super 和 this
简单粗暴的说就是: super: 是指父类,想要在子类方法中调用父类的实例变量或方法可以通过super 来访问 this:是指当前类,想要访问当前类的实例变量和方法可以使用this,同时可以省略
- ios学习-制作一个浏览图片的Demo
一.项目要求:制作一个浏览图片的Demo,要求包含夜间模式,以及改变图片大小,能够显示不同的图片描述 二.开发步骤: 1.在storyboard上添加一个空白的View,然后添加”设置“按钮,添加im ...
- 介绍Ext JS 4.2的新特性的《深入浅出Ext JS》上市
以用户为中心的时代,应用的界面外观变得越来越重要.然而,很多程序员都缺乏美术功底,要开发出界面美观的应用实属不易.Ext JS的出现,为广大程序员解决了这一难题.它有丰富多彩的界面和强大的功能,是开发 ...