冰冰学习笔记:初识网络

欢迎各位大佬光临本文章!!!

还请各位大佬提出宝贵的意见,如发现文章错误请联系冰冰,冰冰一定会虚心接受,及时改正。

本系列文章为冰冰学习编程的学习笔记,如果对您也有帮助,还请各位大佬、帅哥、美女点点支持,您的每一分关心都是我坚持的动力。

我的博客地址:bingbing~bang的博客_CSDN博客https://blog.csdn.net/bingbing_bang?type=blog

我的gitee:冰冰棒 (BingbingSuperEffort) - Gitee.comhttps://gitee.com/BingbingSuperEffort



前言

        什么是计算机网络呢?计算机网络专业术语的表达就是链接分散计算机设备以实现信息传递的系统。传递信息?那计算机网络不就是远距离的主机通信吗。是的,在同一个主机中进行通信我们可以使用管道或者共享内存。当两个主机想进行通信的时候,我们就需要网络进行通信。

1.网络的发展

        计算机一开始的发展并没有网络的概念,每个主机之间都是独立执行任务,但是随着时代的发展,人们发现有些任务单靠一个主机是无法进行完成的,每个人都在自己主机上进行任务的执行,但是这些数据无法实时的共享。此时如果想让不同的主机实现数据的共享,那我们就需要将主机之间连接起来进行数据共享。随着主机的数量不断扩大,我们这个小集合需要和其他的集合进行通信,那我们就需要将这些主机统统连起来,那我们就需要交换机和路由器将一些小的集群连接在一起,这就是局域网(LAN)。随着局域网的不断扩大,我们需要将千里之外的主机进行互相连接,这些局域网之间慢慢的都联通了,就形成广域网(WAN)。但是我们要注意,局域网和广域网只是相对的概念,广域网也可以看成大的局域网。

2.初识协议

        什么是“协议”呢?简单来说,协议就是一种约定。例如在我们华夏大地,有多个民族共存,每个民族都有自己的方言,各民族之间如果要进行沟通难度非常大,那么我们如何让这些讲不同语言的民族进行沟通呢?这我们就需要制定一个共同的“约定”,让每个人都遵守,使用这个约定进行沟通,也就是大家都说的普通话。

        对于计算机来说,计算机之间的传输媒介是光信号和电信号,通过 "频率" 和 "强弱" 来表示 0 和 1 这样的信息。要想传递各种不同的信息,就需要约定好双方的数据格式。大家都使用共同的协议进行数据的传递,就不会在关注不同操作系统,不同路由器厂商,不同的硬件设备带来的差异了。这个协议就是网络协议

3.网络协议

        那么网络协议是什么样的呢?我们都知道,网络解决的就是远距离主机进行通信的问题。随着距离的增加,通信之间也变得复杂。为了保证通信能够正常进行,网络协议通常都是分层的,网络的分层,可以让我们的功能进行解耦,便于维护

        在我们进行打电话进行交流时,两个人通过电话可以实时的进行沟通。但实际上我们是通过手机对数据的层层传递才将声音数据传递到对面的手机上,对面的手机再通过层层的解析最后转换成我说的内容给对面听。

        实际上的网络通信层数更加复杂,但是每一层之间又相互解耦,无论哪一层发生变化,都不影响其他层。 而网络协议分成了7层。

3.1OSI七层模型

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

3.2TCP/IP五层模型

        在TCP/IP五层模型中,将应用层、表示层、会话层合在了一起。TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。

(1)物理层:负责光/电信号的传递方式。比如现在以太网通用的网线(双绞线)、早期以太网采用的同轴电缆 (现在主要用于有线电视)、光纤,现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等。集线器(Hub)工作在物理层。

(2)数据链路层:负责设备之间的数据帧的传送和识别。例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作。有以太网、令牌环网,无线LAN等标准。交换机(Switch)工作在数据链路层。

(3)网络层:负责地址管理和路由选择。例如在IP协议中,通过IP地址来标识一台主机,并通过路由表的方式规划出两台主机之间的数据传输的线路(路由)。路由器(Router)工作在网路层。

(4)传输层:负责两台主机之间的数据传输。如传输控制协议 (TCP),能够确保数据可靠的从源主机发送到目标主机。

(5)应用层:负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。我们的网络编程主要就是针对应用层。

        物理层我们考虑的比较少。因此很多时候也可以称为TCP/IP四层模型。

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

4.网络传输的基本流程

4.1局域网通信原理

        局域网是构成广域网的一部分,两台主机在同一局域网中是可以直接进行通信的。

        每一台主机都有网卡,每一张网卡都有自己的地址,叫做MAC地址,就像我们的身份证一样,标识网卡的唯一性。而MAC地址虽然全球唯一,但是不应用于全球,只是在局域网中标识自己的唯一性。

        我们可以通过ifconfig命令查看主机的MAC地址和IP地址(这里的ip地址指的是ipv4,云服务器中的MAC地址是虚拟地址)。

        在同一个局域网中,通常会包含多个主机,当一个主机想要和另一个主机进行通信的时候,主机1想和主机3进行通信,此时主机1会将信息发送到局域网中,而在同一局域网下的其他主机都会收到这条信息。但是其他主机会发现目标地址(MAC地址)不是自己,因此就会丢弃掉这些报文,最终只有主机3会收到信息。

        通常主机之间的局域网通信技术为以太网,其通信方式:发出的消息所有人都能收到,但当MAC1想把消息发给MAC3,MAC2想把消息发给MAC4,但是它们不能同时发消息(数据覆盖)。以太网发送消息的原则是只允许一个主机在任何一个时刻在局域网中发消息。否则就会发生碰撞,如果发生了碰撞就把消息作废然后重发。

        如何去看待局域网中的网络资源:站在系统的角度看待网络资源就是临界资源。

        而令牌环的传输方式是谁有令牌谁发送,这就类似与锁。

4.2网络传输过程

        当两个主机想要进行通信时,在同一网段的两个主机之间不需要路由器就可以直接通信,主机A 将信息打包逐层向下交付,直到链路层将数据通过以太网交付给另一个主机,另一个主机在层层解包向上交付。

        但是在这个过程中,AB两台主机每一层的协议都会以为自己在和对面同一层进行交互,两边的分装和解包都是一样的协议。 

        如果要跨网络进行传输,就需要路由器来实现两个 不同网段之间的连接,这也就决定了,路由器至少要具备不同网络之间的转换协议。

4.3数据包封装与分用

        前面提到的报文实际上是报头和有效载荷的统称,那报头又是什么呢?报头实际上就是每一层的协议规则,对应每一层依据这个规则解析数据包和封装数据包。

        不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报 (datagram),在链路层叫做帧(frame)。应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装。

        在这个过程中,每一层都在和对面的同层进行通信,规则都一样,因此可以通过报头来进行数据包的封装和分用。

5.IP和MAC地址

        IP协议有两个版本, IPv4和IPv6,提到IP协议, 如果没有特殊说明的, 默认都是指IPv4。IPv4采用4个字节表示,IPv6采用16个字节表示。

        MAC地址通常在局域网使用,IP地址通常在广域网使用。

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

        那么两个有什么区别呢?

        IP地址代表一个数据的起始地址和目标地址,即谁发出的,最终发给谁,表示起点和终点。在从起点走到终点的过程中总需要一些中转站,而MAC地址就是中转站的地址。例如我从山东到重庆,这是我的起点和终点。但在行走的过程中,我需要途径河南,安徽,湖北,湖南,最终到重庆。河南,安徽就是MAC地址。
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bingbing~bang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值