linux网络基础

目录

计算机网络背景

网络发展

初识“协议”

协议分层

OSI 七层模型

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

再识协议

网络传输基本流程

同局域网的两台主机通信

跨网络传输流程图

提炼IP网络的意义和网络通信的宏观流程


计算机网络背景

网络发展

独立模式:计算机之间相互独立

在早期的时候,计算机之间是相互独立的,此时如果多个计算机要协同完成某种业务,那么就只能等一台计算机处理完后再将数据传递给下一台计算机,然后下一台计算机再进行相应的业务处理,效率非常低下。

网络互联:多台计算机连接在一起,完成数据共享;

这时就有人设法将这些计算机连接在一起,当某个业务需要多台计算机协同完成时,就可以将共享的数据放到服务器中进行集中管理,此时各个计算机就都能获取到这些共享的数据,所以各个业务在处理就能随时进行切换了。

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

广域网WAN:将远隔千里的计算机都连在一起;

   每一个协作群体都有一个局域网,但是有时候需要协作群体之间进行协作,于是有了广域网WAN,将远隔千里的计算机都连在一起。实际局域网和广域网是一种相对的概念,我们也可以将广域网看作一个比较大的局域网。

初识“协议”

 "协议" 本质上就是一种约定。通过这种约定,来让我们在某些通信场景当中,达到更快速的进行通讯的目的。

我们加了网络,两台主机的通讯的距离就变得非常得长了,主机A想向主机B发送数据。数据也是有类别的,如有一些数据就是单纯的数据:用户信息,有一些数据具有特殊的含义,比如说有一些数据是想让目标主机进行数据的删除、控制对方的主机等。

协议是怎么产生的?

可以理解为需求驱动-通信需求的出现​:当不同设备需要交换数据时(如计算机、服务器、路由器),需解决以下问题:

物理连接​:如何通过电缆、无线电波等传输信号?

数据格式​:如何表示文本、图像等?​

错误处理​:传输中数据损坏怎么办?

路由与寻址​:数据如何找到目标设备?

效率与安全​:如何避免拥堵?如何防止窃听?

为了能够快速的让两个相隔千里之外的计算机,能够区分出数据是哪些类别,每一种特别类型种的某一些特别的数据的含义,所以就需要通过以提前约定好的方式来减少双方通讯成本的问题。这种方式就是协议 

        计算机之间的传输媒介是光信号和电信号. 通过 "频率" 和 "强弱" 来表示 0 和 1 这样的信息. 要想传递各种不同的信息, 就需要约定好双方的数据格式。

思考:只要通信的两台主机,约定好协议就可以了么?

• 定好协议,但是你用频率表示01,我用强弱表示01,就好比我用中国话,你 用葡萄牙语一样,虽然大家可能遵守的一套通信规则,但是语言不同,即是订好了 基本的协议,也是无法正常通信的

所以,完善的协议,需要更多更细致的规定,并让参与的人都要遵守。

计算机生产厂商有很多;

计算机操作系统,也有很多;

计算机网络硬件设备,还是有很多;;

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

协议分层

协议本质也是软件,在设计上为了更好的进行模块化,解耦合,也是被设计成为层状结构的

在这个例子中,我们的"协议"只有两层:语言层、通信设备层。

但是实际的网络通信协议,设计的会更加复杂,需要分更多的层 但是通过上面的简单例子,我们是能理解,分层可以实现解耦合,让软件维护的成本更低

OSI 七层模型

OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范。
把网络从逻辑上分为了7层,每一层都有相关、相对应的物理设备,比如路由器,交换机。
OSI 七层模型是一种框架性的设计方法,其最主要的功能使就是帮助不同类型的主机实现数据传输。
它的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整。通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯。

其实在网络角度,OSI定的协议7层模型其实非常完善,但是在实际操作的过程 中,会话层、表示层是不可能接入到操作系统中的,所以在工程实践中,最终落地的是5层协议。

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

TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇. TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完 成自己的需求.

  • 物理层: 负责光/电信号的传递方式。比如现在以太网通用的网线(双绞线)、早期以太网采用的同轴电缆(现在主要用于有线电视)、光纤,现在的WiFi无线网使用的电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等。集线器(Hub)就是工作在物理层的。
  • 数据链路层: 负责设备之间的数据帧的传送和识别。例如网卡设备的驱动、帧同步、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作。数据链路层底层的网络通信标准有很多,如以太网、令牌环网、无线LAN等。交换机(Switch)就是工作在数据链路层的。
  • 网络层: 负责地址管理和路由选择。例如在IP协议中,通过IP地址来标识一台主机,并通过路由表的方式规划出两台主机之间数据传输的线路(路由)。路由器(Router)就是工作在网络层的。
  • 传输层: 负责两台主机之间的数据传输。例如传输控制协议(TCP),能够确保数据可靠的从源主机发送到目标主机。
  • 应用层: 负责应用程序间沟通。比如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。我们的网络编程主要就是针对应用层的。
     

 物理层属于硬件层,所以考虑知道的不用过多。因此很多时候也可以称为 TCP/IP四层模型。

