目录

1. 基础知识

1.1 IP地址

1.2 子网掩码

1.3 MAC地址

1.4 网络传输遇到的设备

1.4.1 集线器

1.4.2 交换机

1.4.3 主机

1.4.5 路由器

1.5 冲突域

1.6 广播域

2. 局域网数据传输流程

2.1 集线器相连

2.2 交换机相连

2.3 交换机与路由器相连

3. 广域网数据传输流程(重点)


1. 基础知识

1.1 IP地址

上一节内容已经介绍了IP地址用来定位网络中唯一的一台主机,它是一个32位的二进制数,通常用“点分十进制”来表示即a.b.c.d表示(a,b,c,d为0~255之间的数),那么它是怎样定位一台主机呢?

IP地址的组成

  • 网络号:标识网段,保证相互连接的两个网段具有不同标识
  • 主机号:标识主机,同一网段内,不同的主机具有相同的网络号,但是主机号必须不同

主机号和网络号的划分

通过合理的设置网络号和主机号,就可以保证在相互连接的网络中,每台主机的IP地址都是唯一的,那么主机号和网络号是如何划分的呢?

有一种划分网络号和主机号的方案,把IP地址分为五类,但是常用的为以下三类:

各类地址的表示范围:

分类 范围 适用网络 网络数量 主机最大连接数
A类 0.0.0.0~127.255.255.255 大型网络 126 2^24-2
B类 128.0.0.0~191.255.255.255 中等规模网络 16384 2^16-2=65534
C类 192.0.0.0~223.255.255.255 小型网络 约209万 2^8-2=254

说明:最大主机连接数减去2是因为减去了两个特殊的IP地址

特殊的IP地址

  • IP地址全为0,成了网络号,代表这个局域网
  • IP地址全为1,成了广播地址,用于给同一个链路中相互连接的所有主机发送数据报
  • 127.*用于本机环回测试,通常是127.0.0.1,本机环回测试主要用于本机到本机的网络通信

1.2 子网掩码

子网掩码的格式 :

子网掩码的格式和IP地址的格式类似,也是一个32位的二进制数,通常用“点十进制”表示,左边位网络位,用二进制数1表示,1的数目等于网络位的长度,右边为主机位,用二进制数0表示,0的个数为主机位的长度

子网掩码的作用

  • 划分ABC三类IP地址的子网

例:一个B类IP地址为191.110.0.0,使用子网掩码255.255.128.0来划分子网

  • 进行网络通信时,子网掩码结合IP地址可以计算出网络号和主机号(网络号和主机号都为划分子网后的),一般用于判断目的IP与本机IP是否为一个网段

划分子网后网络号和主机号的计算方式:

  1. IP地址与子网掩码按位与,得到的就是网络号
  2. 子网掩码按位取反,再与IP地址按位与,得到的就是主机号

例:

1.3 MAC地址

MAC地址的概念

MAC地址(Media Access Control Address),用于标识网络硬件设备的物理地址

  • 主机具有一个或多个网卡,路由器具有两个或两个以上网卡,其中每个网卡都有唯一的MAC地址
  • 网络通信即网络数据传输,本质是网络硬件设备将数据发送到网卡上,或以网卡来接收数据
  • 网卡出厂时,MAC地址就已经确定了不能修改

MAC地址的格式:长度为48位,一般用16进制数字加冒号的形式表示,如:08:00:27:03:fb:19

特殊的MAC地址

发送一个广播数据报,表示对同网段所有主机发送数据报,广播数据报的MAC地址:FF:FF:FF:FF:FF:FF

一跳一跳的网络传输

以下为主机B传输数据到主机C经过的网络设备:

上述经过的网络设备:

  • 主机:配有IP地址,但是不进行路由控制
  • 路由器:配有IP地址,又可以进行路由选择

注意:集线器和二层交换机不会对数据报封装和分用,不算在下一跳设备

