文章目录

  • 1.网络在体系结构的位置与网络协议栈的层状结构
  • 2.协议栈各层的功能
  • 3.协议
  • 4.OSI七层模型与TcpIp四层模型
  • 5.网络通信的流程
  • 局域网通信流程(以太网)
  • MAC地址
  • 跨网络通信
  • IP地址

1.网络在体系结构的位置与网络协议栈的层状结构

2.协议栈各层的功能

协议栈分层设计达到了解耦目的,层与层之间只有接口之间的关系,提高了代码之间的可维护性与拓展性。同一层之间使用的协议相同,达到了跨设备的作用

3.协议

协议本质是一种约定,这种约定用计算机语言表达出。约定本身要可以通过某种数据标记出来,通信双方也可以识别。

eg:

4.OSI七层模型与TcpIp四层模型

开始涉及网络分层模型为OSI七层模型,但在实现的时候,因为其过于繁琐,最后实现简化为四层模型。
OSI七层模型为:


新增每层之间的作用为:

  • 表示层:双方通信时,设备固有数据格式和网络标准数据格式的转化
  • 会话层:建立与断开通信连接

OSI七层模型与TCPIP四层模型之间的关系为:
TCPIP四层协议中将会话层,表示层,应用层三层合并到应用层上

5.网络通信的流程

局域网通信流程(以太网)

在同一个局域网中,两台主机可以直接通信。

首先数据从主机A从应用层开始,自顶向下数据封包

经过每一层添加对应的报头

报头也是数据,一般是通过位断或结构体构成的。
数据封包:
用户的数据在拷贝到操作系统的缓冲区时,将报头添加到用户数据头部。每经过TCPIP协议一层,就向头部添加一层报头。

当主机B收到数据时要自底向上解包分用,最晚封装报头一定在报文的最外层

在识别报文时,接受方将报文分成当前层的报头以及有效载荷两部分

在对应层时只关心对应层的报头。
不同层的报头可能是下一层的有效载荷

当前层如何将报文分为当前层报头+当前层有效载荷?

  1. 定长报头:每一层报头的长度固定,系统直接截取固定长度就可以将报文分成两部分。
  2. 自定义描述字段:在报头结构体中前八个字节保存了报头大小以及有效载荷大小。系统拿到报文时,只要提取前两个整数,就可以找到报头大小和有效载荷大小。

每个协议报文的拆分都为这两种方法(解包)

有效载荷传递给上层那个具体协议
每个协议结构体中包含一个变量,这个变量表示了当前层的有效载荷应该给上层的那个协议。

所有协议中包含一个有效字段要传递给上层的那个协议(分用)

局域网通信流程如下图:

数据在主机A封包后再以太网传输到主机B,主机B经过解包分用将数据传递给应用层

数据在以太网中的传输过程为:

在主机A向主机B传递报文时,局域网上所有的主机底层都可以收到报文数据,只不过只有主机B对报文进行了解析,其他主机直接丢弃了报文。

实际局域网通信过程中不仅仅只有主机A与主机B通信,局域网上所有主机都有可能互相通信

局域网特性要求任何时候只能一台机器发送信号,A与B发信息时可能此时D向C发信息,这时就形成了局域网碰撞现象。

如果网络中的数据发生碰撞,主机可以检测到。(主机A发送信息与接受的信息不同,说明发生了碰撞)

当发生碰撞时,所有的主机进行碰撞避免算法,来避免碰撞。

注意:局域网发生碰撞的概率很低,网络通信速度与计算机处理速度很快。

MAC地址

主机A向主机B发消息,B如何识别消息发送给自己?

当前计算机中,每一台计算机上都至少有一张网卡,而每一张网卡都内置了48位序列号,这个序列号是全球唯一的。

局域网发送的数据称为MAC数据帧

数据帧上有dst MAC地址,当MAC数据帧在局域网上传输时,每一台主机与dst MAC地址对比,如果匹配上,则处理数据。匹配不上则丢弃数据。(单项发送)

注意:
如果dst MAC地址设置为全F,这个数据帧所有主机都会处理,称为广播发送信息

跨网络通信

主机A与主机2通信

路由器横跨多个网络,且每一个局域网都认为路由器时局域网上的一台主机。
主机A,B,C可以直接与路由器通信,主机1,2,3同理。

如果两个局域网都是通过以太网通信比较简单,但如果两个局域网一个用以太网,另一个用令牌环通信,就存在在数据链路层使用的协议不同,添加的网络报头不同,无法直接通信的现象。

注意:

  1. 以太网通过碰撞通信,令牌环是指拿到令牌的主机可以向网络中发送信息。
  2. 虽然在数据链路层所用的协议不同,但在其他层(传输层,网络层)协议相同

路由器结构:

IP地址

IP地址:(公网IP)用来标识全网唯一台主机
IPV4:32位比特位标记IP地址
IPV6:128位比特位标记IP地址

以太网数据帧发送给路由器,路由器解包到网络层,路由器通过查找路由表确定要发给那个局域网那台主机。数据又通过路由器网络层的封包到路由器的数据链路层,此时添加的报头是令牌环报头。(相当于换了以太网报头)

在数据链路层以上主机A与主机2的每层报头相同。此时就达到主机A通信主机2。