一般而言:

  • 对于一台主机,它的操作系统内核实现了从传输层到物理层的内容。
  • 对于一台路由器,它实现了从网络层到物理层的内容。
  • 对于一台交换机,它实现了从数据链路层到物理层的内容。
  • 对于集线器,它只实现了物理层的内容。

但这并不是绝对的,比如很多交换机也实现了网络层的转发,很多路由器也实现了部分传输层的内容(比如端口转发)

再识协议

上面的内容,我们只是懂了一些基本概念,还是达不到我们的目标,下面我们再次重新理解协议和协议分层。

为什么要有TCP/IP协议?

首先,即便是单机,你的计算机内部,其实都是存在协议的,比如:其他设备和 内存通信,会有内存协议。其他设备和磁盘通信,会有磁盘相关的协议,比如: SATA,IDE,SCSI等。只不过我们感知不到罢了。而且这些协议都在本地主机各自的硬件中,通信的成本、问题比较少

其次,网络通信最大的特点就是主机之间变远了。任何通信特征的变化,一定会带来新的问题,有问题就得解决问题,所以需要新的协议咯。

所以,为什么要有TCP/IP协议?本质就是通信主机距离变远了

什么是TCP/IP协议?

  • TCP/IP协议的本质是一种解决方案 
  • TCP/IP协议能分层,前提是因为问题们本身能分层

TCP/IP 协议与操作系统的关系(宏观上,怎么实现的)

问题:主机B能识别data,并且准确提取a=10,b=20,c=30吗?

回答:答案是肯定的!因为双方都有同样的结构体类型structprotocol。也就是说, 用同样的代码实现协议,用同样的自定义数据类型,天然就具有”共识“,能够识别 对方发来的数据,这不就是约定吗?

关于协议的朴素理解:所谓协议,就是通信双方都认识的结构化的数据类型 因为协议栈是分层的,所以,每层都有双方都有协议,同层之间,互相可以认识对 方的协议。

网络传输基本流程

局域网(以太网为例)通信原理

  • 首先回答,两台主机在同一个局域网,是否能够直接通信?是的
  • 原理类似上课
  • 每台主机在局域网上,要有唯一的标识来保证主机的唯一性:mac地址

认识MAC地址

  • MAC地址用来识别数据链路层中相连的节点;
  • 长度为48位,及6个字节.一般用16进制数字加上冒号的形式来表示(例如: 08:00:27:03:fb:19)
  • 在网卡出厂时就确定了,不能修改.mac地址通常是唯一的(虚拟机中的mac地 址不是真实的mac地址,可能会冲突;也有些网卡支持用户配置mac地址).

  • 以太网中,任何时刻,只允许一台机器向网络中发送数据
  • 如果有多台同时发送,会发生数据干扰,我们称之为数据碰撞
  • 所有发送数据的主机要进行碰撞检测和碰撞避免
  •  没有交换机的情况下,一个以太网就是一个碰撞域
  • 局域网通信的过程中,主机对收到的报文确认是否是发给自己的,是通过目标 mac地址判定

同局域网的两台主机通信

这里可以试着从系统角度来理解局域网通信原理 初步明白了局域网通信原理,再来看同一个网段内的两台主机进行发送消息的过程

主机之间的通信实际上是两个协议栈在通信

而其中每层都有协议,所以当我进行进行上述传输流程的时候,要进行封装和解包

下面我们明确一下概念 

  • 报头部分,就是对应协议层的结构体字段,我们一般叫做报头
  • 除了报头,剩下的叫做有效载荷
  • 故,报文=报头+有效载荷

最后,在整体复盘一下:

在网络传输的过程中,数据不是直接发送给对方主机的,而是先要自顶向下将数据交付给下层协议,最后由底层发送,然后由对方主机的底层来进行接受,在自底向上进行向上交付。

数据包封装和分用

下图为封装示意图

下图为分用示意图

跨网络传输流程图

网络中的地址管理-认识IP地址

  • IP地址是在IP协议中,用来标识网络中不同主机的地址;
  • 对于IPv4来说,IP地址是一个4字节,32位的整数;
  • 我们通常也使用"点分十进制"的字符串表示IP地址,例如192.168.0.1;用点 分割的每一个数字表示一个字节,范围是0-255;

跨网段的主机的数据传输.数据从一台计算机到另一台计算机传输过程中要经过一个或 多个路由器. 下面是一张示意图

首先理解一下IP地址的意义

• 为什么要去目标主机,先要走路由器?

• 目的IP的意义

在理解下图时我们要明确

源IP地址:从哪里来

目标IP地址:到哪里去

源MAC地址:上一站地址

目标MAC地址:下一站地址

然后结合封装与解包,体现路由器解包和重新封装的特点

对比IP地址和Mac地址的区别

  • IP地址在整个路由过程中,一直不变(目前,我们只能这样说明,后面在修正)
  • Mac地址一直在变
  • 目的IP是一种长远目标,Mac是下一阶段目标,目的IP是路径选择的重要依 据,mac地址是局域网转发的重要依据

提炼IP网络的意义和网络通信的宏观流程

• IP网络层存在的意义:提供网络虚拟层,让世界的所有网络都是IP网络,屏蔽 最底层网络的差异

评论 38
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值