IP地址与MAC地址的区别

  • IP地址描述的是数据传输的起点和终点,即从源主机到目的主机
  • MAC地址描述的是路途上的每一个区间的起点和终点,即每一跳的起点和终点

比如:唐僧西天取经,IP地址为长安和西天,MAC地址为中途的五指山,女儿国等

1.4 网络传输遇到的设备

1.4.1 集线器

集线器工作在物理层,发送到集线器的数据,集线器将数据复制并转发到其他所有端口

端口:分为物理端口和逻辑端口,物理端口指硬件设备如集线器,交换机,路由器等的物理端口,逻辑端口指进程绑定的端口,属于操作系统虚拟的一个0~65535的数字

1.4.2 交换机

交换机如何工作

交换机工作在数据链路层,交换机内部维护了一张MAC地址转换表:

MAC地址转换表主要记录MAC地址与端口之间的映射(端口指交换机后边的物理端口)
主机连接到交换机,主机发送数据的时候,交换机可以记录该主机的MAC地址与端口信息

发送到交换机的数据(此时数据中包含了目的MAC),根据MAC地址转换表,通过目的主机的MAC地址查找到对应端口,交换机只需要将数据转发到对应端口即可

根据MAC地址找不到端口怎么办?

但是通过目的主机MAC找对应端口可能存在找不到的情况,如果找不到,交换机设置数据报目的MAC为为广播地址FF:FF:FF:FF:FF:FF,发送到其他所有端口,(因为数据中有目的IP,目的IP的主机返回返回自己的MAC地址),待目的主机返回响应后,交换机再记录该主机MAC与端口的映射信息

这个发广播数据报的过程类似在群里喊话:

a:张三在吗?这里有你的快递
张三:在的呢,在x楼xxx房间
这样就能将快递正确的交给张三

1.4.3 主机

在发送数据时,发送端主机都会先根据网络分层对数据进行封装

源主机与目的主机是否在同一个网段对应下一跳设备也有所不同:

  • 当源主机与目的主机在同一个网段时,下一跳设备就是目的主机
  • 当源主机与目的主机不在同一个网段时,发送端主机是无法知道目的主机在哪(不知道目的主机的MAC,所以喊话的方式也没有用了),此时会设置下一跳设备为网关设备,后续参考下面ARP寻址和路由器内容

关于网关设备,这里简单理解为不同网段的网络互联时,需要使用网关设备,通常网关设备为路由器

从上到下封装时,封装到数据链路层,下一跳设备的IP都能获取到,但是MAC地址可能不知道,此时就需要使用ARP寻址

ARP寻址

ARP协议介于数据链路层和网络层,ARP协议建立了IP地址与MAC地址的映射关系,在数据链路层,寻找下一跳MAC地址的过程称为ARP寻址

ARP寻址的过程 :

主机和路由器中都保存了一张ARP缓存表,通过IP地址可以找到MAC地址,如果找不到MAC地址,则发送ARP广播数据报,目的MAC为广播地址,询问下一跳设备的MAC地址,过程类似如下喊话:

1.4.5 路由器

路由器的介绍

路由器作为网关,可以划分公网和局域网,某些路由器还可以将局域网划分为多个子网(不同网段),公网端口为WAN口,为单独的网卡,具有公网IP地址和公网MAC地址,多个子网由局域网端口LAN口划分,每个端口都有单独的网卡,具有该网段IP地址和MAC地址

说明:企业级的路由器才能划分子网,家用的路由器不可以划分

路由器功能概述

局域网划分的多个子网,可直接通过ARP寻址找到局域网任意的一台主机

局域网内的主机发送数据到公网主机时,需要基于NAPT协议将局域网主机的IP地址和端口号转换为路由器公网的IP和端口号(指路由器中运行程序的端口)

路由器的路由功能能在复杂的网络结构中找出一条通往终点的路线,类似规划路线,找到更快到达目的的路线

