网络原理之初识

目录

网络发展背景

独立模式

网络互联

局域网

广域网

网络通信基础

IP地址

端口号

协议

协议分层

OSI七层网络模型

TCP/IP五层(四层) 网络模型

物理层

数据链路层

网络层

传输层

应用层

封装和分用


网络发展背景

独立模式

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

网络互联

网络互联:将多台计算机连接在一起,完成数据共享,其中数据共享的本质就是网络数据传输,即计算机之间通过网络来传输数据,也成为了网络通信,其中,根据网络互联的规模可以分为广域网和局域网。

局域网

局域网 简称LAN,局域网是本地,局部组件的一种私有网络,局域网内的主机之间能方便进行网络通信,所以又称为内网,局域网与局域网之间在没有连接的情况下,是无法进行通信的,局域网组建网络的方式有很多种:1.基于网线直连。2.基于集线器组建。3.基于交换机组建。4.基于交换机与路由器组建。

广域网

广域网简称WAN,通过路由器,将多个局域网连接起来,在物理上组成很大范围的网络,就形成了广域网,广域网内部的局域网都属于他的子网,全世界最大的广域网叫做Internet(因特网)

网络通信基础

IP地址

IP地址描述了网络上的一个主机的位置,IP地址本质上是一个32位的整数,但是由于32位的整数不方便人们来读和记忆,所以一般常见的操作就是把这个32位的整数,按照每个字节分为四个部分,中间用 . 来进行分割这就是所说的点分十进制。

端口号

端口号描述了一个主机上的某个应用程序,端口号的本质是一个2个字节(16位)的无符号整数,其中需要注意的是,两个不同的进程,不能绑定同一个进程,但是一个进程可以绑定多个端口号。

协议

进行有效的通信,前提就是能够明确通信协议,协议的本质就是约定发出来的数据是什么格式,接收方按照对应的格式来进行解析,协议通常由三要素组成

1.语法:即数据与控制信息的结构或格式

2.语义:即需要发出何种控制信息,完成何种动作以及做出何种响应

3.时序:即事件实现顺序的详细说明

协议的最终体现为在网络上传输的数据包的格式

协议分层

网络通信这个过程,其实很复杂,里面有很多很多细节,如果我们只通过一个协议,来约定所有的细节,这个协议就会非常庞大,复杂,这样更好的办法,就是把一个复杂庞大的协议,拆分成很多个小的,更简单的协议,每个协议,负责一部分工作(这就和我们写代码一样,一个复杂的程序,不能只指望一个文件把所有的代码装入,一次性实现,需要把这个代码拆分成更多更小的,更简单的文件,每个文件负责一个小的功能)

这样做的好处有哪些呢?

1.每层协议不需要理解其它层协议的细节(更好的做到了封装)

2.把对应层的协议替换成其他的协议(更好的解耦合)

OSI七层网络模型

这个大家略作了解即可,主要认识下面的TCP/IP五层(四层) 网络模型

TCP/IP五层(四层) 网络模型

 五层协议从下到上由细节到宏观

物理层

物理层主要是网络通信中的硬件设备,如网卡、网线等,针对硬件设备的约定,就是物理层协议所负责的范畴,需要保证所有主机和网络设备之间都是相互匹配的。

数据链路层

数据链路层是负责完成相邻的两个设备之间的通信(局部通信),如有一根网线连接的两个设备。

网络层

网络层是负责点到点之间的通信,网络中的任意节点到任意节点之间的通信(这里就不一定是相邻的了,更多的是指不相邻的),网络层就负责在这两个点之间,规划出一条合适的路线,实际的网络环境结构很复杂,两个点之间的路线有很多条,这里就需要规划出一条最合适的。

传输层

传输层是负责端到端之间的通信,也就是起点到终点,他只关注结果(也就是说数据到没到),并不关心路线过程(就是不关注数据是怎么过来的,怎么走哪条)。

应用层

应用层和应用程序之间密切相关,你传输的数据是干啥用的,不同的应用程序就有不同的用途。

封装和分用

网络分层中的一组重要的概念,封装和分用,这就能知道不同的分层协议之间,是如何相互配合的

首先是封装

我们来句一个例子:比方说我使用qq给朋友发送信息,输入了一个hello,发送过去,这个过层中,首先是应用层,qq应用程序会根据我输入的内容,把数据构造成一个应用层的协议报文(协议报文就是指遵守协议的一组数据) 应用层的协议就调用操作系统提供的API(称为socket API), 吧应用层的数据,交给传输层(进入操作系统内核)

A代指我,B指接收方,后面分别是时间和内容

进入传输层(操作系统内核)后根据刚才传过来的数据,基于当前使用的传输层协议,来构造一个传输层的协议报文(村树层中最典型的协议有UDP,TCP)这里我们以TCP为例,添加上TCP协议报头

 接下来就会把这个传输层的数据报交给网络层,网络层也在操作系统内核,网络层拿到完整的数据传输层数据报,就会再根据句当前使用的网络层协议(例如IP) ,再次进行封装,把TCP数据报构造成IP数据报,和TCP数据包类似,添加上一个协议报头

紧接着当前的网络层协议,就会把这个IP数据报,交给数据链路层,数据链路层(驱动程序)在刚才的IP数据报基础上,根据当前使用的数据链路层协议,给构造成一个数据链路层的数据报,典型的数据链路层的协议,就是“以太网” 就会构造成一个“以太网数据帧”

 

最后数据链路层把这个数据交给物理层(硬件设备) 物理层做的工作就是根据刚才的以太网数数据帧(就是一组01)把这里的01 变成高低电压,通过网线传输出去,或者把这里的01编程高频或者低频的电磁波,通过光纤或者无线的方式传播出去。到了这一步,此时的数据就已经离开了当前的主机,前往下一个设备,下一个设备,可能是路由器、交换机,或者其它设备,这时就要进行分用,而分用呢就是封装的逆过程,首先是物理层(硬件设备,网卡)主机B的网卡感知到一组高低电平,然后就回吧这些电平翻译成01的一串数据,然后把这一串01(就是一个完整的以太网数据帧)交给了数据链路层,

数据链路层负责对这个数据进行解析,去掉帧头和帧尾,取出里面的IP数据报,然后交给网络层协议 

 

 网络层协议(IP协议)又会对这个数据进行解析,去掉IP协议报头,取出里面的TCP 数据报再交给传输层

传输层协议(TCP协议)又会对这个数据进行解析,去掉TCP报头,取出里面的TCP数据报,交给应用层

 

应用层就会调用socket API 从内核中读取到这个应用层数据报 在按照应用层协议进行解析,根据解析结果给显示到窗口中 

上面的封装和分用我们讨论的只是起点和终点的情况,但是A和B之间还有很多的路由器和交换机

其中的过程也大致相同

 

 无论网络多么复杂,整体的传输过程都是类似的,只是在不停的重复封装和分用的过程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值