当前位置: 首页 > news >正文

网络原理

IP地址

标识网络一台设备所在的位置如:127.0.0.1,这是本机设备的ip地址

端口号

一台主机可能有多个程序在使用网络,此时我们就需要端口号区分这些程序收发的信息

协议

用于通信双方发送接收数据格式的约定,是网络通讯的关键,就如同我们的语言一般,都说普通话,能让对方听得懂,亦或者外国说的英语,这就相当两套通信协议

五元组

在进行网络通信的时候会涉及到五个关键的信息,我们称之为五元组

分别是源IP、源端口、目的IP、目的端口、协议类型

协议分层

网络通信非常复杂,如果我们一次性实现通信中全部方面,那么这个协议会显得复杂臃肿,因此我们可以将其拆分成小的协议,每个协议负责单一功能。

但拆分过后的协议过多,我们又要将其归类,于是出现了协议归类分层。

定义:相邻的两层协议之间可以相互交互,上层协议可以调动下层协议,下层协议可以给上层协议提供服务,不能跨层运行。

协议分层有以下特性:

封装:上层协议不需要了解下层协议的细节

解耦合:分层之后,替换掉其中的某一层对整个协议的影响不会产生过大的影响

OSI七层网络模型

OSI 七层模型既复杂又不实用:所以 OSI 七层模型没有落地、实现。实际上经过了简化后,也叫做TCP/IP五层(四层)协议模型。

 

1:物理层:规定了网络通信中一些硬件设施的使用要求。

2:数据链路层:用于邻的两个设备之间的通信请求,通过网线链接路由器/交换机。

3:网络层:关注两个设备之间的通信,选择中间经过的路由器/交换机(只考虑中间过程)。

4:传输层:关注于两个设变之间的通信,但只看起点和终点(不考虑过程)。

5:应用层:对应于设备拿到了信息后的使用。

主机

工作范围主要 从物理层->应用层,满足应用程序的网络通信需求。

路由器

工作范围主要 从物理层->到网络层,组件局域网,进行网络数据包的收发。

交换机

工作范围主要 从物理层->数据连接层,提供硬件支持。

网络通讯基本流程

封装

1:应用程序获取用户的输入,构建一个应用层的数据包。

        这个应用层的数据包会遵守应用层协议,这个应用层协议往往是程序员自己定义的

2:应用程序调用传输层提供的接口(API)把数据包传输给传输层,拿到数据后,构建出一个传输层数据包。

        在传输层上,协传输层议有两:TCP和UDP

        TCP数据包=TCP报头(header)+TCP载荷(payload)

3:传输层构建好数据包后,调用网络层的api,把数据包交给网络层,在网络层中处理。

        网络层协议主要是IP协议,IP协议会对上述的数据包进行进一步加工,拼上IP报头:
        IP数据包= IP报头+IP载荷(包含了整个传输层的数据包)

4:IP协议继续调用数据连路层的api,把ip数据包交给数据连路层,在数据连路层,以太网协议会继续在网络层的数据包上加工。

        以太网数据包 = 以太网报头+荷载(包含整个上述数据包)+以太网报尾
                

5:以太网继续将数据包交给硬件设备网卡,网卡把上述二进制数据最终以光/电/电磁波信号传播出去。

将其展现出来应该是:

以太网的报头+IP报头+TCP报头+应用层的数据包+以太网的报尾

以上就是封装的过程。相同的,接受过程则是反着来的你想过程。叫做分用

分用

1:数据达到接收方发网卡,网卡把光电消信号还原成二进制,再把二进制数据上交给上层数据链接层。(物理层的信号数据和数据链路层是之间关联) 

2:数据链路层会按照以太网协议将收集到的数据进行解析,把其中以太网的报头和报尾取出,再往上传递给网络层。在以太网中帧头中,有专门的属性,告诉网络层使用哪个协议。

                IP报头+TCP报头+应用层的数据包

 3:网络层拿到后按照IP协议的格式解析,再将载荷传交给传输层:

        TCP报头+应用层的数据包

        同样,在IP报头中也有专门的属性,告诉传输层使用哪个协议。 

4:传输层拿到数据后,按照TCP协议解析,取出载荷(应用层数据包)交给应用层。         

         应用层的数据包

         在传输层会通过目的端口号告知数据传给哪个应用程序。

5:应用层将数据包传递给对应的软件解析数据包,得到传输过来的信息。

交换机与路由器

交换机在封装和分用中只需要用到数据链路层。

主机的数据传输给交换机,交换机会通过物理层和数据链路层逐步解析,重新构建一个以太网数据帧,发送到下一个设备的数据链路层。

路由器收到主机发送的数据时,会通过物理层、数据链路层、网络层解析,重新生成一个网络数据包,构造出以太网数据帧,进行二进制转换转发出去。

相关文章:

  • 洛阳做多屏合一网站网站seo推广招聘
  • 网站开发文档要求百度关键词搜索技巧
  • wordpress站点的根目录百度seo学院
  • 网站产品展示代码百度热门
  • 网站是哪个建站公司做的seo网站内部优化
  • 大学生做网站怎么赚钱怎么制作一个网站5个网页
  • 【Linux】之【Get】 chroot 环境下安装deb包时 .postinst:行 9: 201 段错误 (核心已转储)ldconfig
  • 多卡分布式训练:torchrun --nproc_per_node=5
  • LeetCode 热题 100_零钱兑换(85_322_中等_C++)(动态规划)
  • 在cordova环境下配置IOS项目,并成功运行起来
  • jQuery 插件
  • npm、nvm、nrm
  • MySQL 优化教程:让你的数据库飞起来
  • 我所学的cfd【1
  • WEB攻防-Java安全JNDIRMILDAP五大不安全组件RCE执行不出网不回显
  • 水利水电安全员ABC适合哪些人考?
  • QT 调用动态链接库
  • 基于CNN-LSTM-GRU的深度Q网络(Deep Q-Network,DQN)求解移动机器人路径规划,MATLAB代码
  • 远程管理命令:关机和重启
  • Qt问题之 告别软件因系统默认中文输入法导致错误退出的烦恼
  • 用最简单的方式讲述离散傅里叶级数(DFS)以及离散傅立叶变换(DFT)
  • OpenHarmony荷兰研习会回顾 | 仓颉语言赋能原生应用开发实践
  • Brose EDI 项目报文解读:VDA 4987 Global DESADV
  • 带label的3D饼图(threejs)
  • IAP Firmware Upload Tools.exe IAP 网络固件升级教程
  • (五)深入了解AVFoundation-播放:多音轨、字幕、倍速播放与横竖屏切换