路由器的功能总结

  • 可以将局域网划分为多个子网
  • 具有ARP缓存表,记录局域网所有主机的IP和MAC,根据IP地址能找到MAC地址
  • 具有WAN口,绑定公网IP,如果目的主机不在局域网内,需要使用NAPT协议将局域网主机的IP和端口转换为公网的IP和端口
  • 路由功能,在复杂的网络结构中,找到最快通往目的路线

1.5 冲突域

主机之间通过网络设备的物理端口,网线相连时,两个主机在同一时刻发送数据报,如果存在冲突,则该网络范围就为一个冲突域

集线器的冲突域

集线器的所有端口为一个冲突域,因为集线器是将数据转发到所有端口,如果有两个数据要同时转发,就会出现冲突

交换机的冲突域

交换机的一个端口为一个冲突域,因为交换机是将数据转发到对应的端口,两个数据转发到不同端口不存在冲突,但是转发到同一个端口就存在冲突

1.6 广播域

广播指某个网络中的主机向其他所有主机发送数据(IP,MAC地址设置为广播地址),这个数据所能传播到的范围称为广播域

集线器的广播域

集线器接收到广播数据报,转发到所有端口,集线器的所有端口为一个广播域

交换机的广播域

交换机接收到广播数据报,会转发到其他所有的端口

路由器的广播域

路由器可以隔离广播域,路由器某个LAN口网卡接收到广播域,如果发现是同网段,则丢弃,即广播数据不会扩散到路由器以外

2. 局域网数据传输流程

2.1 集线器相连

集线器相连的网络数据传输流程:

  1. 发送端主机发送数据时,首先要根据协议分层从上到下对数据进行封装
  2. 封装到数据链路层时,可能不知道目的主机MAC,所以要先进行ARP寻址
  3. 发送端主机在本机的ARP转换表中根根据目的IP查找对应的MAC地址
  4. 若找到了,则在以太网帧头中设置目的MAC,并发送数据
  5. 若没有找到目的MAC,则将发送ARP广播请求,让目的主机告诉它的MAC地址是多少
  6. 知道目的MAC后,发送端主机更新ARP缓存表
  7. 在以太网帧头中设置目的MAC,并发送数据
  8. 集线器将数据转发到所有端口
  9. 所有收到数据的主机看是否是给自己发的,若不是则直接丢弃,若是则从下到上进行分用,最后返回响应数据
  10. 返回的流程与发送的流程相同,只是源IP目的IP更换,源端口目的端口更换

2.2 交换机相连

交换机相连的网络数据传输流程:

  1. 发送端主机发送数据时,首先要根据协议分层从上到下对数据进行封装
  2. 封装到数据链路层时,可能不知道目的主机MAC,所以要先进行ARP寻址
  3. 发送端主机在本机的ARP转换表中根根据目的IP查找对应的MAC地址
  4. 若找到了,则在以太网帧头中设置目的MAC,并发送数据
  5. 若没有找到目的MAC,则将发送ARP广播请求,让目的主机告诉它的MAC地址是多少
  6. 知道目的MAC后,发送端主机更新ARP缓存表
  7. 在以太网帧头中设置目的MAC,并发送数据
  8. 交换机内部维护了MAC地址转换表,根据目的MAC找对应端口
  9. 若找到了,将数据转发到对应端口
  10. 若没有找到,则发送广播数据报,待目的主机返回响应后记录目的主机MAC与端口的信息转发到目的MAC地址对应端口
  11. 目的主机接收到数据后,从下到上进行分用返回响应数据
  12. 返回的流程与发送的流程相同,只是源IP目的IP更换,源端口目的端口更换

2.3 交换机与路由器相连

