初识网络原理(笔记)

这篇具有很好参考价值的文章主要介绍了初识网络原理(笔记)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

初识网络原理(笔记),Java EE,网络,笔记,arm开发,网络安全,计算机网络

目录

​编辑局域网

网络通信基础

IP 地址

端口号

协议

协议分层

TCP / IP 五层网络模型

网络数据传输的基本流程

发送方的情况:

接收方的情况


局域网

 搭建网络的时候,需要用到 交换机 和 路由器

路由器上,有 lan 口 和 wan 口初识网络原理(笔记),Java EE,网络,笔记,arm开发,网络安全,计算机网络

虽然路由器只有 4 个 lan 口

实际上组建的局域网,可以有更多的设备,就可以用到交换机

交换机的口是不分 lan 口 和 wan 口 的,所有的 口 都是等价的

组件企业网络,往往需要一个企业级路由器+ 若干个企业级交换机,延伸出很多的网线,供大家使用

AP 相当于一个不用插网线的小交换机(提高无线热点扩容能力)初识网络原理(笔记),Java EE,网络,笔记,arm开发,网络安全,计算机网络

路由器,可以进行三层(网络层)转发

交换机,是进行两层(数据链路层)转发

这个定义是站在经典的路由器/ 交换机的定义上看待的

实际上现代的交换机/ 路由器之间的差异越来越小了,之间的功能也是有很多重合的

初识网络原理(笔记),Java EE,网络,笔记,arm开发,网络安全,计算机网络

集线器是把一根网线,分成多个岔口,但是和交换机有本质区别

交换机分出来的这个岔口,彼此之间是独立的,不干扰的

集线器分出来的岔口,是会冲突的

局域网和广域网,并没有一个明确的界限

当局域网中,设备数量非常多,局域网空间跨度特别大,就可以称为广域网了


网络通信基础

IP 地址

使用 ip 地址,来描述网络上一个设备所在的位置


端口号


用来区分一个主机上不同的应用程序

一个网络程序,在启动的时候,都需要绑定一个或者多个端口号,后续的通信过程都需要依赖端口进行展开的


协议

描述了网络通信传输的数据的含义

网络通信协议,虽然更复杂,但是本质上也是认为约定出来的一些规则

网络发展这么多年了,很多细节,都已经有规定出来的协议了

我们做的主要就是学习已经约定好的协议

为什么要约定好协议呢?

电脑种类很多,设备的厂商也很多,必须有一份统一的协议标准,让大家按照同样的标准来研发设备,这样大家弄出来的东西就可以在一起相互通信了


协议分层

网络通信,是一个比较复杂的工作,会涉及到一系列非常繁琐,非常细节的工作

靠一个协议解决所有问题会导致这个协议非常复杂,非常庞大

因此就需要对协议进行拆分,由于拆分出来的协议有点多,就对这些协议进行分类,分层

对于网络协议来所,往往分成几个层次进行定义

上层协议调用下层协议

下层协议给上层协议提供服务支持

也就是属于这些协议搞了明确的层级关系,可以避免跨层级调用引起的混乱,降低耦合,提高了整个系统的可读性初识网络原理(笔记),Java EE,网络,笔记,arm开发,网络安全,计算机网络

这个图就很好描述了分层

(1)上层不需要了解下层的细节(封装)

(2)灵活的 调整 / 替换 某层的协议


协议分层,主要有两种方式:OSI 七层网络模型(只是在教科书上) , TCP / IP 五层网络模型

TCP / IP 五层网络模型

如果算上物理层,就是五层,如果不算上物理层,就是四层

因为物理层是偏硬件的,和软件关系不大 

物理层:

描述的是网络通信中的一些基础设施需要遵守的规范

会约定 网线,网口是什么样子的

数据链路层

相邻节点之间,数据如何运输 

网络层

进行路径规划 

上海 -> 北京,有很多的路线走法 ,快递公司就需要规划处商品走哪个路线

传输层

只关注起点和终点,不关注中间过程(数据从哪里出发,要到哪里去) 

应用层

拿到这个数据,具体用来干什么初识网络原理(笔记),Java EE,网络,笔记,arm开发,网络安全,计算机网络

不同的应用程序,就会使用不同的应用层协议来通信(也可能用相同的)

传输层协议,网络层协议,都是属于操作系统中的,已经内置的

驱动程序,是硬件厂商提供的,驱动程序会和系统内核进行适配,进一步的系统就可以通过驱动来操作硬件了


网络数据传输的基本流程

用四个字概括:封装和分用

以 QQ 发送消息为例,介绍网络数据传输的基本流程

A 把消息通过 QQ 发给主机 B

网络通信中的 “五元组” : 源ip ,源端口,目的ip ,目的端口,协议类型

发送方的情况:

1、应用层

QQ 应用程序,从输入框获取到你要输入的消息,构造成应用层数据报(根据应用层协议)

