[linux--->网络通信基础]

一、网络发展

起初计算机被发明是用于导弹的弹道计算的,时美苏联冷战时期的产物,当时计算机主要出现在实验室等一些研究场所,一项实验往往是需要多人协同操作的,多人协同操作就意味着研究人员所使用过的电脑也要协同,电脑协同就需要共享数据,起初是用软盘等外存储媒介完成数据交换,随着发展,已经不能满足人们的需求,就开始用网线连接实验室中所有的单体计算机.一般实验室与实验室也需要共享数据,它们之间连接就构成了局域网,随着连接的距离变长,就需要增加各种数据包转发中继设备,就是现在所使用的路由器,交换机之类的设备,就形成了网络;按照网络的大小不同可分为局域网,广域网,城域网.
在这里插入图片描述

二、网络协议初识

1.协议的概念

协议是一种共识,就像是人与公司签订的劳动合同一样,双方达成了某种共识,双方均按照约定好的规则办事,省去了后面做事情时不必要的沟通成本.
网路协议就是计算机和计算机之间的共识,实际上那个计算机之间沟通的信息只有二进制,有了协议就是规定计算机传递的信息比如8个0是什么意思,或者是8个1是什么意思.

2.协议分层的原因

网络中计算机不止一台,要怎么知道传送到那台计算机上去,怎么保证数据转发的过程中不丢失,选择什么样的传输路径,这些都是协议需要完成的需求,有了需求就需要实现,这些需求都是相辅相成的,但是这些不同的需求都要有不同封装,编程理念是高内聚低耦合,这些不同的需求后期可能需要更新,为了使修改以个功能后不影响其他的功能,所以需要解耦,有了解耦就有了分层协议,层次是按照从物理到应用的自下而上依次封装而来的.

3.协议定义

OSI(open system interconnectionj开放系统互连)七层网络模型成为开放式系统互联参考模型,是一个逻辑上的定义和规范.在实际的实现过程中,将其中的会话层和表示层以及应用层合并实现并统称应用层.所以实际上有5层协议,如果再去掉物理层就只有四层关于软件的协议.

协议的核心存在于操作系统中,计算机从硬件到应用也是分层的,自下而上是硬件,硬件驱动,操作系统,系统调用,shell外壳,用户.协议的分层中物理层就是对应的硬件,数据链路层对应硬件驱动中的网卡,网络和传输层属于操作系统,网络属于文件系统的管理区域.应用层对应的就是用户.

4.协议层级的作用

物理层主要负责光/电信号的传递方式,比如传输媒介网线,管钱,无线电波等传输方式,以及远距离传送所需的集线器,主要用来将信号放大再生在传送,防止信号的衰减.
数据链路层主要负责设备之间的数据帧的传送和识别,比如网卡驱动的帧同步,就是接收的设呢么信号算作一个新帧的开始,检测有无冲突信号,数据差错效验.,数据链路层分为不同的几个标准,有以太网,令牌环网,无线LAN等标准;交换价就工作在数据链路层.
网络层负责地址管理和路由选择,例如通过IP识别一台主机,通过路由表规划出两台主机之间的数据传输线路.路由器工作在网络层.
传输层负责两台主机之间的数据传输,能确保数据可靠的从源主机发送到目标主机中.相当与时网络层的一个保障.
应用层负责应用程序之间的沟通,例如电子邮件传输(SMTP),文件传输协议(FTP)网络远程访问协议(Telnet).一个设备工作在那一层不是只有那一层的功能,比如路由器中工作在网络层其实是还包含了数据链路层,物理层.

操作系统有Windows和ios以及linux这些不同的操作系统,但是网络层协议和传输层协议只可能有一种,因为网络只有一种,不管什么操作系统都使用的一种,所以网络协议和传输层协议都是一种,所以网络协议用TCP/IP为代名词,TCP/IP是一组协议的代名词,它包括多种协议,组成了协议簇.
在这里插入图片描述

三、网络传输基本流程

1.宏观的理解局域网络传输

