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 ... 
随机推荐
- 添加到SQLAgentReaderRole角色后报拒绝SELECT权限
			最近有点大意,同事需要查看作业的权限,"理所当然"就将对应登录名添加到SQLAgentReaderRole角色. msdb的SQLAgentReaderRole数据库角色的成员继承 ... 
- centos7最小安装后常常需要添加的命令
			本人下载的最小镜像文件下载地址:http://pan.baidu.com/s/1kUD2jbT 原文地址:http://blog.csdn.net/nmgrd/article/details/5176 ... 
- 《30天自制操作系统》19_day_学习笔记
			harib16a: 这一部分,我们在系统中实现读取文件内容的命令type.在windows中,输入“type 文件名”,在Linux中,输入“cat 文件名”都可以显示文件的内容.我们先来看看如何读取 ... 
- windows下的host文件在哪里?做什么用的?
			在Window系统中有个Hosts文件(没有后缀名),在Windows98系统下该文件在Windows目录,在Windows2000/XP系统中位于C:\Winnt\System32\Drivers\ ... 
- Android Bitmap转换WebPng图片导致损坏的分析及解决方案
			出现问题的code!!! private void saveImage(String uri, String savePath) throws IOException { // 创建连接 HttpUR ... 
- 我的第一个开源项目-logger4Net
			学会学习,学会分享,学会创造. 这我的第一个开源项目.以前总觉得开源离自己很远,但通过不断学习发现,其实自己已经走在这条路上.思想就在那,只要懂得学习,懂得分享,就会懂享受创造的快乐感与殷实感. 没做 ... 
- CentOS7上部署MONO和Jexus
			一:安装MONO 首先通过putty连接上linux,我这里的linux版本为CentOS,连上后首先执行: rpm --import "http://keyserver.Ubuntu.co ... 
- vmware workstation unrecoverable error: (vmui)报错解决方法
			实验室7月份刚换了电脑,之前一直用vmware来跑linux搞嵌入式开发,无论是宿舍的笔记本,还是之前用的旧台式机,都可以妥妥的跑vmware没有问题,结果换了新电脑之后,装上vmware works ... 
- 【转】PowerShell入门(十):使用配置文件
			转至:http://www.cnblogs.com/ceachy/archive/2013/03/01/PowerShell_Profile.html 在命令行中定义别名.变量和函数,只是将它们添加在 ... 
- svn小设置
			由于每次提交代码或者更新代码都需要输入密码,太不方便,今天请教了高手设置一下svn,问题解决... 流程如下 TortoiseSVN --> Settings --> Network ... 
 
			
		





 