很多应用程序里会自定义应用层协议,QQ 使用的是什么协议,我们是不知道的

假设  QQ 的应用层协议是这样的:初识网络原理(笔记),Java EE,网络,笔记,arm开发,网络安全,计算机网络

所谓的 “构造应用层数据报” 过程,就是按照一定格式进行字符串拼接

发送方和接收方,需要达成一致

应用程序,就会调用传输层提供的接口,把上述数据交给传出层进行处理


2、传输层

传输层协议有很多,其中最主要的是 TCP 和 UDP 

此处假设使用 UDP

上面数据从应用层传到了传输层,交给了 UDP ,于是 UDP 协议就要按照自己的格式,生成一个 UDP 数据报初识网络原理(笔记),Java EE,网络,笔记,arm开发,网络安全,计算机网络

UDP 不关心应用层数据里面都有啥,都是啥内容,只是把应用层数据当做一个字符串,构造出一个 UDP 数据报

类似于快递小哥在取件的时候,不关心快递具体是啥东西,只是关心尺寸和重量(包裹中能不能放下)

快递小哥在拿到东西之后,会再包装一下,贴上标签

此时,传输层会把构造好的 UDP 数据报,进一步交给网络层


3、网络层

网络层最主要的协议,就是 IP 协议

IP 协议也会根据自己的格式,构造出一个 IP 数据报初识网络原理(笔记),Java EE,网络,笔记,arm开发,网络安全,计算机网络

IP 协议不关心这里的载荷内容是啥,只是单纯的把在和当做一个字符串,再这个基础上拼接上另外一个 IP 报头

接下来, 还需要把数据传输给数据链路层


4、数据链路层

以太网(平时上网需要插一个网线)

以太网,又会针对 IP 数据报,进行进一步封装,再添上数据头和数据尾初识网络原理(笔记),Java EE,网络,笔记,arm开发,网络安全,计算机网络

以太网也不关心载荷里是啥,只是把载荷当成字符串,进一步拼接上帧头帧尾,构造成 以太网数据帧

上述这样的数据,还需要进一步交给物理层


5、物理层

硬件设备(网卡)初识网络原理(笔记),Java EE,网络,笔记,arm开发,网络安全,计算机网络

本质上都是二进制的数据(一组0101 构成的)

硬件设备就需要对上述数据进行转换了(光信号 / 电信号 / 电磁波)

到这里,主机A 完成了发送过程


接收方的情况

此处,我们先不考虑中间过程

1、物理层

硬件设备受到 光信号 / 电信号 / 电磁波,需要把受到的信号进行解调,得到了一串 0101 的二进制数据序列,也就是以太网数据帧

调制:把你要传输的信息放到光电信号中

解调:从光电信号中把信息取出来初识网络原理(笔记),Java EE,网络,笔记,arm开发,网络安全,计算机网络

这个数据就需要被交给上一层,数据链路层


 2、数据链路层

数据链路层的以太网协议,就会针对这个数据进行解析

初识网络原理(笔记),Java EE,网络,笔记,arm开发,网络安全,计算机网络

 此时,再把载荷部分取出来,交给上层(IP协议)


3、网络层

IP 协议针对这个数据报进行解析,去掉 IP 报头,取出载荷,进一步的交给传输层初识网络原理(笔记),Java EE,网络,笔记,arm开发,网络安全,计算机网络


4、传输层

根据 IP 报头里的字段,就知道当前这个载荷是一个 UDP 数据报,交给 UDP 处理

UDP 也是要针对数据报进行解析,去掉报头,取出载荷,进一步交给应用程序

初识网络原理(笔记),Java EE,网络,笔记,arm开发,网络安全,计算机网络


 5、应用层

UDP 报头中,有一个字段,目的端口,根据目的端口找到关联的应用程序,就交给这个程序即可

qq程序接收到了这个数据,就会按照qq 的应用层协议,进行解析

初识网络原理(笔记),Java EE,网络,笔记,arm开发,网络安全,计算机网络

把这里的数据显示到页面上

在qq 中,对应的头像就开始闪烁,点进去,就能显示出这个新的消息以及消息的时间等信息


主机 A 从上到下,依次添加报头的过程,称为封装

主机 B 从下到上,依次解析报头的过程,称为分用

封装就是在打包快递,分用就是在拆快递

每次网络数据的传输,都是要经历这个过程的

消息转发到某个设备,每个设备处理流程都是和上面的封装分用是一样的

如果是一个交换机,交换机分用到数据链路层即可

交换机解析出以太网数据帧,进一步的获取到帧头中的 “mac 地址” ,根据 mac 地址查询到交换机内部的转发表,确定接下来数据从哪个网口发出去

在发送之前,又会重新把以太网数据帧封装好

路由器则是封装分用到网络层

解析出 ip 数据包,获取到 ip 报头,根据 ip 报头中的目的ip 进一步规划接下来要走的路线

接下来又会把这个数据进行转发