综上:通过IP地址虚拟化了所有底层网络的差异,底层差异有路由器解决。只要在网络层添加IP协议,底层网络集体实现不用考虑,所以现在的主流网络又称为IP网络。

这点与Linux进程虚拟地址空间,和Linux一切皆文件类型。

Linux网络_从系统到网络(网络协议栈分层与功能,认识协议,OSI七层模型与TCPIP四层模型,网络通信流程(局域网,跨网络),MAC地址,IP地址)相关推荐

  1. 网络协议入门(OSI七层和TCP/IC四层协议)

    Android网络知识 Android作为一个移动端操作系统,是一定会涉及到网络知识的,会用不是我们的目标,深入了解其中的原理才是能让我们提升的根本. 1.关于网络传输 首先,在互联网中任何的数据传输 ...

  2. TCP/IP 网络通信协议 之 OSI 七层模型

    3.1 OSI七层模型 TCP/IP传输协议,即传输控制/网络协议,也叫作网络通讯协议.它是在网络的使用中的最基本的通信协议. 针对TCP/IP协议的标准化,国际标准化组织(ISO)制定的一个用于计算 ...

  3. 网络 osi七层协议

    一 互联网的本质 咱们先不说互联网是如何通信的(发送数据,文件等),先用一个经典的例子,给大家说明什么是互联网通信. 现在追溯到八九十年代,当时电话刚刚兴起,还没有手机的概念,只是有线电话,那么此时你 ...

  4. 网络编程(part6)--OSI七层模型及四层模型(TCP/IP)

    鄙人学习笔记 文章目录 OSI七层模型(标准) 四层模型(TCP/IP模型) 数据传输过程 网络协议 OSI七层模型(标准) ●制定组织: ISO(国际标准化组织) ●作用:使网络通信工作流程标准化 ...

  5. TCP/IP网络四层协议与OSI七层协议

    OSI网络七层协议 OSI模型有7层结构,从上到下分别是 >>应用层 >> 表示层 >> 会话层 >> 传输层 >> 网络层 >> ...

  6. Linux下套接字详解(补充)--OSI七层与TCP/IP五层网络架构详解

    OSI七层模型 OSI是Open System Interconnect的缩写,意为开放式系统互联. OSI是Open System Interconnect的缩写,意为开放式系统互联. OSI七层参 ...

  7. 徐无忌深入浅出网络笔记:什么是OSI七层网络模型

    徐无忌深入浅出网络笔记:什么是OSI七层网络模型 完成:第一遍 1.什么是OSI? OSI即开放式系统互联(Open System Interconnection) 是期望的标准框架 2.OSI自下向 ...

  8. 【计算机网络】网络通信基础(IP地址,端口号,五元组,OSI七层模型,TCP/IP五层模型,封装和分用)

    目录 初识网络 网络通信基础 IP地址 端口号 认识网络协议 五元组 协议分层 封装和分用 初识网络 网络互连 随着时代发展,需要计算机之间相互通信,共享软件和数据,即多台计算机相互协同工作来完成某个 ...

  9. OSI七层网络模型与TCP/IP四层网络

    网络协议设计者不应当设计一个单一.巨大的协议来为所有形式的通信规定完整的细节,而应把通信问题划分成多个小问题,然后为每一个小问题设计一个单独的协议.这样做使得每个协议的设计.分析.时限和测试比较容易. ...

最新文章

  1. 直播 | 256核CPU实现每秒一百万帧的Atari!强化学习并行模拟器EnvPool详解
  2. EM算法(Expectation Maximization Algorithm)详解
  3. oracle04052,ORA-04052解决过程
  4. wxWidgets:wxArchiveClassFactory类用法
  5. PHP里10个鲜为人知但却非常有用的函数
  6. 在互联网上,没有人知道你是一条狗?
  7. catia二次开发:结构树文档,录制宏编程思路,遍历结构树,catia根对象窗体属性,打开导出文件,cameras工具条,viewer对象和截图,catia发送命令
  8. opencv-python:17_图像经典边缘检测算子(边缘检测、图像梯度、Roberts算子、Prewitt算子、Sobel 算子、Laplacian 算子、Canny算子、算子优缺点对比)
  9. freeradius部署及挑战模式配置
  10. 图论专项shortest_paths:UVa 10246
  11. besiege机器人_围攻besiege机器人 机器人制作思路
  12. 微信app支付服务端开发记录
  13. 陈嘉哲:黄金原油跳水承压,日内或将延续,如何操作?附操作建议
  14. 6款新电脑必装优质软件,一个比一个更好用
  15. 如何查看linux服务器内存使用情况
  16. 天气预报插件使用教程
  17. excel滚轮_Excel滚轮快捷键
  18. pc端微信分享(不是直接分享)
  19. enq: TX - allocate ITL entry
  20. 如何使用金蝶KIS建账向导

热门文章

  1. 神奇的相互表扬小组 与人的挣扎、孤独、欢乐、追求
  2. 角色架構安全性與 Web Services Enhancements 2.0 的相互應用
  3. 创新小程序项目介绍:音乐推荐小程序
  4. VS 属性页面中Debug、Realease多线程调试
  5. 如何利用微信做营销?
  6. jQuery之移除元素方法
  7. 写给大忙人看的jQuery动画效果
  8. Vue对接支付宝沙箱环境
  9. 【主机名变bogon】linux主机名被更改为bogon原理分析
  10. iPhone X将掀手机新革命