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

网络初识~

目录

一,基础认识

二,TCP/IP五层模型

三,封装与分用

封装:

1.应用层(应用程序):

2.传输层:

3.网络层:

4.数据链路层:

5.物理层:

分用:

1.理论过程

2.实际应用


一,基础认识

IP地址:描述一个设备在网络上的位置,计算机通过数字来描述,本质上是32位,4个字节的整数,为方便表示,往往IP地址表示成“点分十进制”。

有了IP可以确定主机,但是一个主机上可能有很多程序在使用网络~~

端口号:描述了一个主机上的某个应用程序,每个程序在进行网络通信过程中,都需要有一个端口号(可能是用户手动指定的,也可能是系统自动分配的)同一个主机上,程序之间使用的端口号不能冲突(端口号也是一个整数)

进行一次网络通信的过程中,涉及到的IP和端口各有两个,分别为

目的IP:标识目的主机

目的端口:标识目的主机中该次通信接收数据的进程

源IP:标识源主机

源端口:标识源主机中该次通信发送数据的进程

就和买东西一样,对应收件人地址,电话,发件人地址,电话。

协议:通信过程中的约定,发送方和接收方需要提前商量好数据的格式,才能确保两者之间能够正确进行沟通。

协议就是一种约定,确保不同的厂商之间生产的设备能够相互配合。

网络通信过程中,需要涉及到的细节,其实是非常非常多的,如果要一个协议完成,就需要约束方方面面的内容,非常多的细节,导致这个协议非常复杂

一个协议太复杂太庞大,非常不利于学习和维护,所以需要把一个高大全的协议,拆分成多个功能更单一,“小而美”的协议,为了这些协议更好的相互配合,引入了协议分层

网络通信协议中,把功能定位相似的协议放到同一层中,上层协议会调用下层协议的功能,下层协议给上层协议提供服务,且只有相邻的层次之间可以进行沟通,不能跨层次调用。

协议分层还附带一些好处:

1.上层协议直接使用下层协议即可,不需要了解下层协议的细节(相当于下层协议把细节封装好了)。

2.某一层的协议进行替代之后,对于其他层没啥影响。

二,TCP/IP五层模型

OSI七层网络协议:物理层,数据链路层,网络层,传输层,会话层,表示层和应用层。

后来在实施的过程中,太麻烦了,就简化成了五层

TCP/IP五层协议:应用层,传输层,网络层,数据链路层,物理层

简述各层的作用:

应用层:程序拿到数据后,要用来干嘛就干嘛

传输层:负责关注网络数据包的起点和终点~(从哪来到哪里去) 端到端之间的传输  上海-西安

网络层:负责关注起点和终点之间,要走哪条路~~(路径规划)上海->南京->无锡->西安

数据链路层:负责两个相邻节点之间的传输~~(上海到南京,飞机空运;南京到无锡,铁路运输)

物理层:通信过程中的基础设施~~(类似公路,铁路)

对于一台主机,它的操作系统内核实现了从传输层到物理层的内容,即TCP/IP五层模型的下四层

对于一台路由器,它实现了从网络层到物理层。即下三层

对于一台交换机,它实现了从数据链路层到物理层,即下两层

对于集线器,它只实现了物理层。

其中,经典说路由器是工作在网络层,交换机工作在数据链路层,但事实上,真实世界的交换机和路由器要更复杂,很多交换机具备一些路由器的功能,也能在网络层工作,同理,很多路由器具备一些交换机的功能,也能在数据链路层工作。

三,封装与分用

封装:

1.应用层(应用程序):

如QQ发送信息,QQ从消息输入中获取到用户输入的hello,就要将这个字符串构造成一个应用层的数据包,QQ这样的程序内部就设置了一个应用层协议,应用层数据包就是按照这个应用层协议约定的格式来构造的,如:

应用程序就会调用操作系统提供的api,把这个数据交给传输层。

2.传输层:

传输层就会把上述的数据作为一个整体,再构造成一个传输层的数据包,传输层涉及到的协议,最主要的就是TCP和UDP,假定使用UDP来进行通信,就会构造一个UDP的数据包,如:

形如上述添加报头的过程就是封装,其实就是字符串拼接,只不过拼的报头,具有一定的结构

对于UDP报头来说,承载的最重要的信息就是源端口和目的端口

拼好传输层数据包之后,就要把这个数据包进一步交给下层,网络层继续进行封装了

(交给下层,指的是,下层协议提供一组api,上层调用这个api,并且把刚才构造好的数据通过参数传过去,下层协议就可以来处理这个数据了)

3.网络层:

这里涉及到最核心的协议,IP协议

网络层 IP协议,把刚才的传输层的数据包作为一个整体,再拼接上IP协议的报头,构造成一个IP数据包

IP报头中也会包含一些辅助转发的关键信息,其中最重要的就是源IP和目标IP了。

构造完成完整的IP数据包后,IP协议继续调用数据链路层的api,把数据再交给数据链路层这里的协议进行处理

4.数据链路层:

