深度剖析网络传输?大量图解带你快速理解原理!

关注我,学习更多企业开发和面试内容~

在这里插入图片描述

* 网络的发展历史

网络的发展历史:单机时代 -> 局域网时代 -> 广域网时代 -> 移动互联网时代。


1. 局域网和广域网

1.1 局域网

局域网:几台电脑连到一个路由器。

【图示】LAN和WAN
在这里插入图片描述
WAN:用来连上级路由器。
LAN:要想让多台电脑在同一个局域网上网,需连接到LAN口。
交换机:已在图中有注解。

1.2 广域网

广域网:将许多局域网连到一起。

【图示】局域网与广域网
在这里插入图片描述


2. 网络通信基础

网络通信(网络数据传输),更具体点,是网络主机中的不同进程间基于网络传输数据。

2.1 IP地址(定位网络主机)

生活中,快递单上有收货地址,也有填写发货地址;网络中也是如此,电脑之间进行数据交互时,需要知道数据的发送地和接收地,这就是所谓的IP地址。

IP地址:描述了一个设备在网络中的地址,是一个32位(4字节)二进制数字。分为源IP和目的IP。

IP地址的格式:点分十进制。将这个数字拆成4个0-255的十进制数字,并用3个点进行分隔。比如125.4.26.2。


2.2 端口号(识别具体进程)

生活中,快递单上还有收货人和发货人的电话;网络中,当数据通过IP地址发送到我们的电脑上后,具体该把这个数据给哪个应用程序呢?是给QQ,微信,还是优快云?这就需要端口号来区分发给哪个应用程序。

端口号:区分主机中不同的应用程序,是一个16位(2字节)的二进制数字,0-65535。分为源端口和目的端口。

端口号的使用

  • 0一般不使用。
  • 1-1023这个范围的端口号为知名端口号,系统留做特殊用途,程序员写的程序不应占用。
  • 知名端口号是留给比较常见的服务器程序进行使用的,22 -> ssh,80 -> http,443 -> https,23 -> telnet。

不同的程序可以绑定(关联)到不同的端口号。同一个主机上的应用程序不能绑定到同一个端口号。(一个端口号只能被绑定一个程序,一个程序可以绑定多个端口,因为端口号是用来区分具体应用程序)

【注】IP地址和端口号一般是成对的。


2.3 协议(约定通信方式)

生活中,比如见网友,就会提前约定好在哪里见面,这就是协议。网络中,也要规定数据按哪种方式进行数据传输。

协议:又称为网络协议,是一种约定,约定通信双方按照何种方式传递数据。网络上本质是通过光/点信号来传输数据(低电平(电压)表示1,高电平表示0 -> 二进制数据;高频光信号表示1,低频光信号表示0 -> 二进制数据)。

学习网络很多都是在学习协议,等后期学WebSocket也会有协议。


2.4 五元组(通信的必要信息)

一次通信过程中必不可少的信息如下,

  • 源IP:发货地址
  • 源端口:发货人
  • 目的IP:收货地址
  • 目的端口:收货人
  • 协议类型:用什么快递

2.5 协议分层

我们写代码如果越写越多,越杂,往往需要把代码拆分成多个部分,比如,类,接口。网络中,网络通信太复杂,就拆分出许多小协议,而小协议太多导致不好管理,就需要对协议分层。

协议分层:按协议的作用分类,并约定了不同层次之间的“调用关系”,即上层协议调用下层协议,下层协议给上层协议提供支持。比如工作中,汇报工作也是禁忌跨级上报,会增加上级的管理任务,也会破坏管理秩序。
在这里插入图片描述

分层的作用

  1. 分层后,上层和下层就进行了封装。使用上层协议不必过多关注下层,使用下层协议不必过多关注上层,大大降低了使用者的成本。比如使用电脑,只要会用即可,不用理解电脑底层。
    在这里插入图片描述

  2. 每层协议都可以根据需要灵活替换。
    在这里插入图片描述


2.6 TCP/IP五层网络模型(OSI七层网络模型) — 含笔试题

网络协议分层后,分为OSI七层网络协议和TCP/IP五层网络协议。OSI七层网络模型只出现在教科书中,实际用的是TCP/IP五层网络模型(是OSI七层模型的简化版本),重点关注TCP/IP五层网络模型,每层的作用和效果

在这里插入图片描述

TCP/IP五层网络协议

  1. 应用层:该层协议主要负责应用程序间的沟通。这是程序员需要关注的。比如网购了一个水果刀,只关注刀怎么用,切水果?切蛋糕?
  2. 传输层:该层协议主要关注起点和终点。比如网购时商家只关注发货人,发货地址,收货人,收货地址。
  3. 网络层:该层协议主要进行路径规划。比如网购时发货地址是上海,收货地址是西安。商家不需要关注路线,而快递公司需要规划走哪条路到西安。
  4. 数据链路层(网卡层):该层协议主要描述两个相邻节点的数据传输方式。比如快递公司规划的路线是,上海 -> 武汉 -> 西安。我从上海到武汉用火车,武汉到西安用飞机。
  5. 物理层(硬件):该层协议主要规定网络通信的硬件规格,如网线的光纤应该是什么规格。比如选火车运输,火车的两个轨道距离应该多宽等。

网上有些资料会说是TCP/IP四层网络协议,是因为把物理层删除了,考虑的角度不同,但不是错的。

网络设备所在的分层】经典的笔试题

  1. 主机:实现了从传输层层到物理层。
  2. 路由器:实现了从网络层到物理层。
  3. 交换机:实现了从数据链路层到物理层。
  4. 集线器:只实现了物理层。(集线器很少见,它在物理层把网线一分为二,但同一时刻两根线是不能同时工作的)

注:实际上,路由器和交换机功能越来越强大,有些高端的交换机也有路由器的功能,此外,路由器和交换机可能还会支持在传输层和应用层工作。但考试是不要这么说!将理论和实践分开!


3. 封装和分用(数据传输流程)

接下来用qq消息的案例来讲网络传输原理。现在我们需要在QQ上发送给好友一个"hello",

3.1 发送方(封装)

  1. 应用层:QQ应用程序将用户输入的hello打包成一个应用层的数据报(数据报的格式只有QQ的程序员才知道)。假设规定数据报格式为4个字段并用逗号分隔:源qq,目的qq,发送时间,发送内容。这个规定就是我们约定的应用层协议,具体用几个字段,用什么符号来分割都是能灵活调整的。
  2. 传输层:传输层协议典型的有TCP协议和UDP协议(这里以UDP为例)。UDP报头为二进制数据,含很多属性,最重要的是源端口和目的端口。
  3. 网络层:网络层协议主要有IP协议。IP报头含很多属性,最重要的是源IP和目的IP。
  4. 数据链路层:数据链路层协议主要有以太网协议。以太网报头中最重要的属性是源mac地址和目的mac地址。
  5. 物理层:将数据转成二进制,用光信号/电信号传给路由器或交换机。

【图示】
在这里插入图片描述

mac地址用来描述一个设备在网络中的地址。IP地址是设备的地址。


3.2 接收方(分用)

在这里插入图片描述

整体流程图解

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值