Linux_网络基础1_1


一、网络出现的背景

1.从独立模式到网络互联模式

独立模式:计算机之间相互独立
在这里插入图片描述


网络互联:多台计算机连接在一起,完成数据共享
在这里插入图片描述


局域网LAN: 计算机数量更多了, 通过交换机和路由器连接在一起。

在这里插入图片描述


广域网WAN: 将远隔千里的计算机都连在一起;
在这里插入图片描述

所谓 “局域网” 和 “广域网” 只是一个相对的概念. 比如, 我们有 “天朝特色” 的广域网, 也可以看做一个比较大的局域
网.

2.重新看待计算机结构

理解计算机通过网络互联的可能性
根据冯诺依曼:

在这里插入图片描述

这些设备是如何进行数据交换的?
设备和设备间一定有“线”连接起来

那么两台计算机:
在这里插入图片描述
多主机连接,本质上其实也是通过“线”连接起来。

主机内,“线”比较短,会有信号干扰问题。
跨主机,“线”比较长,会有可靠性,效率,寻找到对方等问题。

学习网络知识的本质:都是因为“线”变成长了。

二、网络协议意义

1.认识协议

举个例子:
现在有ABC三人,A只会说中文,B只会说英语,C既会中文也会英语。
A和B如何沟通,A和C如何沟通:

  • 将汉语和英语当作“协议”
  • 将聊天当作“通信”
  • 将说话内容当作“数据”
    A与B语言不通无法交流,A与C协议一致,通信自如。

协议本质就是一个约定,只有都遵守协议,才能进行接下来的通信。

思考:只要通信的两台主机,约定好协议就可以了吗?
不可以,拿中文来说,许多的地方有方言,不同地域的人使用方言,是无法进行交流的,同一地域使用方言是可以交流的,虽然都约定了协议,但不统一,后来推出普通话这个协议,使得全中国的人都可以进行交流。
放在网络上就是:

  • 计算机生产厂商有很多;
  • 计算机操作系统, 也有很多;
  • 计算机网络硬件设备, 还是有很多;

如何让这些不同厂商之间生产的计算机能够相互顺畅的通信?
就需要有人站出来, 约定一个共同的标准,大家都来遵守, 这就是 网络协议;

2.网络协议

1.协议分层

软件是可以分层的,为什么要分层?
1.软件在分层的同时,也把问题归类的
2.分层的本质:软件上解耦
3.便于工程师进行软件维护
而网络本身的代码,就是层状结构!

在这里插入图片描述
在这个例子中, 我们的协议只有两层; 但是实际的网络通信会更加复杂, 需要分更多的层次.
分层最大的好处在于 “封装” . 面向对象例子,也就是层状结构下的网络协议,我们认为,同层协议,都可以认为在和对方直接通向,忽略底层细节。

2.OSI参考模型

在这里插入图片描述
在这里插入图片描述
OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范,但是, 它既复杂又不实用; 所以我们按照TCP/IP四层模型来讲解

3.TCP/IP五层(或四层)模型

在这里插入图片描述
对于一台主机, 它的操作系统内核实现了从传输层到物理层的内容;
对于一台路由器, 它实现了从网络层到物理层;
对于一台交换机, 它实现了从数据链路层到物理层;
对于集线器, 它只实现了物理层;

三、网络传输的基本流程

1.网络和操作系统之间的关系

tcp/ip协议和操作系统之间的关系是:操作系统内部,有一个模块,就叫做tcp/ip协议,网络协议是隶属于OS的。
在这里插入图片描述
1 .体系结构直接决定,数据包在主机内进行流动的时候,一定是要进行自顶向下或者自底向上进行流动的。以前的所有的IO都是这样的。

2.同层协议都认为自己和对方直接通信
决定了每一层都要有自己的协议

3.重谈协议——计算机的视角,如何看待协议
a.体现在代码逻辑上
b.体现在数据上
为了维护协议,一定要在被传输的数据上,新增其他数据(协议数据)

2.网络传输流程图

在这里插入图片描述
我们把每一层要交给下一层的数据,给他添加上本层的“多出来的协议数据”——报头,拼接在原来的数据的开头。
自顶向下添加报头过程叫——封装
自底向上拆开报头的过程叫——解包

3.网络中地址管理

认识IP地址和MAC地址

假设从安徽到吉林
一般我们进行路线选择的时候,我们一般有两套地址:
1.从哪里的来,到哪里去
我是从安徽来去吉林
对应的网络就是IP地址:源IP,目的IP

2.上一站从哪里来,下一站要取哪里的,下一站由谁决定?
由目的地址决定,上一站是北京,下一站是辽宁,
对应的网络就是MAC地址:源mac地址,目标mac地址

IP地址用来在广域网(公网),标定主机的唯一性。
MAC地址,用来在局域网中,标定主机的唯一性。

4.数据包封装和分用

封装的过程:
在这里插入图片描述
对于每一层都有很多协议,数据包在添加报头的时候,也会考虑未来解包的时候,将自己有效载荷交付给上一层哪一个协议这个过程叫——有效载荷的分用的过程。

数据分用的过程
在这里插入图片描述

两个结论:
1.一般而言,任何报头属性里面,一定要存在的一些字段支持,我们进行封装和解包。
2.一般而言,任何报头属性里面,一定要存在的一些字段支持,我们进行分用!

相关推荐

  1. Linux-网络基础

    2024-04-12 03:56:02       42 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-12 03:56:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-12 03:56:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-12 03:56:02       82 阅读
  4. Python语言-面向对象

    2024-04-12 03:56:02       91 阅读

热门阅读

  1. 我心目中的福克斯和马自达

    2024-04-12 03:56:02       38 阅读
  2. Redis面试题1

    2024-04-12 03:56:02       39 阅读
  3. jQuery 数字金额转化为英文大写

    2024-04-12 03:56:02       37 阅读
  4. 拷贝控制总结

    2024-04-12 03:56:02       30 阅读
  5. C++计算程序运行时间

    2024-04-12 03:56:02       36 阅读
  6. 为无网环境安装golang

    2024-04-12 03:56:02       28 阅读
  7. mybatis的include和sql的使用

    2024-04-12 03:56:02       36 阅读
  8. 回调函数详细介绍(C & C++代码实例)

    2024-04-12 03:56:02       40 阅读
  9. Codeforces Round 515 (Div. 3)

    2024-04-12 03:56:02       33 阅读
  10. Python 推导式介绍

    2024-04-12 03:56:02       32 阅读
  11. 爬虫 xpath基础

    2024-04-12 03:56:02       37 阅读