网络基础-数据包

目录
  • 前言
  • 数据包简要生命周期
    • 理解区
      • 数据包

前言

本笔记通过记录 数据包 在网络中的生命履历来引出一些网络基础知识,如:

MAC、ARP、IP、子网掩码、网关、集线器、交换机、路由器这些概念都是在链路层和网络层。
这些都不做严谨的说明,只是为了更好的了解而表达的个人描述

数据包简要生命周期

浏览本小节的时候遇到疑问点可以可以跳到理解区 check 一下有没有答案

数据包:

简单路径:源主机 -> 目标主机。可能路径:源主机 -> 交换机A -> 路由器A -> 路由器B -> 交换机B -> 目标主机。

参考图:

源主机视角:

  • 需要知道 本地IP 和 目标IP。
  • 通过子网掩码判断是否在同一个子网中。
  • 同一子网,则直接获取目标主机的MAC地址,发送出去。
  • 不同子网,获取默认网关的 MAC,把数据包发给默认网关设备。

交换机视角:

  • 收到的数据包必须有目标 MAC 地址。
  • 通过 MAC 地址表查映射关系。
  • 查到了就按照映射关系从我的指定端口发出去。
  • 查不到就所有端口都发出去。

路由器视角:

  • 收到的数据包必须有目标 IP 地址。
  • 通过路由表查映射关系。
  • 查到了就按照映射关系从我的指定端口发出去(不在任何一个子网范围,走其路由器的默认网关也是查到了)。
  • 查不到则返回一个路由不可达的数据包。

三张表:

  • arp 缓存表 是不断通过 arp 协议的请求逐步完善起来的。
  • 交换机中的 MAC 地址表,用于映射 MAC 地址和它的端口。
  • 路由器中的 路由表 用于映射 IP 地址(段)和它的端口。

理解区

数据包

