📜  网络通信入门

📅  最后修改于: 2020-12-06 10:30:14             🧑  作者: Mango


我们一直都听说过,要进行渗透测试,必须花费pentester一定要了解基本的网络概念,例如IP地址,分类子网,无分类子网,端口和广播网络。第一个原因是,诸如哪些主机位于批准的范围内以及它们具有哪些开放性和响应性的服务,端口和功能之类的活动将决定评估人员将在渗透测试中执行哪种活动。环境不断变化,系统经常被重新分配。因此,很可能旧的漏洞可能再次出现并且在没有扫描网络的良好知识的情况下,有可能不得不重新进行初始扫描。在接下来的部分中,我们将讨论网络通信的基础知识。

参考模型

参考模型提供了一种标准化方法,该方法在全世界范围内都可以接受,因为使用计算机网络的人们分布在广泛的物理范围内,并且他们的网络设备可能具有异构体系结构。为了提供异构设备之间的通信,我们需要一个标准化模型,即参考模型,它将为我们提供这些设备可以通信的方式。

我们有两个参考模型,例如OSI模型和TCP / IP参考模型。但是,OSI模型是一种假设模型,而TCP / IP是一种实用模型。

OSI模型

开放系统接口是由国际标准化组织(ISO)设计的,因此,它也称为ISO-OSI模型。

OSI模型由七层组成,如下图所示。每一层都有特定的函数,但是每一层都为上一层提供服务。

OSI模型

物理层

物理层负责以下活动-

  • 激活,维护和停用物理连接。

  • 定义传输所需的电压和数据速率。

  • 将数字位转换为电信号。

  • 确定连接是单工,半双工还是全双工。

数据链路层

数据链路层执行以下功能-

  • 对要通过物理链路传输的信息执行同步和错误控制。

  • 启用错误检测,并将错误检测位添加到要发送的数据中。

网络层

网络层执行以下功能-

  • 通过各种通道将信号路由到另一端。

  • 通过确定应采用的路由数据来充当网络控制器。

  • 将传出消息划分为数据包,并将传入数据包组合为更高级别的消息。

传输层

传输层执行以下功能-

  • 它决定数据传输应该在并行路径还是在单个路径上进行。

  • 它执行多路复用,分割数据。

  • 它将数据组分成较小的单元,以便网络层更有效地处理它们。

传输层保证了数据从一端到另一端的传输。

会话层

会话层执行以下功能-

  • 管理消息并同步两个不同应用程序之间的对话。

  • 它控制着登录和注销,用户识别,计费和会话管理。

表示层

表示层执行以下功能-

  • 该层确保信息以接收系统可以理解和使用的形式传递。

应用层

应用层执行以下功能-

  • 它提供不同的服务,例如以几种方式操纵信息,重新传输信息文件,分发结果等。

  • 诸如登录或密码检查之类的功能也由应用程序层执行。

TCP / IP模型

传输控制协议和Internet协议(TCP / IP)模型是一种实用模型,已在Internet中使用。

TCP / IP模型将两层(物理层和数据链路层)组合为一层-主机到网络层。下图显示了TCP / IP模型的各个层-

TCP / IP模型

应用层

该层与OSI模型的层相同,并执行以下功能-

  • 它提供不同的服务,例如以几种方式操纵信息,重新传输信息文件,分发结果等。

  • 应用程序层还执行诸如LOGIN或密码检查之类的功能。

  • 以下是应用层中使用的不同协议-

    • 电信网
    • 的FTP
    • SMTP
    • DN
    • HTTP
    • NNTP

传输层

它的功能与OSI模型中传输层的功能相同。考虑以下与传输层有关的要点-

  • 它使用TCP和UDP协议进行端到端传输。

  • TCP是一种可靠的面向连接的协议。

  • TCP还处理流控制。

  • UDP不可靠,并且无连接协议无法执行流量控制。

  • 在此层中使用TCP / IP和UDP协议。

互联网层

该层的函数是允许主机将数据包插入网络,然后使它们独立地到达目的地。但是,接收数据包的顺序可能与它们发送的顺序不同。

Internet层中使用Internet协议(IP)。

主机到网络层

这是TCP / IP模型中的最低层。主机必须使用某种协议连接到网络,以便它可以通过它发送IP数据包。该协议因主机而异,因网络而异。

在此层使用的不同协议是-

  • 阿帕网
  • 卫星网
  • 局域网
  • 分组无线电

有用的架构

以下是一些有用的体系结构,用于网络通信-

以太网帧架构

一位名叫Robert Metcalfe的工程师于1973年首次发明了以太网,该网络是根据IEEE标准802.3定义的。它首先用于在工作站和打印机之间互连和发送数据。超过80%的LAN使用以太网标准,因为它具有速度快,成本低和易于安装的特点。另一方面,如果我们谈论帧,则数据会以这种方式在主机之间传输。帧由各种组件组成,例如MAC地址,IP报头,开始和结束定界符等。