交换机与路由器相连的网络数据传输流程:

  1. 源主机发送数据时从上到下对数据进行封装,在封装的时候先通过子网掩码计算源主机和目的主机是否在同一个网段
  2. 若在同一个网段,数据传输流程与上述交换机的传输流程相同
  3. 若不在同一个网段,下一跳的设备就为网关
  4. 找到与源主机相连的网关设备IP,进行ARP寻址,找到对应网关的MAC地址,将目的MAC设置为网关MAC地址,再发送数据
  5. 交换机根据MAC地址转换表查找网关MAC对应的端口,并向该端口发送数据
  6. 网关设备也就是路由器对数据从下到上进行分用,先获取到目的主机IP,通过ARP寻址找到IP对应MAC地址
  7. 路由器对数据进行封装,与源主机封装数据不同的是,源MAC修改为路由器MAC,目的MAC为目的主机MAC,然后发送数据
  8. 待目的主机接收到数据后,从下到上进行分用,然后返回响应数据
  9. 返回的流程与发送的流程相同,只是源IP目的IP更换,源端口目的端口更换

3. 广域网数据传输流程(重点)

广域网数据传输流程:这里以在浏览器地址栏输入www.baidu.com后数据的传输流程为例说明

  1. www.baidu.com为域名,通过DNS协议将该域名转化为IP地址
  2. 源主机从上到下进行封装数据,首先通过子网掩码计算源主机和目的主机是否在同一个网段
  3. 在同一个网段,下一跳设备就是目的主机,在不同网段,下一跳设备就是网关设备即路由器
  4. 通过源主机的ARP缓存表,找到网关IP对应的MAC,将目的MAC设置为网关MAC,再发送数据
  5. 交换机接收到数据,基于MAC转换表通过网关MAC找到对应的端口,往该端口发送数据
  6. 网关即路由器接收到数据, 先从下到上分用,再基于NAPT协议将源IP和源端口转化为路由器公网的IP和端口
  7. 基于路由功能,根据目的IP,计算出下一跳是哪个设备距离目的主机最近,获取到IP
  8. 根据路由器ARP缓存表,找到下一跳设备IP对应的MAC地址
  9. 路由器从上到下封装,修改源IP为公网IP,源端口为公网端口,源MAC为路由器MAC,目的MAC为下一个设备的MAC
  10. 途中经过的设备从下到上分用,基于路由技术计算路线,获取下一跳设备的IP,通过ARP寻址找到IP对应的MAC,封装数据发送下一个设备
  11. 目的主机接收到,从下到上分用,返回响应数据
  12. 返回的流程与发送的流程相同,只是源IP目的IP更换,源端口目的端口更换

