网络通信基础

网络基本的概念:

ip地址:标志网络上设备当前的位置

端口号:用来指定一个特定的应用程序

认识协议:在网络通信中,信息交互需要遵守的协议


OSI模型 (Open System Interconnection,开放系统互连)

OSI模型只是在逻辑上把网络分成了7层,但在我们实际地网络通信中,一般只拿其中的部分层来通信,通常是以TCP/IP四层/五层协议来实现


TCP/IP五层协议

TCP/IP协议并不是只代表了这两个协议,其中还包括很多协议,这是一个协议组。

五层结构模型:(可以类比于发快递的过程)

  • 应用层:负责程序之间的逻辑业务沟通,由我们程序员来编写逻辑代码开发, 我们的网络编程就是主要针对于应用层
  • 传输层:只关注端到端的传输,只关心起点和终点,使数据能够可靠地其起点发送到终点
  • 网络层:负责传输路线的路径选择(怎么选择成本最低)
  • 数据链路层:负责节点间数据传输的工具是什么(是坐车还是坐火车还是坐高铁)
  • 物理层:负责光/电信号的传递方式(负责网络通信的基础硬件设施的搭建-----修路)

其中,应用层由我们程序员自己负责传输层和网络层由操作系统内核实现数据链路层和物理层由硬件及驱动程序实现

网络传输基本流程:(类比封快递 拆快递)
封装:
  1. 应用层:我在应用层程序中发送了一个自定义协议格式的数据(每个应用程序定义的格式都不一样),程序需要调用操作系统的api,将这个消息告诉给传输层

  2. 传输层:到传输层时,此时就已经到了操作系统内核了,此时需要将从应用层接收到的数据打成一个数据包,而在传输层最知名的协议便是udp/tcp协议了,此时我们以udp协议举例:我们需要在接收的数据的基础上给它套个udp报头,变成udp数据报格式

  3. 网络层:到传输层时,最知名的协议是IP协议,需要将数据封装成一个IP数据报,其拼接过程和传输层拼接过程类似,也是在数据之前拼接上一个IP报头

  4. 数据链路层:到达数据链路层时,其最知名的协议为-----以太网,故需要将数据打成以太网数据帧,在IP数据报之前加上一个以太网帧头,在尾部加一个以太网帧尾

    5.物理层:将此时的数据转换成光/电信号,此时我们的数据,就真正地发送出去了

分用(层层解析)

当对方接收到我们发送的数据后,需要将层层包装后的数据一层层解析,拿到我们最开始应用层发送的原始数据

  1. 物理层:将光/电信号重新转换成二进制数据,最后轮换后的结果是一个以太网数据帧

  2. 数据链路层:解析数据,去掉帧头帧尾,取出中间的载荷,交给上层网络层IP协议

  3. 网络层:解析数据,去掉IP报头,取出中间载荷,交给上层传输层udp协议

  4. 传输层:解析数据,去掉UDP报头,得到原始应用层数据

  5. 应用层:根据应用层协议,将接收过来的数据信息以某种方式显现出来

上面部分,我们了解到了五层模型各个部分都有不同的协议,那么为什么需要协议分层呢?为什么需要协议呢?

  • 协议分层:便于更好地通信,类比于有许多外国人处在一个空间,那么如何能让他们进行通信呢?将同国的人划分在一个区域,而这就是协议分层的意义,在此区域规定了说汉语,就不能说英语,要说英语的话就去你对应的区域找
  • 协议:通信双方必须按照其规定的模式来交流才能正常理解数据信息,如果没有此标准的话,那么信息传递就无法进行了,例如我传递了一段文字信息,你却给我翻译成了一张图片,这咋通信呢?

小结:
  1. 在整个网络协议中,协议被分成了很多层,每个层都有着自己独有的作用
  2. 上层协议需要调用下层协议(上层协议将数据交给下层协议继续封装),下层协议为上层协议提供支持(下层协议将数据解析后交给上层协议)
  3. 层与层之间具有明确的层级关系,不能跨层传输,只有相邻的层之间才能交互
  4. 在分层模式约束下,使我们的网络传输变得清晰明了

  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值