Skip to content

Latest commit

 

History

History
131 lines (73 loc) · 11 KB

TCP-IP协议及其应用.md

File metadata and controls

131 lines (73 loc) · 11 KB

TCP-IP协议及其应用

林成浴

1.2 OSI参考模型

计算机网络都设计成层次结构。分层法最核心的思路是上一层的功能建立在下一层的功能基础上,并且在每一层内均要遵守一定的规则。

1.3 TCP/IP协议簇

网络层又称为互联网层或IP层,负责处理IP数据包的传输、路由选择、流量控制和拥塞控制

IP地址)与底层物理网络地址之间进行转换的地址解析协议(Address Resolution Protocol, ARP)和反向地址解析协议(Reverse Address Resolution Protocol, RARP)。ARP用于根据IP地址获取物理地址。

Internet控制报文协议(Internet Control Message Protocol, ICMP)是主机和网关进行差错报告、控制和进行请求/应答的协议。Internet组

在最底层的物理层,专业人员往往采用专门的线缆测试仪,没有测试仪的可通过网络设备(网卡、交换机等)信号灯进行目测。数据链路层的问题不多,对于TCP/IP网络,可以使用简单的arp命令来检查MAC地址(物理地址)和IP地址之间的映射问题。网络层出现问题的可能性大一些,路由配置容易出现错误,可通过route命令来测试路由路径是否正确,也可使用ping命令来测试连通性。协议分析器具有很强的检测和排查能力,能够分析链路层及其以上层次的数据通信,当然包括传输层。至于应用层,可使用应用程序本身进行测试。接下来,将具体介绍网络各层分析排查的基本方法。

1.4 协议分析

在以太网中,所有通信都是以广播方式工作的,同一个网段的所有网络接口都可访问传输介质上传输的所有数据,也就是说,所有的物理信号都要经过网络中的任何一个节点。而每一个网络接口都有一个唯一的硬件地址(MAC地址)。

· 广播:能够接收发送给自己的数据帧和网络中的广播信息。

2.2 MAC寻址

在以太网中,采用介质访问控制(Media Access Control, MAC)地址进行寻址。

IP地址是TCP/IP网络层的寻址机制,而MAC是802.3/Ethernet链路层的寻址机制,它们位于不同的层次。

MAC帧有以下3种。 · 单播(Unicast)帧:目的MAC地址是单站地址,用于一对一通信,该帧发送某一指定的站点。 · 广播(Broadcast)帧:目的MAC 地址为广播地址(全1),用于一对全体通信,该帧将发送给网段内所有站点。 · 多播(Multicast)帧:目的MAC地址为多播地址,用于一对多通信,该帧发送给指定的一部分站点。

影响网络性能,为解决这个问题就要用到路由器。路由器将大的网络划分成若干网段,有效隔离广播帧,将广播限制在较小的范围内。

实际上MAC地址的有效性只限于局域网内。虽然不同设备MAC要求是唯一的,但由于每经过一个路由网段,数据包的源和目的MAC地址都要更改(当然源和目的IP地址不变),所以不同网段中存在相同的MAC地址也是可以的,只要同一网段内MAC地址不重复就行。

3.1 IP分类地址

32位全为0的IP地址0.0.0.0表示本网络本主机,只能作为源地址。

环回接口允许运行在同一台主机上的客户程序和服务器程序通过TCP/IP进行通信。根据惯例,大多数系统把IP地址127.0.0.1分配给这个接口,并命名为Localhost。它只能用目的地址。一个传给环回接口的IP数据包不会发送到网络上,而是在离开网络层时将其回送给本机的有关进程,也就是说数据包不会离开当前主机。因此,环回地址一般用来做循环测试,如发送信息给127.0.0.1,此消息将回传给自己。

3.5 地址解析

以太网卡的MAC地址是48位,而IP地址是一个32位的逻辑地址。使用ARP和RARP将这两种地址关联起来,建立一一映射的关系,使IP数据报能通过物理链路来传输。

ARP与RARP是位于TCP/IP协议栈中的低层协议,负责网络层(第3层)的IP地址与数据连接层(第2层)的物理地址之间的转换。

在网络上的每一个节点都会接收这个ARP查询报文,将该报文中的接收方IP地址与和自己的IP地址进行比较,只有拥有相同IP地址的节点才向查询者回传ARP应答报文,该应答报文中包含有接收方的IP地址和物理地址。由于知道查询者物理地址,该报文用单播方式直接发送给查询者。

在使用IP地址进行数据通信时,首先需要解析IP地址,如果ARP缓存中没有地址映射记录,就会使用ARP查询(发出ARP请求),并获得结果(收到ARP应答)

· ARP请求的内容是谁是192.168.0.1(目的节点),请告诉192.168.0.100(源节点)。 · ARP报文中的操作码值为1,表示ARP请求。 · ARP报文中的目标物理地址填写为全0,是要查找的MAC地址。 · 封装ARP 请求报文的以太网帧的目的地址为广播地址(ff:ff:ff:ff:ff:ff),表示该帧广播到物理网络中每个节点。

· ARP应答的内容是192.168.0.1,在地址为00:1d:0f:84:7d:7c的节点上。 · ARP报文中的操作码值为2,表示ARP应答。 · ARP报文中的目标物理地址为00:80:c8:e8:5d:b5,它是源节点的MAC地址。 · 封装ARP 请求报文的以太网帧的目的地址为单播地址(00:80:c8:e8:5d:b5),表示该帧发送到物理网络中发出ARP请求的源节点。