得先了解 TCP/IP 网络七层级及各级的作用和数据封装。

  • 应用层
  • 表示层
  • 会话层
  • 传输层
  • 网络层(本节需要了解
  • 数据链路层(本节需要了解
  • 物理层

应用层的数据一层一层通过包装下来,通过物理层的物理设备发出去,到最终目的主机后,又像扒洋葱一样,一层一层扒开,最终到达应用层后的数据和源主机应用层的数据一样。如图:

名词说明:

IP:主机地址。属于网络层地址。

一般用于源主机和最终目标主机中。

MAC:设备地址。属于数据链路层地址。

一般用于当前设备和下一设备中(不一定是最终设备)。

子网掩码:用于判断 IP 处于哪个网段。

一般用于比较两个 IP 是否处于同一个子网中。

默认网关:

若发送的数据不在本子网,就丢给默认网关处理。

一般用于与外网通信。

默认网关IP一般都设为路由器IP,因为一般都是通过路由器与外网通信。

ARP:

是一种地址解析协议。根据IP地址来获取MAC地址的。

源主机携带IP数据广播给通过支持ARP设备连接起来的多主机,若目标IP对于,则该主机返回携带MAC数据给源主机。

集线器:

字面理解即可,如何一台主机数据发到集线器,都广播到所有出口。

作用在物理层(第一层),不对MAC操作。

交换机:

比集线器高级,不再是广播到所有出口,而是只转发到目标MAC的出口。

作用在数据链路层(第二层),参考MAC,只转发到目标MAC的出口。

工作在局域网内。

路由器:

比交换机高级。

具有路由功能。

作用在网络层(第三层),参考IP。

连接局域网和外网。

MAC

MAC:设备地址。属于数据链路层地址。
一般用于当前设备和下一设备中(不一定是最终设备)。

IP

IP:主机地址。属于网络层地址。

一般用于源主机和最终目标主机中。

子网

子网掩码 & 判断是否在同一子网:
IP 与 子网掩码 做 按位与 ,就可以得出该 IP 的子网网段。
如:

子网掩码:255.255.255.0

IP-1: 192.168.1.2 & 255.255.255.0 = 192.168.1.0

IP-2: 192.168.1.123 & 255.255.255.0 = 192.168.1.0

IP-3: 192.168.2.123 & 255.255.255.0 = 192.168.2.0

因为 192.168.1.0 = 192.168.1.0,所以IP-1与IP-2处于同一子网。

因为 192.168.1.0 != 192.168.2.0,所以IP-1与IP-3不在同一子网。

在发数据包时,子网的作用:

  • 若源IP和目标IP在同一子网:直接获取目标IP主机的MAC,然后把数据包丢出去。
  • 若源IP和目标IP不在同一子网:获取默认网关的 MAC ,然后把数据包丢给默认网关那边。

ARP

ARP:

  • 是一种地址解析协议。根据IP地址来获取MAC地址的。
  • 源主机携带IP数据广播给通过支持ARP设备连接起来的多主机,若目标IP对于,则该主机返回携带MAC数据给源主机。如图:

集线器

字面理解即可,如何一台主机数据发到集线器,都广播到所有出口。
作用在物理层(第一层),不对MAC操作。
如图:

交换机

比集线器高级,不再是广播到所有出口,而是只转发到目标MAC的出口。
作用在数据链路层(第二层),参考MAC,只转发到目标MAC的出口。
工作在局域网内。

交换机连接:
左边交换机的地址表:

MAC 地址 端口
bb-bb-bb-bb-bb-bb 1
cc-cc-cc-cc-cc-cc 3
aa-aa-aa-aa-aa-aa 4
dd-dd-dd-dd-dd-dd 5
ee-ee-ee-ee-ee-ee 6
ff-ff-ff-ff-ff-ff 6
gg-gg-gg-gg-gg-gg 6
hh-hh-hh-hh-hh-hh 6

路由器

作用在网络层(第三层),参考IP。
路由器的每一个端口,都有独立的 MAC 地址。
连接局域网和外网。
转发时,根据路由表转发,实际出口是根据MAC来发送到下一个设备。下一个设备判断数据包目标IP是否是本设备,若不是,就又找出下一个MAC地址把数据包丢出去。

到此这篇关于网络基础-数据包的文章就介绍到这了,更多相关数据包内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 网络基础带你彻底认识路由器

    路由器是什么 是什么把网络相互连接起来?是路由器.路由器是互联网络的枢纽."交通警察".目前路由器已经广泛应用于各行各业,各种不同档次的产品已经成为实现各种骨干网内部连接.骨干网间互联和骨干网与互联网互联互通业务的主力军. 所谓路由就是指通过相互连接的网络把信息从源地点移动到目标地点的活动.一般来说,在路由过程中,信息至少会经过一个或多个中间节点.通常,人们会把路由和交换进行对比,这主要是因为在普通用户看来两者所实现的功能是完全一样的.其实,路由和交换之间 的主要区别就是交换发生在OS

  • 网络基础学习之十八主要路由器技术

    路由器我们知道是一个相当复杂的设备,它的复杂性并不在于它的硬件如何庞大,而在于它的软件技术相当复杂.目前全球能生产出中.高档路由器的也只有少数的那么几家,国内就更少了.为了对路由器技术有一个较全面的了解,本节就路由器技术的几个重要方面作如下介绍. 一.主要路由协议 路由协议是路由器软件中重要的组成部分.路由器的路由功能就是通过这些路由协议来实现的,路由协议的作用是用来建立以及维护路由表.路由表是记录一些转发数据到已知目的节点的最佳路径,有了它,只需直接按路径转发数据包即可,可大大提高数据转发的速

  • 网络基础学习之十九路由器的硬件连接

    在了解了路由器的基础知识后,从本篇开始就要正式介入路由器的使用了.本篇所要介绍的就是使用前的基础工作--路由器的硬件连接. 因为路由器属于一种用于网络之间互联的高档网络接入设备,因其连接的网络可能多种多样,所以其接口类型也就比较多.为此,在正式介绍路由器的连接方法之前我们有必要对路由器的一些基本接口进行认识. 一.路由器接口 路由器具有非常强大的网络连接和路由功能,它可以与各种各样的不同网络进行物理连接,这就决定了路由器的接口技术非常复杂,越是高档的路由器其接口种类也就越多.路由器既可以对不同局

  • 网络基础-数据包

    目录 前言 数据包简要生命周期 理解区 数据包 前言 本笔记通过记录 数据包 在网络中的生命履历来引出一些网络基础知识,如: MAC.ARP.IP.子网掩码.网关.集线器.交换机.路由器这些概念都是在链路层和网络层. (这些都不做严谨的说明,只是为了更好的了解而表达的个人描述) 数据包简要生命周期 浏览本小节的时候遇到疑问点可以可以跳到理解区 check 一下有没有答案. 数据包: 简单路径:源主机 -> 目标主机.可能路径:源主机 -> 交换机A -> 路由器A -> 路由器B

  • linux使用tcpdump命令监视指定网络数据包的方法

    打印本地主机与Berkeley网络上的主机之间的所有通信数据包(nt: ucb-ether, 此处可理解为'Berkeley网络'的网络地址,此表达式最原始的含义可表达为: 打印网络地址为ucb-ether的所有数据包) 复制代码 代码如下: tcpdump net ucb-ether 打印所有通过网关snup的ftp数据包(注意, 表达式被单引号括起来了, 这可以防止shell对其中的括号进行错误解析) 复制代码 代码如下: tcpdump 'gateway snup and (port ft

  • python基础教程之获取本机ip数据包示例

    这几天用到了raw socket,用python写了些demo程序,这里记录下. 首先我们看一个简单的sniffer程序: 复制代码 代码如下: #! /usr/bin/python# code for linuximport socket#s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_UDP)s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.I

  • 网络基础学习之十七路由器原理、分类和选购

    上一篇我们已对路由器的基础方面有一个全面的了解,本篇要继续介绍路由器的其它几个方面.首先要介绍的是路由器的工作原理,只有在充分理解了路由器工作原理基础上,才能正确理解路由器的主要作用. 一.路由器的工作原理 我们知道路由器是用来连接不同网段或网络的,在一个局域网中,如果不需与外界网络进行通信的话,内部网络的各工作站都能识别其它各节点,完全可以通过交换机就可以实现目的发送,根本用不上路由器来记忆局域网的各节点MAC地址.路由器识别不同网络的方法是通过识别不同网络的网络ID号进行的,所以为了保证路由

  • wireshark抓取本地回环数据包和取出数据的方法

    一:The NPF driver isn't running 这个错误是因为没有开启NPF服务造成的. NPF即网络数据包过滤器(Netgroup Packet Filter,NPF)是Winpcap的核心部分,它是Winpcap完成困难工作的组件.它处理网络上传输的数据包,并且对用户级提供可捕获(capture).发送(injection)和分析性能(analysis capabilities). 它不仅提供了基本的特性(例如抓包),还有更高级的特性(例如可编程的过滤器系统).前者可以被用来约

  • Fiddler如何抓取手机APP数据包

    Fiddler,这个是所有软件开发者必备神器!这款工具不仅可以抓取PC上开发web时候的数据包,而且可以抓取移动端(Android,Iphone,WindowPhone等都可以). 第一步:下载神器Fiddler,下载链接: http://w.x.baidu.com/alading/anquan_soft_down_ub/10963 下载完成之后,傻瓜式的安装一下了! 第二步:设置Fiddler 打开Fiddler, Tools-> Fiddler Options (配置完后记得要重启Fiddl

  • golang网络socket粘包问题的解决方法

    本文实例讲述了golang网络socket粘包问题的解决方法.分享给大家供大家参考,具体如下: 看到很多人问这个问题, 今天就写了个例子, 希望能帮助大家 首先说一下什么是粘包:百度上比较通俗的说法是指TCP协议中,发送方发送的若干包数据到接收方接收时粘成一包,从接收缓冲区看,后一包数据的头紧接着前一包数据的尾. 解决方案如下: 服务端: 复制代码 代码如下: package main import (     "bytes"     "encoding/binary&quo

  • Python中使用scapy模拟数据包实现arp攻击、dns放大攻击例子

    scapy是python写的一个功能强大的交互式数据包处理程序,可用来发送.嗅探.解析和伪造网络数据包,常常被用到网络攻击和测试中. 这里就直接用python的scapy搞. 这里是arp的攻击方式,你可以做成arp攻击. 复制代码 代码如下: #!/usr/bin/python """ ARP attack """ import sys, os from scapy.all import * if os.geteuid() != 0:    

  • 基于DoS攻击的随机数据包标记源跟踪算法

    作者:饥饿加菲猫(QQ120474) iojhgfti@hotmail.com 摘要: 针对互联网上日益猖獗的拒绝服务攻击(DoS),分析了传统的随机数据包标记算法的性能缺陷,提出一种新的基于散列消息鉴别码的返回跟踪算法HPPM,通过分析其性能指标,说明该算法提高了返回跟踪DoS攻击的效率和准确性. 感谢帮过我的几个高手袁哥[nsfocus], sunwear[E.S.T] , isno[xfocus] , scz[nsfocus] 1.引言 拒绝服务攻击,简称DoS(Denial-of-Ser

随机推荐