以太网帧以Preamble和SFD开头。以太网报头包含源MAC地址和目标MAC地址,之后是帧的有效载荷。最后一个字段是CRC,用于检测错误。基本的以太网帧结构在IEEE 802.3标准中定义,其解释如下-

以太网(IEEE 802.3)帧格式

以太网分组传输以太网帧作为其有效载荷。以下是以太网帧的图形表示以及每个字段的描述-

Field Name Preamble SFD(Start of frame delimiter) Destination MAC Source MAC Type Data CRC
Size(in bytes) 7 1 6 6 2 46-1500 4

前言

以太网帧之前有一个7字节大小的前同步码,该前导码通知接收系统一个帧正在启动,并允许发送方和接收方建立位同步。

SFD(帧开始定界符)

这是一个1字节的字段,用于表示目标MAC地址字段从下一个字节开始。有时,SFD字段被视为前同步码的一部分。这就是为什么在许多地方将前同步码视为8字节。

  • 目的MAC-这是一个6字节的字段,其中,我们有接收系统的地址。

  • 源MAC-这是一个6字节的字段,其中,我们有发送系统的地址。

  • 类型-它定义帧内协议的类型。例如,IPv4或IPv6。它的大小是2个字节。

  • 数据-也称为有效负载,实际数据插入此处。其长度必须在46-1500字节之间。如果长度小于46个字节,则添加填充0以符合最小可能的长度,即46。

  • CRC(循环冗余校验) -这是一个包含32位CRC的4字节字段,允许检测损坏的数据。

扩展以太网帧(以太网II帧)格式

以下是扩展以太网帧的图形表示,通过它我们可以使有效负载大于1500字节-

Field Name Destination MAC Source MAC Type DSAP SSAP Ctrl Data CRC
Size(in bytes) 6 6 2 1 1 1 >46 4

与IEEE 802.3以太网帧不同的字段描述如下-

DSAP(目标服务访问点)

DSAP是一个1字节长的字段,代表打算接收消息的网络层实体的逻辑地址。

SSAP(源服务访问点)

SSAP是一个1字节长的字段,代表创建消息的网络层实体的逻辑地址。

Ctrl

这是一个1字节的控制字段。

IP数据包架构

Internet协议是TCP / IP协议套件中的主要协议之一。该协议在OSI模型的网络层和TCP / IP模型的Internet层起作用。因此,此协议负责根据主机的逻辑地址识别主机,并通过基础网络在主机之间路由数据。 IP提供了一种通过IP寻址方案唯一标识主机的机制。 IP使用尽力而为传送,即,它不能保证将数据包传送到目的地主机,但会尽力到达目的地。

在接下来的部分中,我们将学习两种不同版本的IP。

IPv4

这是Internet协议版本4,它使用32位逻辑地址。以下是IPv4标头的示意图以及字段说明-

IPv4

这是所使用的Internet协议的版本;例如IPv4。

人道法

Internet标头长度;整个IP标头的长度。

DSCP

区分服务代码点;这是服务类型。

ECN

显式拥塞通知;它携带有关在路线中看到的交通拥堵的信息。

总长度

整个IP数据包的长度(包括IP标头和IP有效负载)。

身份证明

如果IP数据包在传输过程中被分段,则所有分段都包含相同的标识号。

标志

根据网络资源的要求,如果IP数据包太大而无法处理,则这些“标志”表明它们是否可以分段。在此3位标志中,MSB始终设置为0。

片段偏移

该偏移量告诉分片在原始IP数据包中的确切位置。

生存时间

为了避免在网络中循环,每个数据包都发送了一些TTL值集,该值告诉网络该数据包可以跨越多少个路由器(跳)。在每个跃点处,其值都会递减1,并且当该值达到零时,将丢弃该数据包。

协议

告诉目标主机上的网络层此数据包所属的协议,即下一层协议。例如,ICMP的协议号为1,TCP为6,UDP为17。

标头校验和

此字段用于保留整个标头的校验和值,然后用于检查是否正确接收了数据包。

源地址

数据包的发送方(或源)的32位地址。

目的地址

数据包的接收方(或目标)的32位地址。

选件

这是一个可选字段,如果IHL的值大于5,则将使用这些字段。这些选项可能包含诸如安全性,记录路由,时间戳等选项的值。

如果您想详细研究IPv4,请参考此链接-www.tutorialspoint.com/ipv4/index.htm

IPv6

Internet协议版本6是最新的通信协议,它的前身IPv4在网络层(第3层)上工作。除了提供大量逻辑地址空间外,该协议还具有丰富的功能,可解决IPv4的缺点。以下是IPv4标头的示意图以及字段说明-

IPv6

版本(4位)

它代表Internet协议的版本-0110。

流量等级(8位)

这8位分为两部分。服务类型的最高6位用于让路由器知道应向此数据包提供哪些服务。最低有效2位用于显式拥塞通知(ECN)。

流标签(20位)

此标签用于维护属于通信的数据包的顺序流。源标记序列,以帮助路由器识别特定的数据包属于特定的信息流。该字段有助于避免对数据包进行重新排序。它设计用于流媒体/实时媒体。