ARP请求使用广播,如果每次在发送IP数据报前都重复地址解析过程,势必会带来较大的开销,为使地址解析广播尽可能少,每台主机或路由器都维护一个名为ARP缓存的本地列表

默认情况下,Windows系统中ARP表项在内存中的生存期为120s(2min),这就意味着一个ARP表项如果在2min内没有被使用就会被放弃。

注意绝大多数组网设备常用的ARP表项生存期默认为300s(5min)。

网络技术人员应当理解和掌握。局域网的数据传输不是根据IP地址进行,而是按照MAC地址进行传输,黑客很容易通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞。

4.1 IP协议概述

IP的主要目的是通过一个互联的网络传输数据报,涉及两个最基本的功能。 · 寻址(Addressing):IP协议根据数据报首部中包括的目的地址将数据报传送到目的节点,这就要涉及传送路径的选择,即路由功能。IP协议使用IP地址来实现路由。 · 分片(Fragmentation):IP协议还提供对数据大小的分片和重组,以适应不同网络对数据包大小的限制。如果网络只能传送小数据包,IP协议将对数据报进行分段并重新组成小块再进行传送。

IP是一个无连接的、不可靠的、点对点的协议,只能尽力(Best Effort)传送数据,不能保证数据的到达。具体地讲,主要有以下特性。

第5章 ICMP协议

由于IP协议是一种不可靠的协议,无法进行差错控制,ICMP(Internet Control Message Protocol,因特网控制报文协议)设计的最初目的主要是用于IP层的差错报告。随着网络的发展, ICMP增加了检测和控制功能,大量用于传输控制报文,包括拥塞控制、路径控制以及路由器或主机信息的探测查询。ICMP属于网络层协议,是IP协议的重要补充,但是不能用来传送应用程序数据,只能用来传送有关网络事件和变化的通知报文。本

5.1 ICMP协议概述

ICMP与IP协议都位于网络层,但是ICMP在TCP/IP协议栈中的位置比IP协议略高一些,ICMP报文需要封装在IP数据报的数据部分进行传输。

5.4 ICMP应用

ICMP最常见的用法是对网络进行测试和故障诊断。两个最著名的实用程序——Ping和Traceroute就是依靠ICMP完成连通性测试和路由跟踪。另一方面,攻击者也能将ICMP用于网络侦察活动以获取网络地址和活动进程,ICMP安全问题不容忽视。

ICMP既然可以作为管理员检测和诊断网络的工具,攻击者也就用它来搜集网络信息,为此一些企业会限制ICMP流量来确保安全。

7.2 TCP段格式

0指明发送方应该停止发送,因为接收方的TCP缓冲区已满。这个值通常作为接收窗口(rwnd),并由接收方来确定,接收方可以使用此字段来改变发送方的窗口大小。在这种情况下,发送端必须服从接收端的决定。

7.3 TCP连接

主动关闭的一方在发送完对对方FIN段的确认(ACK段)后,就会进入TIME_WAIT状态,该连接将不能再被使用,但并没有完全断开。与此同时会设置一个计时器,其截止期是MSL的两倍,因此TIME_WAIT状态又称为2MSL状态。MSL即段最长生存时间(Maximum Segment Lifetime),是任何报文段被丢弃前在网络内的最长时间。2MSL也就是这个时间的2倍。MSL的常用值是30~60s。

二是避免从一个连接来的重复的报文段可能会出现在下一个连接中造成混淆。

7.4 TCP可靠性

TCP采用的可靠性技术主要包括差错控制、流量控制和拥塞控制。

7.4.2 TCP流量控制 TCP在传输层上实现端到端的流量控制,为接收方对发送方发送数据进行控制,以避免大量的数据导致接收方瘫痪,这是通过滑动窗口机制来实现的。 1.滑动窗口机制

为此TCP提供了拥塞控制机制。发送方所能发送的数据量不仅要受接收方的控制(流量控制),而且还要由网络的拥塞程度来决定。

为TCP定义了4种拥塞控制机制,分别是慢启动(Slow Start)、拥塞避免(Congestion Avoidance)、快重传(Fast Retransmit)和快恢复(Fast Recovery)。

在慢启动阶段,发送方从非常慢的发送速率开始,但很快就把速率增大到一个阀值;当达到阀值时,数据发送速率的增大就放慢以避免拥塞;

最后,如果检测到拥塞,发送方就又回到慢启动或拥塞避免阶段。为了避免和消除拥塞,TCP循环往复地采用3种策略来控制拥塞窗口的大小。

8.2 DNS解析原理

递归查询要求DNS服务器在任何情况下都要返回结果。一般DNS客户端向DNS服务器提出的查询请求属递归查询。

DNS服务器需要经过逐层查询才能获得查询结果,效率很低,而且还会增加根DNS服务器的负担。

迭代查询将对DNS服务器进行查询的任务交给DNS客户端,DNS服务器只是给客户端返回一个提示,告诉它到另一台DNS服务器继续查询,直到查到所需结果为止。如果最后一台DNS服务器中也不能提供所需答案,则宣告查询失败。一般DNS服务器之间的查询请求属于迭代查询。

13.10 IPv4到IPv6的过渡

源IPv6网络的边缘设备(隧道的源端设备,双栈路由器)收到IPv6网络的IPv6数据包后,将IPv6数据包封装在IPv4数据包中,成为一个IPv4数据包,在IPv4网络中传输到目的IPv6网络的边缘设备。该设备解封装去掉外部IPv4首部,恢复原来的IPv6报文,再进行IPv6转发。