道家人 发表于 2024-6-11 13:01:57

网络基础(一)

个人主页:Lei宝啊 
愿全部美好准期而遇
目录
网络发展
局域网
网络协议初识
认识协议
网络分层结构
软件分层
网络分层
OSI七层模型
网络和OS之间的关系
局域网通讯
TCP/IP通讯过程
同一局域网内
不在同一局域网内

网络发展

人与人之间需要进行通讯和合作,之前人们使用计算机算出数据后,将数据拷贝到另一台电脑上,渐渐的,人们希望计算机之间也可以或许进行通讯,特别是类似于贝尔实验室,他们是第一批搭建局域网进行通讯的,使得多台计算机连接在一起,完成数据共享。
局域网

局域网(Local Area Network,简称LAN)是指在某一地区内由多台计算机互联成的计算机组。局域网是封闭型的,可以由办公室内的两台计算机构成,也可以由一个公司内的上千台计算机构成。
类型:以太网,令牌环网等。
网络协议初识

认识协议

协议是什么?协议就是一种计算机之间的约定。怎么理解这种约定?类似于互相通讯的两个人,约定好交流的一种方式,对于计算机来说,就是约定好一种数据格式。
网络分层结构

软件分层

软件分层,类似于main函数中调用一个个面向过程实现的函数,这样他们就是分层的。对于面向对象的语言来说,类之间的继承,也是一种分层。
为什么软件需要分层?层和层之间是松耦合的,可以随时替换和方便维护,例如主函数中调用一个函数,函数返回结果出了错误,我们不需要在主函数中找题目,直接去调用的函数中找。
网络分层

首先提出题目,为什么需要网络协议?他主要办理了什么题目?
在两台计算机进行通讯时,会存在这样的几个题目:

[*]传输的数据怎样辨认和使用
[*]可靠性题目,传输的数据对吗?有丢失吗?顺序对吗?
[*]主机定位题目,怎样确保通讯的计算机是我想要通讯的那一台?
[*]数据报局域网转发的题目
而网络协议就是办理这些题目的一种方案,既然是方案,那么就有好方案,也有不好的方案,我们希望的好方案是可扩展,方便维护,所以网络协议就是层状结构的了!层与层之间是松耦合的,可扩展,易于维护。
OSI七层模型

https://img-blog.csdnimg.cn/direct/044574a89a724013b99e914d5c5e2678.png
OSI七层模型就是由一个构造提出的网络协议,称为开放式体系互联参考模型,全部操作体系必须服从这个模型,只有服从这个网络协议的OS,才可以或许联网。
网络和OS之间的关系

https://img-blog.csdnimg.cn/direct/8b381d595ff6454698db99c0fe16ebfd.png

根据上图我们做进一步解释:物理层在网络中对应着网卡,数据链路层的功能和实现集成在网卡驱动步伐中,网络层中的IP协议和传输层中的TCP协议是实现在OS体系内部的,也就是说,网络其实是OS源代码的一部门。
协议有很多,不止TCP和IP,为什么我们单独拿他出来说,并且说网络是OS源代码的一部门?因为TCP协议和IP协议是网络最紧张的核心部门,并且他是实现在OS内部的。所以我们说起网络,就是以他们为代表的网络协议栈!
https://img-blog.csdnimg.cn/direct/1db90a759f764fbbbb6e16da3ad330a2.png
双方必须使用雷同的数据结构,这样在经过网络传输,对方一定认识每个字段的大小和含义,这就是约定!
https://img-blog.csdnimg.cn/direct/2596fa7aba434d6381ffcba4ef14d284.png
局域网通讯

https://img-blog.csdnimg.cn/direct/fa0dca93f16945d7bda89c7b78213a00.png假设在一个局域网内,有5台主机,中间那条线就是物理线路,通过他将五台主机进行连接。当A主机想要向F主机发送信息,那么数据就会通过物理线路变成光电信号发送给F主机,但是,五台主机都连着这条线,其他主机会收到这些光电信号吗?答案是会的,但是B,C,D主机没有收到这些数据啊?
我们来先容一个东西:Mac所在。
每一个网卡在出厂时,Mac所在就确定了,不能修改,他通常是唯一的,用来辨认数据链路层中相连的节点。
https://img-blog.csdnimg.cn/direct/421570edab994013bcba3fe572be6a28.png(ether:以太网)
当BCDF主机收到A主机发送的光电信号时,通过数据链路层网卡驱动辨认,当前主机的Mac所在是不是MacF,是就保留并向上解包和分用,不是则丢弃。
假如A和B同时向D发送消息呢?只有一条物理线路连接,也就是说,他们的数据会发生碰撞,导致谁也收不到,那么以太网是怎样处置惩罚的呢?接纳碰撞制止,假如数据发生碰撞,则发送数据的主机不会再立即发送数据,而是休眠一会,再发送。也就是说,在任何时刻,只允许一台主机在局域网中发送消息。
在OS层面来看,局域网就是一个临界资源。
那么在一个局域网中,主机越多越好,照旧越少越好呢?当然是越少越好,这样发生碰撞制止的大概性就越小,网速也就越快。
TCP/IP通讯过程

同一局域网内

https://img-blog.csdnimg.cn/direct/c9b7890af8f34ef6a2306ccfea09f59d.png
https://img-blog.csdnimg.cn/direct/2ae03abfc4f846fc97d04f80bd262fc3.png
用户数据在向下交付时每一层都会封装每一层的协议报头,剩下的部门就是这一层的有效载荷,当报文通过以太网到达另一台主机的网卡时,因为他们处于同一个局域网,所以在链路层是可以辨认的,又因为他们的网络协议栈雷同,所以每一层都可以辨认他们每一层的协议报头,并将这个报文进行解包,做到协议报头和有效载荷分离,另外一个题目就是,每一层都有许多协议,并不是我们上面简朴写出的那样,报文向上交付的时候,应该选择交给哪个协议呢?报文在封装时,已经将上一层协议是谁封装在协议报头中,因此在解包后向上交付时可以或许找到对应的协议进行交付,这个过程叫做分用。
不在同一局域网内

https://img-blog.csdnimg.cn/direct/ab37285fe56741889796ebb187566a28.png
上面是两台不在一个局域网内的主机进行网络通讯。
https://img-blog.csdnimg.cn/direct/2ffa7be2e2f941bd9a8e5e55c59baec2.png
在数据链路层,报文要添加以太网协议报头,包罗这源mac所在,以及目标mac所在。
https://img-blog.csdnimg.cn/direct/9d1f33f665064ee59c956ab1633764bc.png
因为两台主机不在一个局域网内,没有办法直接进行通讯,所以就需要路由器,这个场景下,两个不同局域网下的主机进行通讯,也就是说,这个路由器至少需要两个网卡,也就有两个mac所在,这个路由器同时处于两个局域网下,作为一个软件层,很好的屏蔽了IP层以下的差异,在IP层及以上看来,网络没有任何差异,在IP层以下,由路由器来处置惩罚不同局域网的差异,这样,在用户看来,现实上只有IP网络!
我们通过上图也可以看到,IP所在是不变的,Mac所在会发生变化;首先,IP所在是互联网中唯一标识一台主机的,Mac所在是网卡的所在,在报文不断转发的过程中,网卡不是源网卡,因为已经变成了路由器的网卡,而IP所在是标识主机的,用户就是想向指定主机发送信息,所以IP所在在报文发送过程中是不会改变的。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 网络基础(一)