【计算机网络】网络数据传输流程详解相关推荐

  1. MySQL系列---架构与SQL执行流程详解

    文章目录 1. 背景 2. 架构体系 2.1 架构图 2.2 模块详解 2.3 架构分层 3. 查询SQL语句执行流程 3.1 连接 3.1.1 MySQL支持的通信协议 3.1.2 通信方式 3.2 ...

  2. Android事件流程详解

    Android事件流程详解 网络上有不少博客讲述了android的事件分发机制和处理流程机制,但是看过千遍,总还是觉得有些迷迷糊糊,因此特地抽出一天事件来亲测下,向像我一样的广大入门程序员详细讲述an ...

  3. 负载均衡原理与实践详解 第五篇 负载均衡时数据包流程详解

    负载均衡原理与实践详解 第五篇 负载均衡时数据包流程详解 系列文章: 负载均衡详解第一篇:负载均衡的需求 负载均衡详解第二篇:服务器负载均衡的基本概念-网络基础 负载均衡详解第三篇:服务器负载均衡的基 ...

  4. 嘉立创电路板制作过程全流程详解(五):测试、锣边、V-CUT、QC、发货

    第1篇文章,点击这里:嘉立创电路板制作过程全流程详解(一):MI.钻孔 第2篇文章,点击这里:嘉立创电路板制作过程全流程详解二:沉铜.线路 第3篇文章,点击这里:嘉立创电路板制作过程全流程详解三:图电 ...

  5. 2020中级计算机工程师,2020年上半年中级网络工程师报考详解

    原标题:2020年上半年中级网络工程师报考详解 软考全称叫做"全国计算机技术与软件专业技术资格(水平)考试"已经开展了十多年了,所受到的欢迎程度也是越来越高,据统计累计参加软考的人 ...

  6. 《猿族崛起》动作捕捉技术及制作流程详解

    前言: 其实最近两个月发布的原创文章,最初动机都是来自于<猿族崛起>,之前并没有太关注这部片子,后来偶然在火星时代上看到Weta发布的特效制作花絮,然后简介说是启用了<阿凡达> ...

  7. 【联机对战】微信小程序联机游戏开发流程详解

    现有一个微信小程序叫中国象棋项目,棋盘类的单机游戏看着有缺少了什么,现在给补上了,加个联机对战的功能,增加了可玩性,对新手来说,实现联机游戏还是有难度的,那要怎么实现的呢,接下来给大家讲一下. 考虑到 ...

  8. 计算机自动获取IP地址流程详解

    计算机自动获取IP地址流程详解 你知道吗? 我们在日常生活中直接插上网线接口就可以直接上网,不需要拨号上网也不需要设置IP地址.那么我们在日常是怎么获得IP地址的呢? 这里就需要介绍一种服务是由Int ...

  9. 【正点原子Linux连载】第三十二章 U-Boot启动流程详解 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0

    1)实验平台:正点原子阿尔法Linux开发板 2)平台购买地址:https://item.taobao.com/item.htm?id=603672744434 2)全套实验源码+手册+视频下载地址: ...

  10. memoryCache和diskCache流程详解

    Webkit的MemoryCache和DiskCache流程详解 MemoryCache简介: MemoryCache顾名思义,就是将资源缓存到内存中,等待下次访问时不需要重新下载资源,而直接从内存中 ...

最新文章

  1. linux禅道8.1安装教程,Ubuntu 18.4安装禅道9.8.3 linux 64位一键版本
  2. JSON是什么?它能带来什么?
  3. Nature 机器智能综述:AI如何自动生成游戏
  4. cocos2dx游戏开发简单入门视频教程 (cocos2d-x)-第2天
  5. DragDrop 注册失败的解决方法 转
  6. 让Internet Explorer成为你的软件集成平台
  7. 33.启动流程,模块管理与 Loader
  8. Linux 下设置java环境和tomcat安装
  9. php二维数组根据某个字段排序的排序(商品按销量或其他字段排序)
  10. 华为音量键只能调通话_华为手机音量键的隐藏功能,知道一个就会好用不少!...
  11. Manjaro下安装和美化i3wm,以及相关软件配置
  12. Turkey HSD检验法/W法
  13. 为什么要学好数据结构和算法
  14. 世界上5种顶级思维,你一定要知道
  15. java 拖拉机_拖拉机(升级)必胜之秘诀 - 淡泊明志,宁静致远 - JavaEye技术网站...
  16. Python:实现doomsday末日算法(附完整源码)
  17. 软件测试的16种测试类型
  18. kafka集群kafka-eagle安装
  19. Qt: Linux下生成.xlsx文件(excel表格文件)
  20. 常见java各种单位换算

热门文章

  1. 用excel做logistic回归分析_用Excel做回归分析的详细步骤
  2. 一瑞士法郎是多少人民币
  3. ppt 转html乱码,ppt转换成pdf乱码解决方法.pdf
  4. 苹果双系统 计算机意外的重新启动,用Boot camp 安装双系统时突然重启,打… - Apple 社区...
  5. ROS笔记——创建简单的主题发布节点和主题订阅节点
  6. 制造业S2B2B电商平台高效协同助力行业数字化步伐加快
  7. zzuli OJ 1011:圆柱体表面积
  8. 25个能够激发灵感的暗色调CSS Web设计欣赏
  9. 智能型电话远程遥控器
  10. 【循序渐进学运维】MySQL运维系列文章汇总