发送端和接收端都有除去物理层的以外的四层协议,用户数据即数据包从上往下转发,每一层在进行数据包转发的时候,都会在上一层数据包的基础上加报头,报头是包含识别数据包该怎么传送,传送到哪里的信息数据也是协议的表现形式.这样的操作叫做数据的封装,封装后的数据包,包含报头和有效载荷.最后通过物理层将信息传送到目标主机,目标主机从下而上将数据将有效载荷和报头分离,有效载荷转发给上层指定的协议,每一层的协议都能识别对象的报头,这样的操作叫做数据包分用.
在这里插入图片描述

局域网之间的电脑是可以直接通信的,在通信的时候,计算机想要通信就要有唯一的标识符,网卡在出厂时都会有一个sn序列号,这个序列号就是mac地址,是全球唯一的.一台机器发送的信息是网络中所有机器都能看到的,但是只有目标主机会接收信息,其他主机甄别信息是否是发送给自己的,如果不是就忽视,是就接收并处理.

2.宏观的理解跨子网通信

跨子网通信实际是夸路由器通信,路由器至少会级联两个子网;跨子网通信首先是发送端计算机应用层传递用户数据包到传输层—>传输层将协议报头连同数据包封装传递给网络层—>网络层将ip协议连同上层的数据包传递给数据链路层---->数据链路层没有唯一的标准,有以太网,令牌环网,无线LAN等标准,比如发送端所在子网是以太网的协议标准,以太网驱动程序会增加mac地址协议报头连同上层的数据包封装传递给路由器----> 路由器有网络层,数据链路层和物理层三层协议,路由器两边级联的子网数据链路层的协议可能不同,路由器会先自下而上将数据包解码分用到网络层,网络层再向下封装成目标主机所在子网的数据链路协议标准,封装mac地址传递给目标主机,目标主机自下而上从物理层解码分用,最终将信息交给应用层.
在这里插入图片描述
网络层的ip地址包含源主机和目标主机的ip地址,呈现给人看的地址是一个字符串,实则ip地址的实现是用c语言位段的范式实现的,字符串是后期转化的,伪代码理解如下:

struct ip
{
	int paret1:8;
	int paret2:8;
	int paret3:8;
	int paret4:8;
}
原型
int srcip=xxxxxx;
struct ip*p=(struct ip*)&srcip;
转化为用户视角
p->paret1::p->paret2::p->paret3::p->paret4

发送设备在给路由器发送数据包的时候,子网中所有的路由器都会受到数据包,路由器中有一个路由表,路由器会将数据包的ip地址与路由表对比,网络通信中的路由表是用来指导数据包在网络中传输的路由选择器。它记录了不同目的地网络的地址和相应的下一跳地址(即下一个网络节点的地址),以及与之相关的路由度量(比如跳数、带宽、延迟等),帮助网络设备决定数据包应该通过哪条路径发送。当一个数据包进入网络设备时,它会根据目的地网络的地址查询路由表,找到最合适的下一跳地址,并将数据包发送到该地址。路由表的更新是根据网络拓扑和网络管理员的配置来进行的,以确保数据包能够快速、准确地到达目的地。

数据链路层的mac地址是一个48位的数字,一般用16进制数字加冒号表示例如(08:00:27:03:fd:19)是一个物理地址,用来确定网络中的一台唯一的设备,并且通常是固定的.以便于局域网中确定设备与设备之间的通信路由,而ip地址是逻辑地址.用于确定网络与网络之间的通信路由,主要用于路由器中的路由表的地址比对.
在这里插入图片描述

四、扩展知识

1.ip的版本

ip地址有两个版本,ipv4和ipv6,ipv4是一个32位的整型数字,可以有2的32次方个地址来标识网络中的唯一设备,但是这是很久之前定义的标准,根据现在的人们的需求,一人一个ip地址,全球大约有80亿的人口,所以ip地址早就不够用了,所有就出台了128位表示方式的ipv6版本,但是ipv6现在还没有普及.

2.以太网名字的由来

以前有科学家为了证明光在宇宙中可以传播是由于宇宙不是真空的,是有一种传播介质供光传播的,并且命名这个介质为以太,但是后来的试验证明宇宙中没有以太这种物质,这件事也就不了了之了,后来发明了以太网络通信方式的科学家,要给以太网络通信方式起名字,就以以太命名了,至于是为什么,具猜测应该是出于对科学的致敬.


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值