上述描述的交换机路由器,只是一个经典的交换机路由器

实际上现代的交换机路由器,会做更多的事情,很可能是封装分用到应用层文章来源地址https://www.toymoban.com/news/detail-661451.html

到了这里,关于初识网络原理(笔记)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 初识网络原理(笔记)

    目录 ​编辑局域网 网络通信基础 IP 地址 端口号 协议 协议分层 TCP / IP 五层网络模型 网络数据传输的基本流程 发送方的情况: 接收方的情况   搭建网络的时候,需要用到 交换机 和 路由器 路由器上,有 lan 口 和 wan 口 虽然路由器只有 4 个 lan 口 实际上组建的局域网,可以

    2024年02月12日
    浏览(25)
  • (第十一天)初识SpringMVC SSM框架的学习与应用(Spring + Spring MVC + MyBatis)-Java EE企业级应用开发学习记录

    今天我们要来学习一下SSM框架的最后一个框架SpringMVC 一、初认SpringMVC 基本概念: ​ Spring MVC(Model-View-Controller)是一个用于构建Java Web应用程序的开源框架,它提供了一种基于MVC架构的方式来开发Web应用 。 ​ SpringMVC是Spring Framework的一部分,它是一种基于模型-视图-控制器(

    2024年02月07日
    浏览(62)
  • 【Java EE】初识Spring Web MVC

    Spring Web MVC 是 基于 Servlet API 构建的原始 Web 框架 ,从⼀开始就包含在Spring框架中。它的正式名称“Spring Web MVC”来⾃其源模块的名称(Spring-webmvc),但它通常被称为)Spring MVC). Servlet是⼀种实现动态⻚⾯的技术.准确来讲Servlet是⼀套Java Web 开发的规范,或者说是⼀套Java Web 开发的

    2024年04月10日
    浏览(51)
  • java中的线程不安全和实例解析,网络安全多态实现原理

    先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7 深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前! 因此收集整理了一份《2024年最新网络安全全套学习资料》

    2024年04月27日
    浏览(39)
  • 初识网络安全

    目录 前言 一、安全事件案例 二、网络安全行业公司 三、网络安全岗位 四、网络安全网站 五、src漏洞平台 总结 🌈嗨!我是Filotimo__🌈。很高兴与大家相识,希望我的博客能对你有所帮助。 💡本文由Filotimo__✍️原创,首发于CSDN📚。 📣如需转载,请事先与我联系以获得授

    2024年02月07日
    浏览(25)
  • 初识网络安全(黑客技术)

    目录 前言 一、安全事件案例 二、网络安全行业公司 三、网络安全岗位 四、网络安全网站 五、src漏洞平台 总结 🌈嗨!我是Filotimo__🌈。很高兴与大家相识,希望我的博客能对你有所帮助。 💡本文由Filotimo__✍️原创,首发于CSDN📚。 📣如需转载,请事先与我联系以获得授

    2024年02月09日
    浏览(57)
  • Java安全 URLDNS链分析,网络安全开发面试基础

    this代表的是当前对象的指针,也可以用 this.name 的方式调用当前对象中的成员 那我们去 URLStreamHandler类 当中,查看下 hashCode方法 的代码 protected int hashCode(URL u) { int h = 0; // Generate the protocol part. String protocol = u.getProtocol(); if (protocol != null) h += protocol.hashCode(); // Generate the host pa

    2024年04月23日
    浏览(32)
  • ARM 学习笔记2 初识Cortex-M33与STM32G4

    ARM Cortex-M系列处理器的差异与联系:【ARM Cortex-M 系列 1 – Cortex-M0, M3, M4, M7, M33 差异】 两本书籍的英文版和中文版 Definitive Guide to Arm® Cortex®-M23 and Cortex-M33 Processors Arm Cortex-M23和Cortex-M33微处理器权威指南 ST的介绍页 Arm® Cortex®-M33概述 STM32G474RE 采用STM32G474RE MCU的STM32 Nucleo-64开

    2024年01月25日
    浏览(45)
  • [JAVA EE ]创建Servlet——继承HttpServlet类笔记3

    Response 一、响应行 组成:协议/版本 响应状态码 状态码描述 响应状态码:服务器告诉客户端浏览器本次请求响应的一个状态,都是三位数 1xx:服务器接收客户端消息,但是没有接收完成,等待一段时间后,发送1xx状态码 2xx:成功,200 3xx:重定向。302重定向,304访问缓存

    2024年02月03日
    浏览(37)
  • [JAVA EE]创建Servlet——实现Servlet接口笔记1

    创建Servlet的方式之一:实现servlet接口 servlet的生命周期: 1、实例化:创建servlet实例对象 2、初始化:调用init方法完成初始化工作 3、服务:调用service方法来处理用户请求 4、销毁:调用destroy方法来释放占用的内存资源 通过service方法处理用户的请求: 通过request(servletReque

    2024年02月03日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包