文章目录
- 前言
- 一、IP协议
- 1 IP协议基本特点
- 2 IP数据报的格式
- 3 IP地址
- 4 IP数据报的转发
- 4.1 子网
- 4.2 计算机发出IP数据报
- 4.3 路由器转发IP数据报
- 5 IP地址的分配
- 6 双网卡的设置与应用
- 6.1 双网卡的设置
- 6.2 双网卡计算机成为交换机
- 6.3 双网卡计算机成为NAT路由器
- 6.4 代理服务器的设置
- 总结
前言
ip 和arp,icmp分析
一、IP协议
1 IP协议基本特点
不可靠、无连接。
2 IP数据报的格式
1. 版本(4位) 2. 首部长度(4位) 单位4字节,为什么? 3. 区分服务(8位) 以前叫做服务类型,说明此IP数据报对路由器的要求,但很少使用。最后两位为ECN,由RFC 3168规定,是路由器对接收计算机的显式拥塞通告。 4. 总长度(16位)。 单位为字节,死亡之ping,ping –l命令。 5. 标识(16位)、6.标志(3位)、7.片偏移(13位) 这3个字段用于分片与还原。MTU(最大传输单元):帧的数据部分长度上限。如果IP数据报超过此值,则需要分片,分片可以发生在发送计算机,也可以发生在路由器,在最终的接收机还原。 分片只分数据部分。 标识:每发送一个IP数据报就加1,若干分片的此字段相同,可以知道属于同一IP数据报。 标志:左边一位未用,中间一位DF(1:不能分片,0:能分片),右边一位MF**(1:后面还有分片,0:后面没有分片了,这是最后一片)。** 片偏移:指明分片在原IP数据报中的位置。单位是8字节,为什么? 例子:原数据报20 3980字节。
泪滴攻击。 8. 生存时间(8位) TTL具有不同的初值,Linux为64,Windows 10为128,Unix则为最大值255。 9. 协议(8位) 起分用作用,与以太网帧中的类型字段功能类似,ICMP为1,TCP为6、UDP为17。 10. 首部检验和(16位) 只包括首部,检验和置0,将首部划分为多个16位相加,结果取反。接收方检验和不置0,同样计算,结果为0说明正确。 11. 源IP地址 12. 目的IP地址 13. 选项与填充 如果选项不是4字节的整数倍,必须填充至4字节的整数倍。
3 IP地址
IP地址被设计为两部分:左边一部分指明该计算机所在的网络,叫做网络号,右边一部分指明该计算机,叫做主机号。网络号因为在IP地址的前边,所以也叫做前缀(prefix)。为指明计算机所在的网络,IP地址划分为网络号与主机号非常重要,无论是路由器,还是一般计算机都利用这一特性进行通信。
确定网络号与主机号的长度的方法是使用子网掩码(subnet mask)。 子网掩码的长度也是32位,左边部分全是1,右边部分全是0,1的位数与网络号相同。一个IP地址总是与一个子网掩码配对出现,根据子网掩码就能确定网络号与主机号的长度了。
掩码有2种写法:255.255.255.0=/24 特殊IP地址: 1. 主机号全为0与全为1的IP地址,主机号全为0代表这个网络,叫做网络IP地址,主机号全为1则是广播IP地址。主机号全为0与全为1的IP地址因为有特殊的含义,所以不能再分配给计算机。 2. 范围为127.0.0.1~127.255.255.254的IP地址是环回地址,都是指本计算机,其中第1个IP地址127.0.0.1最为常用。 3. 私有IP地址或专用IP地址(private IP address),分为4块:10.0.0.0~10.255.255.255、172.16.0.0~172.31.255.255、192.168.0.0~192.168.255.255、169.254.0.0~169.254.255.255。 4. 第4块169.254.0.0~169.254.255.255非常特殊,叫做自动私有IP地址,当一台计算机设置为使用DHCP协议自动获得IP地址的时候,在自动获得IP地址失败(如没有DHCP服务器)的情况下,计算机会自动为自己分配一个自动私有IP地址。与私有地址对应,那些必须申请才能使用的IP地址叫做公有IP地址或公网IP地址(public IP address)。
4 IP数据报的转发
4.1 子网
一般认为,由二层交换机连接的计算机组成一个网络,称为一个子网(网段),由路由器连接的,则不是同网络(子网、网段)。一个网络是一个广播域。 同一个子网内所有计算机的网络号相同,而路由器不同接口的网络号不同,两个路由器直接相连的接口通常也组成一个网络。
IP地址为1.1.1.1/24、1.1.1.2/24与1.1.1.3/24的3台计算机都属于子网1,子网1的IP地址则是1.1.1.0/24。1.1.1.255是子网1的广播IP地址,假设计算机1.1.1.1发出目的IP地址为1.1.1.255的广播IP数据报,这些IP数据报会到达子网1内的所有计算机,但不能到达其他子网的计算机。 一个问题:先用路由器连接好不同的网络,网络的物理结构就确定了,而IP地址是可以随意设置的,**让一台计算机IP地址的网络号与子网内其他计算机的不同,会发生什么情况?**如上图所示,子网3中的一台计算机的IP地址为4.4.4.1,与其他计算机IP地址的网络号不同,这台计算机能与其他计算机正常通信吗?路由器A与B的每个接口的IP地址都不相同,而且网络号一定要与本子网的网络号相同,如果不这样设置,路由器会无法正常工作,这又是为什么?
4.2 计算机发出IP数据报
一台计算机配置IP协议属性时,需要设置IP地址、子网掩码与默认网关。有两种情况**:一是发送计算机与接收计算机在同一子网内**,二是发送计算机与接收计算机不在同一子网内。利用子网掩码与自己的IP地址与目的IP地址分别相“与”,就能区分这两种情况。 1.发送计算机与接收计算机在同一子网内 例如,计算机1.1.1.1向1.1.1.2发送一个IP数据报。1.1.1.1、1.1.1.2和子网掩码255.255.255.0与运算的结果都是1.1.1.0**,这说明它们在同一个子网内**。1.1.1.1在IP数据报与以太网帧的地址字段分别填写上自己与1.1.1.2的相关信息,如下图所示。这样的数据发送到网络上,就会顺利地由1.1.1.2接收处理。
2.发送计算机与接收计算机不在同一子网内 这种情况比较复杂,例如,计算机1.1.1.1向3.3.3.1发送一个IP数据报。1.1.1.1、3.3.3.1和子网掩码255.255.255.0与运算的结果不相同,前者是1.1.1.0,后者是3.3.3.0,这说明它们不在同一个子网内。1.1.1.1先把IP数据报发给路由器A,路由器A再转发给路由器B,最后路由器B再转发给3.3.3.1,这中间经过了两个路由器与3个子网。每经过一个路由器,该路由器的输入接口会拆封进入的帧,得到IP数据报,再转发到输出接口,输出接口则把IP数据报封装为一个新的帧,再发送出去。这样就产生了3个不同的以太网帧,各帧的地址情况如下图所示。从图中可以看出,IP数据报在传输过程中,源IP地址与目的IP地址始终不变,路由器就根据目的IP地址转发。
4.3 路由器转发IP数据报
路由器根据路由表转发IP数据报,下面以下图为例解释。图中两台路由器A与B各有4个接口,连接了多个网络,网络1到网络4都有200台计算机,它们的网络IP地址分别是1.1.1.0/24、2.2.2.0/24、3.3.3.0/24、4.4.4.0/24。路由器A接口3的IP地址是5.5.5.1,路由器B接口3的IP地址是5.5.5.2。
路由表有两列最基本的数据:**目的IP地址与下一跳。路由器A的路由表如下表所示,第1行的含义是对于目的IP地址为1.1.1.1的IP数据报,应该发往接口1,其他行依次类推。路由器转发IP数据报时先查找路由表,再根据查询结果把IP数据报发往不同的接口。路由器B中也有类似的路由表。
理论上,世界上每一台计算机都要在路由表中占一行,路由表可能会有数十亿行。路由器需要多大的内存才能容纳下这样大的路由表?查询一次又需要多长时间? 为解决这个难题,路由表一般只记录网络的IP地址(当然记录某台计算机的IP地址还是允许的),路由表得以大大缩小。此时还应记录网络IP地址的子网掩码,以搞清网络号的长度。在下表中,前4行就匹配了4个网络中所有的计算机,如3.3.3.1将匹配第3行,应该转发到接口3去。
缩小路由表的另一个办法是增加一行默认路由,表4.4中最后一行就是默认路由,它的含义是与其他行都不匹配的IP数据报都将转发到接口4去。默认路由应该最后使用,只有与其他所有行都不匹配时,才能使用默认路由,如6.6.6.6就匹配默认路由,应该转发到接口4去。 目的IP地址可能匹配路由表中的两行或更多行。例如,1.1.0.0/16转发到接口1,1.1.1.0/24转发到接口2,目的IP地址1.1.1.1与这两行都匹配。这时应该使用最长前缀匹配规则,网络号越长,地址就越具体,就像寄信,**知道收信人在山东省淄博市后,就直接把信送到淄博市邮政局,没有必要再送到山东省邮政局。
5 IP地址的分配
某单位申请到一个IP地址块,地址块内所有IP地址的网络号都是相同的,实际上就代表了一个子网,该单位可以在这个子网内再划分更小的子网。假设这个地址块的网络IP地址是1.1.1.0/24。 在分配IP地址之前,要做规划。最主要的原则是考虑到以后的发展,要留上足够的未分配IP地址。要划分为4个子网,每个子网中计算机的最大数量分别是100、50、25、25。
在外部的路由器的路由表中,这4个子网可以占有4项,其实也可以占有一项,即1.1.1.0/24。也就是说,在外界看来,这4个子网其实是一个子网,这叫做路由聚合或地址聚合,“超网”的概念就是这样来的。
6 双网卡的设置与应用
6.1 双网卡的设置
当一台计算机安装两块网卡时,需要进行相关的设置,下面按不同情况加以说明。 1.两块网卡不同时使用 若是两块网卡不需要同时使用,就要禁用一块,只启用另一块,两块网卡的属性各自设置,互不相关。如果两块网卡同时启用,可能无法正常工作。 2.两块网卡同时启用,但其中一块网卡的一侧只有一个子网 如图8.53所示,计算机A同时连入子网192.168.1.0/24与1.1.1.0/24,并通过1.1.1.0/24接入互联网,现在很多单位中,计算机同时接入互联网与单位内部网,就是这种情况。这时要在每个网卡上设置IP地址与子网掩码,注意IP地址的网络号要与其所属子网的网络号相同,即网卡1设置为类似于192.168.1.1/24的IP地址,网卡2设置为类似于1.1.1.1/24的IP地址。另外仅在网卡2上设置默认网关,在网卡1上不要设置默认网关,这样计算机A仅在访问子网192.168.1.0/24时使用网卡1,其他所有情况下都使用网卡2。
3.两块网卡同时启用,每块网卡的一侧都有多个子网 如图8.54所示,计算机A同时连入子网210.44.176.0/24与1.1.1.0/24,并通过210.44.176.0/24接入教育网,又通过1.1.1.0/24接入公众网。要在每个网卡上设置其所属子网的IP地址与子网掩码,同时在网卡2上设置默认网关,这个默认网关就成为路由表中的默认路由,用来访问公众网。
所有网卡共用一个路由表,路由表只能有一个有效的默认路由,所以在网卡1上不能再设置默认网关。为了访问教育网,必须在计算机A中添加路由,使得发往教育网的数据从网卡1发出,而不是从网卡2发出。教育网的规模远小于公众网,只需在路由表中添加不到100条的路由。若是在网卡1上设置默认网关,则需要在路由表中添加公众网的路由,公众网的路由太多,根本无法添加。Windows在图形界面下无法添加路由,必须使用route命令添加,假设子网210.44.176.0/24中网关的IP地址是
210.44.176.254,可用下列命令添加永久路由: route -p add 210.44.0.0 mask 255.254.0.0 210.44.176.254 route -p add 210.46.0.0 mask 255.254.0.0 210.44.176.254 route -p add 210.64.0.0 mask 255.254.0.0 210.44.176.254 route -p add 210.66.0.0 mask 255.255.0.0 210.44.176.254 …
命令中的地址块都是教育网的地址块,这些地址块不到100个。
6.2 双网卡计算机成为交换机
安装两块网卡后,计算机可以作为二层交换机使用,但是必须安装相关软件,Windows已内置了这样的软件。打开“控制面板”窗口,双击“网络连接”图标,出现“网络连接”窗口。单击一个网卡连接图标后,按住Ctrl键再单击另一个网卡连接图标,可以同时选中两个网卡连接图标,右击其中的一个,出现如图8.55所示的快捷菜单,选择“桥接”菜单项,稍候会出现“网络桥(网络桥)”连接图标,如图8.56所示。这里的网络桥就是指二层交换机,现在这台计算机已经可以作为二层交换机使用,不过只有两个接口,也可以安装更多的网卡,会成为更多接口的交换机。
右击“网卡1”连接图标,在其快捷菜单上选择“属性”菜单项,出现如图8.57所示的“连接属性”对话框,与未建立网络桥时相比,这时没有了IP地址等很多属性。右击“网络桥(网络桥)”连接图标,其快捷菜单与单个网卡连接的快捷菜单相同,选择“属性”菜单项,出现如图8.58所示的“连接属性”对话框。在上部的列表框中,列出了网络桥中的网卡,不选中复选框,会使该网卡从网络桥中退出;选中复选框,会使该网卡加入到网络桥中。“连接属性”对话框的其他部分与单个网卡连接的完全相同,也可以设置IP地址等属性**。网络桥的多个网卡共用IP地址、默认网关等属性,建立网络桥的计算机仍可以作为一般计算机使用,网络桥的属性就代表该计算机的属性。**
网络桥有什么用处呢?二层交换机有什么用处,网络桥就有什么用处,只不过网络桥只有两个接口。下面介绍网络桥的两种主要应用: 1.有线连接 假设网络桥中的网卡都是有线网卡,这时的网络桥与二层交换机的作用是完全一样的。如图8.59所示,计算机A安装了两块网卡,网卡1连接到计算机B,网卡2连入子网1.1.1.0/24,在A上设置好网络桥后,A与B就都连入网络了。既然网络桥相当于二层交换机,所以B的IP地址,以及A上网络桥的IP地址一定要设置在子网1.1.1.0/24内。这种情况在家庭与办公室中经常碰到,一台计算机已经连网,另一台计算机也需要连网,可是一般用户根本不知道交换机在哪里,就是知道也需要重新布线,这时就可以使用网络桥。
另一种情况**是3台计算机互联,如图8.60所示。计算机B连接在计算机A的网卡1上,计算机C连接在A的网卡2上,在A上设置网络桥,3台计算机就互联在了一起。B与C的IP地址,以及A上网络桥的IP地址一定要设置为同一个子网。**在没有交换机的情况下,使用网络桥是一种应急的好办法。
2.无线连接 图8.59与图8.60中的计算机也可以通过无线网卡进行连接。现在的很多计算机,如笔记本电脑,都同时内置了有线网卡与无线网卡,网络桥非常容易实现,根本不需要另外安装网卡,只不过无线网卡间相连时要使用自组织(Ad hoc)方式。注意:自组织无线局域网中可以有多台计算机,包含无线网卡的网络桥可以成为无线AP,如图8.61所示。笔记本电脑A安装有无线网卡与有线网卡,有线网卡连入子网1.1.1.0/24,无线网卡则与其他3台笔记本电脑组成自组织无线局域网,只需在A上设置好网络桥,所有的笔记本电脑就都连入网络了。当然,所有笔记本电脑的IP地址都要设置在子网1.1.1.0/24内。
图8.61 笔记本电脑A成为AP
6.3 双网卡计算机成为NAT路由器
安装两块网卡后,计算机还可以作为NAT路由器使用,当然必须安装相关软件,Windows已内置了这样的软件。如图8.62所示,计算机A安装了两块网卡,网卡1连接到计算机B,网卡2使用PPPoE连入互联网,很多家庭就是这种情况。在Windows中如何设置才能让A与B都上网呢?
在计算机A的“网络连接”窗口中,建立PPPoE连接“淄博联通”后,右击“淄博联通”图标,在其快捷菜单上选择“属性”菜单项,出现“连接属性”对话框,选择“高级”选项卡,如图8.63所示。在“Internet连接共享”选项区域中,选中“允许其他网络用户通过此计算机的Internet连接来连接”复选框,在“家庭网络连接”下拉列表框中,选择“网卡1”,因为计算机B连接在网卡1上。
单击“确定”按钮,出现如图8.64所示的对话框,意思是网卡1的IP地址被改为了192.168.0.1/24,同时本计算机还启用了DHCP服务器,计算机B应该设置成自动获取IP地址,从本计算机获取192.168.0.0/24子网的IP地址。微软把用户都当成了傻瓜,但是对于掌握了相关知识的读者来说,根本不需要这样,只要把A的网卡1的IP地址,以及B的IP地址都设置在同一子网内,并且B的默认网关是A的网卡1的IP地址,就可以了。单击“是”按钮,如图8.65所示,“淄博联通”图标下面多了一只小手,说明它已被共享。计算机B的数据经过这个共享的连接时,都经过动态NAT转换,从而可以上网。
在图8.62中,另一种情况是计算机A不使用PPPoE,而是直接接入互联网,很多学校的学生宿舍就是这种情况。这时在网卡2上也可以进行Internet连接共享的操作,具体设置与PPPoE连接的基本相同。
6.4 代理服务器的设置
代理服务器作为客户机与服务器之间的中转站,接收客户机的请求,把请求转发给服务器;再接收服务器的响应,把响应转发给客户机。代理服务器提供应用层级别的代理,支持的应用层协议不同,能够中转的应用层数据就不同,有的只能中转HTTP协议数据,有的只能中转FTP协议数据,有的则能中转多种应用层协议的数据。 代理服务器可以是双网卡,也可以是单网卡。如图8.66(a)所示,代理服务器A安装了两块网卡,网卡1连接客户机B,网卡2则接入互联网;在图8.66(b)中,代理服务器A与客户机B、C连接在交换机上,再接入互联网。没有交换机时,例如在家里,可以使用双网卡代理服务器;当客户机很多时,就要使用交换机把客户机与代理服务器连接起来。因为代理服务器提供应用层级别的代理,所以客户机可以与它的代理服务器不在同一个子网内,例如,一台位于中国的客户机可以使用位于美国的代理服务器。互联网上目前有很多代理服务器,而且其中有些是免费的,可以自由使用。
要使用代理服务器,用户必须在客户程序上做相应设置。以IE浏览器为例,打开IE浏览器为窗口,打开“工具”菜单,选择“Internet选项”菜单项,出现“Internet选项”对话框,如图8.67所示,选择“连接”选项卡,单击“局域网设置”按钮,出现如图8.68所示的对话框。在“代理服务器”选项区域中,选中“为LAN使用代理服务器(这些设置不会应用于拨号或V**连接)”复选框,在“地址”文本框中输入代理服务器的IP地址或主机名,在“端口”文本框中输入代理服务器的端口号。单击“确定”按钮,设置完毕。当访问某个网站时,代理服务器会在浏览器与网站间转发HTTP请求与HTTP响应。
在代理服务器上,必须安装代理服务器软件,Windows中没有内置这类软件,下面介绍江苏省盐城亿特软件有限公司推出的亿特代理服务器软件。亿特代理服务器有多种版本,可以从http://www.yitsoftware.com下载,其中免费版不收取任何费用,而且功能满足一般用户的需要。亿特代理服务器运行界面如图8.69所示,窗口中显示的是代理服务器的数据流量,“控制”菜单中的“启动服务”与“停止服务”菜单项可以启动与停止代理服务。
下面介绍亿特代理服务器的设置方法,打开“设置”菜单,选择“代理设置”菜单项,界面如图8.70所示,从下面的选项卡可以看出,亿特代理服务器支持HTTP、Socks、FTP、SMTP、POP3、RTSP、MMS等多种协议。各协议的设置基本相同,下面以HTTP协议为例说明:
(1)“服务端口”是HTTP代理所使用的端口号,浏览器可以使用该端口号与代理服务器建立TCP连接,该端口号要设置在图8.68中的“端口”文本框中。 (2)若选中“使用上级代理服务器”复选框,则亿特代理服务器还将使用代理服务器,叫做上级代理服务器。 (3)若选中“使用缓存”复选框,则亿特代理服务器会缓存从网站接收到的网页,浏览器再次请求时可直接发送给浏览器,不必再访问网站,提高了效率。 (4)在“上级代理设置”选项区域中,上级代理有两种选择**,一是HTTP代理,二是Socks5代理,Socks是一种代理协议,目前广泛使用的是第5版。** (5)若选中“使用上级代理服务器”复选框,就要在“服务器地址”与“服务器端口”文本框中输入上级代理服务器的IP地址与端口号。 (6)有时上级代理服务器需要身份验证,就要选中“需要身份验证”复选框,并在“用户名”与“密码”文本框中输入用户名与密码。
在“设置”菜单中选择“其他设置”菜单项,界面如图8.71所示。在“其他设置”选项区域中,当启动代理服务时,选中前面复选框的协议代理会启动,不选中的协议代理不会启动。在“界面设置”选项区域中,“采样间隔(秒)”文本框中的内容是显示图8.69中数据流量的时间间隔,“曲线基数(Bps)”文本框中的内容是数据流量曲线的单位。
亿特代理服务器免费版几乎没有管理功能,有些代理服务器有强大的管理功能,例如,可以使用户能访问某些网站,而不能访问某些网站;可以使用户在某个时间段内能上网,而其他时间不能上网;可以过滤屏蔽某些敏感数据等。
总结
ip协议非常厉害,运行在网络层,他知道你的ip号,然后来来回回穿梭路由器之中,根据路由表找门路。