数据链路层这里涉及到的核心协议是以太网,其中以太是用来表示网络数据传输的介质

以太网就是我们日常最常见的有线网络,我们日常用到的网线,也叫做"以太网线",日常用到的网口也叫做''以太网口'',用到的交换机也叫做"以太网交换机"

一样的进行封装,将IP数据包做完一个整体,在这个基础上添加上帧头和帧尾

数据还要继续向下传,交给物理层

5.物理层:

把上述这样的以太网数据帧,二进制结构转换成光信号/电信号/电磁波然后进行发送

光纤:光信号,通过光的频谱进行编码;网线:电信号,高电平/低电平;无线wifi:电磁波

经过以上的一系列操作,数据才终于从你的电脑上发送出去了

分用:

1.理论过程

暂时不考虑中间过程,假如上面发送的数据包已经到了B的网口,B如何处理,B的处理过程,就称为"分用"。

1.B的物理层收到了光信号/电信号/电磁波,就会把这些物理信号转换成数字信号(二进制的0101),得到一个以太网数据帧,进一步的把这个数据帧交给数据链路层处理

2.数据链路层按照以太网数据帧的格式来解析,取出其中的载荷(即封装时上层传下来的IP数据包),再交给上层协议(注意发送方和接受方得使用一样的协议才行,传的UDP就得UDP协议来,传TCP就得TCP协议来)

3.网络层 IP协议 按照IP协议的格式进行解析,取出其中的载荷,再交给上层协议

4.传输层 UDP协议 按照UDP协议格式来解析,取出其中的载荷,再交给上层协议

5.应用层 QQ应用程序 按照QQ应用程序内部的应用层协议来解析数据。

其实,分用的过程,就是封装的逆向过程。

2.实际应用

真实情况下,两个主机不太会是通过网线直连的,而是通过一系列的交换机和路由器来进行数据转发的

但是实际上即使是经过一系列的交换机和路由器,上述的封装分用过程也是同样适用的,只不过封装分用的程度不一定是到应用层(五层都有)

对经典交换机来说,就只需要封装分用到数据链路层即可,经典的路由器来说,就只需要封装分用到网络层即可

假如如图左边第一个小正方形是交换机:

交换机就会把上述光电信号转换成以太网数据帧,交给数据链路,交换机的数据链路层再根据得到的数据进行解析~~

这个解析过程,一方面要取出载荷部分,另一方面,就要解析到帧头中的关键信息~~

再根据帧头中的信息,决定下一步把数据往哪里进行发送,根据这个情况再构造出新的以太网数据帧~~

再把这个新的数据继续通过物理层发送出去

如果是路由器,情况就稍微复杂一点点~~就是需要封装到网络层

上述过程是经典的交换机和路由器,如果是现实中的情况就可能更加复杂,如交换机要截取/解析你传输的数据,就会封装分用到应用层,把你的传的数据取出来看看

因此,网络传输数据,并非是一个简单的事情,背后有大量的工作,只不过这些工作都是硬件&驱动&操作系统帮我们完成了~~

Ciallo~ (∠・ω< )⌒★

http://www.dtcms.com/a/598609.html

相关文章:

  • 织梦怎么做中英文网站做网站只做前端可以用吗
  • C 语言17:位操作符 | ^:从二进制编码到大小端
  • 计算机网站php设计代做平台公司和项目公司的区别
  • flowable04网关和变量
  • 设计旅游网站的主色调sem工具是什么
  • 如何降低交互复杂度,减少用户学习成本
  • 交易类网站做支付宝功能淘宝网站代理怎么做
  • 中国建设银行网站如何注册logo设计公司 南京
  • 麒麟桌面操作系统切换到root用户方法
  • 找企业名录的网站网站的横幅怎么做
  • 工具学习_Vulrule
  • 上海外贸soho网站建设静态网站登陆怎么做
  • 哈希表中桶的概念
  • 网站建设系统设计重庆百度搜索排名优化
  • 中山快速做网站服务盐城网站建设流程
  • LangFlow 中,节点间的数据流动核心是 **“输入-输出端口映射”+“执行链路驱动”**
  • 百度上怎么制作自己的网站中文网页设计案例欣赏
  • 深度学习:python动物识别分类检测系统 Django框架 CNN算法 深度学习 卷积神经网络 TensorFlow (建议收藏)✅
  • 【C++基础与提高】第四章:运算符与表达式——构建程序逻辑的工具
  • 专业提供网站制作双语言网站源码
  • 太原论坛网站开发公司芜湖网站公司
  • 深度学习模型CNN识别恶意软件
  • 模型-详解 Vision Transformer (ViT)
  • 广州专业做网站公司热门网页设计制作代码
  • 温岭 网站制作企业网站自己可以做
  • 虚拟机做网站有用吗关键词seo排名优化推荐
  • Springboot-WebService 服务端发布与客户端调用
  • CentOS7 + VMware 搭建 K3s 集群遇到的网络问题全记录与解决方案
  • flowable03任务
  • 手机软件网站京东网页版