有效载荷长度(16位)

该字段用于告诉路由器特定数据包的有效载荷中包含多少信息。有效负载由扩展头和上层数据组成。 16位最多可指示65535字节;但是如果扩展头包含逐跳扩展头,则有效负载可能会超过65535字节,并且此字段设置为0。

下一个标头(8位)

该字段用于指示扩展头的类型,或者如果扩展头不存在,则其指示上层PDU。上层PDU类型的值与IPv4相同。

跳数限制(8位)

此字段用于阻止数据包无限循环到网络中。这与IPv4中的TTL相同。跳数限制字段的值在通过链接(路由器/跳数)时递减1。当该字段达到0时,将丢弃数据包。

源地址(128位)

该字段指示分组的始发者的地址。

目的地址(128位)

该字段提供数据包预期接收者的地址。

如果您想详细研究IPv6,请参考此链接— www.tutorialspoint.com/ipv6/index.htm

TCP(传输控制协议)标头体系结构

众所周知,TCP是一种面向连接的协议,其中在开始通信之前,在两个系统之间建立了会话。一旦通信完成,连接将被关闭。 TCP使用三向握手技术在两个系统之间建立连接套接字。三向握手意味着三个消息(SYN,SYN-ACK和ACK)在两个系统之间来回发送。在两个系统(初始系统和目标系统)之间工作的步骤如下:

步骤1-设置了SYN标志的数据包

首先,尝试启动连接的系统从设置了SYN标志的数据包开始。

步骤2-设置了SYN-ACK标志的数据包

现在,在此步骤中,目标系统返回带有SYN和ACK标志集的数据包。

步骤3-设置了ACK标志的数据包

最后,启动系统将把设置了ACK标志的数据包返回到原始目标系统。

以下是TCP标头的图表以及字段说明-

设置了ACK标志的TCP数据包

源端口(16位)

它标识发送设备上应用程序进程的源端口。

目标端口(16位)

它在接收设备上标识应用程序进程的目标端口。

序列号(32位)

会话中段的数据字节的序列号。

确认编号(32位)

当设置了ACK标志时,此数字包含预期的数据字节的下一个序列号,并用作对先前接收到的数据的确认。

数据偏移量(4位)

该字段表示TCP报头的大小(32位字)和整个TCP段中当前数据包中数据的偏移量。

保留(3位)

保留供将来使用,默认情况下设置为零。

标志(每个1位)

  • NS-显式拥塞通知信令过程使用此Nonce Sum位。

  • CWR-当主机接收到设置了ECE的数据包时,它将设置“拥塞窗口缩减”以确认已接收到ECE。

  • ECE-它有两个含义-

    • 如果将SYN位清除为0,则ECE表示IP数据包已设置其CE(拥塞经验)位。

    • 如果SYN位置1,则ECE表示该设备具有ECT功能。

  • URG-表示紧急指针字段包含重要数据,应进行处理。

  • ACK-表示确认字段具有重要性。如果将ACK清除为0,则表示该数据包不包含任何确认。

  • PSH-设置后,它是向接收站请求在不缓冲的情况下向接收应用程序推送数据(尽快)。

  • RST-重置标志具有以下功能-

    • 它用于拒绝传入的连接。

    • 它用于拒绝段。

    • 用于重新启动连接。

  • SYN-此标志用于在主机之间建立连接。

  • FIN-此标志用于释放连接,此后不再交换任何数据。由于带有SYN和FIN标志的数据包具有序列号,因此将以正确的顺序对其进行处理。

视窗尺寸

该字段用于两个站之间的流量控制,并指示接收器已为段分配的缓冲区量(以字节为单位),即接收器期望多少数据。

  • 校验和-此字段包含标题,数据和伪标题的校验和。

  • 紧急指针-如果URG标志设置为1,则指向紧急数据字节。

  • 选项-它促进了常规标头未涵盖的其他选项。选项字段始终以32位字描述。如果此字段包含的数据少于32位,则使用填充来覆盖其余位以达到32位边界。

如果您想详细研究TCP,请参阅此链接— https://www.tutorialspoint.com/data_communication_computer_network/transmission_control_protocol.htm

UDP(用户数据报协议)标头体系结构

UDP是一种简单的无连接协议,与TCP(一种面向连接的协议)不同。它涉及最少的通信机制。在UDP中,接收方不生成对收到的数据包的确认,反过来,发送方也不等待发送的数据包的任何确认。该缺点使得该协议不可靠并且更易于处理。以下是UDP标头的示意图以及字段说明-

UPD

源端口

此16位信息用于标识数据包的源端口。

目的端口

此16位信息用于标识目标计算机上的应用程序级别服务。

长度

长度字段指定UDP数据包的整个长度(包括标头)。它是一个16位字段,最小值为8字节,即UDP标头本身的大小。

校验和

此字段存储发送方在发送之前生成的校验和值。 IPv4具有此字段作为可选字段,因此当校验和字段不包含任何值时,将其设置为0,并将其所有位设置为零。

要详细研究TCP,请参考此链接-用户数据报协议