【白帽子学习笔记19】那些年数据包在网络中如何乱窜的事

0x01 基础概念

在讲解TCP/IP通信之前我们先介绍一下在接下来会用到的基础概念

1x01 IP

IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一个台主机分配一个逻辑地址。在windows系统中你可以在cmd中输入ipconfig查看自己的IP信息。在linux系统中你需要输入ifconfig来查看自己的IP信息。你可以把他理解为学校中你的学号。

1x02 网关

顾名思义,网关(Gateway)就是一个网络连接到另一个网络的“关口”。网关这种设备它主要是用来连接两种不同的网络,同时,网关它还能够同时与两边的主机之间进行通信。但是两边的主机是不能够直接进行通信,是必须要经过网关才能进行通信。网关的工作是在应用层当中。你可以通过netstat /r查看信息。

1x03 路由器与交换机

从专业的角度上说,我们平时家里面的路由器不能单纯的算作一个路由器,应该算是路由器和交换机的结合体。

路由器是连接不同子网的设备,一台路由器相当于一个中继站,将一个IP分组从某一子网中的一台主机通过一个或多个子网发送到其他的主机。

路由器在网络层,路由器根据IP地址寻址,路由器可以处理TCP/IP协议,交换机不可以,交换机在中继层。交换机是做端口扩展的,就是扩大局域网的接入点,也就是能让局域网可以连进来更多的电脑。 交换机根据MAC地址寻找地址。路由器可以把一个IP分配给很多个主机使用,这些主机对外只表现出一个IP。交换机可以把很多主机连起来,这些主机对外各有各的IP。

1x04 DHCP服务器

DHCP全称为Dynamic Host Configuration Protocol,中文含义为“动态主机配置协议”,主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。

1x05 数据包

  • 包:全能性术语;
  • 帧(Frame):用于表示数据链路层中包的单位;
  • 数据包是IP和UDP等网络层以上的分层中报的单位
  • 段则表示TCP数据流中的信息;
  • 消息是指应用协议中数据的单位

每个分层中,都会对所发送的数据附加一个首部,在这个首部中包含了该层必要的信息,如发送的目标地址以及协议相关信息。通常,为协议提供的信息为包首部,所要发送的内容为数据。在下一层的角度看,从上一层收到的包全部都被认为是本层的数据。
在这里插入图片描述

1x05 HTTP(Hypertext Transfer Protocol)

HTTP(Hypertext Transfer Protocol)是一种超文本传输协议,网页浏览过程中数据的传输全部都遵循HTTP协议。

1x05 DNS服务器

当你在网页中输入网址或者直接Ping这个网址的时候,域名需要通过DNS服务器的解析才能够变成IP信息以进行接下来的通信。
在这里插入图片描述

1x06 物理地址/MAC地址/硬件地址

MAC地址是网络中唯一的标识,一个网卡对应一个唯一的MAC地址。

0x02 数据在网络中的传输过程

1x01 TCP/IP模型

(1)应用层
应用层负责处理应用程序的逻辑。应用层在用户空间实现,因为它负责处理众多逻辑,比如文件传输、名称查询和网络管理等。
(2)传输层
传输层为两台主机上的应用程序提供端到端(end to end)的通信。与网络层使用的逐跳通信方式不同,传输层只关心通信的起始端和目的端,而不在乎数据包的中转过程。
(3)网络层
网络层实现数据包的选路和转发。网络层最核心的协议是IP协议(Internet Protocol,因特网协议)。IP协议根据数据包的目的IP地址来决定如何投递它。如果数据包不能直接发送给目标主机,那么IP协议就为它寻找一个合适的下一跳(next hop)路由器,并将数据包交付给该路由器来转发。多次重复这一过程,数据包最终到达目标主机,或者由于发送失败而被丢弃。可见,IP协议使用逐跳(hop by hop)的方式确定通信路径。
(4)网络接口层
网络接口层可以等同为两层即:数据链路层 + 物理层
数据链路层:

  1. 实现网卡接口的网络驱动,以处理数据在以太网线等物理媒介上的传输
  2. 网络驱动程序隐藏了不同物理网络的不同电气特性,为上层协议提供一个统一的接口

物理层: 负责光电信号传递方式。集线器工作在物理层。以太网协议。

1x02 PPP点地点协议

点对点协议(Point to Point Protocol,PPP)为在点对点连接上传输多协议数据包提供了一个标准方法。PPP 最初设计是为两个对等节点之间的 IP 流量传输提供一种封装协议。一般用于大型路由器之间的通信

1x03 以太网传输模式

假设我们现在有三台设备连接上一个交换机。

在这里插入图片描述
先让我们简单的说明一下该种传输模式下帧的结构。
在这里插入图片描述
Destination Address是目标MAC地址,Source Address是源MAC地址。现在有同一局域网的两台设备1和2。当1想给2进行通信时。需要干的事情如下图所示:
在这里插入图片描述
当1想要向局域网内的全部机器发送消在这里插入图片描述
息时,Destination Address就为ff:ff:ff:ff:ff:ff

1x04 处于不同局域网的设备进行通信

现在有两台设备A和B,A位于旧金山,B位于纽约。如果A想给B发送消息,那么A需要怎么办呢?
在这里插入图片描述

如果A带着B的MAC地址想越过路由器到达B的话是不能够实现的。所以在不同局域网之间设备进行通信时我们需要用到IP地址的概念。

当如果局域网内的设备想要连接上SFO的路由器的话需要怎么做呢?
在这里插入图片描述
这里就需要用到arp协议了。所谓arp协议即地址解析协议,是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。

当A的数据想到到达SFO处的路由器时需要做下面图里面的几件事情

在这里插入图片描述
接着数据就可以从A到达SFO了,但数据到达SFO处的路由器时,数据告诉路由器说:“我要去192.168.20.2”,然后路由器说:“别急啊,我查查表,emmm,哦查到了,你该走1号线路到达DEN”,之后数据就顺着1号线路到达了DEN之后重复类似的操作数据便到达了192.168.20.2即B中。
在这里插入图片描述

1x05 传输大数据包

当数据过大的时候数据包便需要分条发送,在传输大数据时需要注意一下几点:

  • 数据包不可丢失
  • 数据包顺序不可错乱

TCP协议便是提供了字节流服务且基于连接的一个协议。由于对于TCP三次握手,四次挥手的内容已经太多了,我这里就不写了(其实是懒)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值