一、网络发展史
单机时代➡局域网时代➡广域网时代➡移动互联网时代
单机时代:电脑之间互相独立
二、网络互联
随着时代的发展,越来越需要计算机之间互相通信,共享软件和数据,即以多个计算机协同工作来完成业务,就有了网络互联。
网络互联:将多台电脑连接在一起,完成数据共享。
数据共享本质是网络数据传输,即计算机之间通过网络来传输数据,也称为网络通信。
根据网络互联的规模不同,可以划分为局域网和广域网
三、广域网和局域网
局域网,即Local Area Network,简称LAN。
Local即标识了局域网是本地,局域网组建的一种私有网络。
局域网内的主机之间能方便的进行网络通信,又称为内网,局域网和局域网之间在没有连接的情况下。是无法通信的。
局域网时代:通过路由器把电脑链接起来就可以进行网络通信
局域网,就像学校一个机房里面的所有电脑同时连接一个路由器,这时就形成了一个局域网,我们玩游戏的时候可以开一个房间邀请机房里面的同学进去,我们就可以PK,这就比单机时代更有意思。
交换机:可以扩展路由器的端口
广域网:把很多很多局域网连接在一起构成的网络更庞大,可能已经覆盖了一个城市,一个国家, 全世界。局域网和广域网其实没有明显的界限。连接了非常非常多的电脑我们就可以叫广域网。
四、网络通信基础
网络互联是进行网络通信,网络通信也就是进行网络数据传输,更具体一点,是网络主机中的不同进程间,基于网络传输数据。
那么,在组建的网络中,如何判断到底是从哪台主机,将数据传输到那台主机呢?这就需要使用IP地址来标识。
(1)IP地址
概念:描述了一个设备,在网络上的地址
IP地址主要用于标识网络主机、其他网络设备(如路由器)的网络地址。简单说,IP地址用于定位主机的网络地。
比如,去寄一个快递,我们需要知道地址
格式:IP地址是一个32的二进制树,通常被分割为4个“8位二进制树”(也就是4个字节),通常用“点分十进制”的方式来表示,即a.b.c.d的形式(a,b,c,d都是0~255之间的十进制整数)。如:100.4.5.6。
(2)端口号
概念:区分一个主机上的应用程序。
比如,一台电脑上面有很多应用程序,QQ音乐,微信,QQ,CCtalk等等,它们都连着网,当我们接受到一个数据,我们不知道是给哪一个应用程序,这时我们就可以通过端口号来区分我们把这个数据给哪个应用程序。
端口号也是一个整数。(2个字节,想对比较小的数字不同的程序可以关联/绑定到不同的端口号,要求同一个主机上的应用程序,不能关联到同一个端口号,但一个应用程序可以绑定多个端口,而一个端口只能绑定一个应用程序。)
2字节➡0~65535
0一般不使用,1~1023这个范围的端口号,系统留作特殊用途,咱们写的程序不应该占用,1~1023是知名端口号,留给一些比较常见的服务器程序进行使用的。
22➡ssh 443➡https 80➡http 23➡telnet
(3)认识协议
学习网络的时候,很多都是学习协议,协议就是一种约定,约定通信双方按照啥样的方式来传递数据。比如,你约见网友,我们相互约定我穿什么样的衣服来见你。
网络上的本质通过光/电信号来传输数据。
(4)五元组
源IP,源端口,目的IP,目的端口,协议类型
五、协议分层
1.分层的作用
由于网络通信实在是太复杂了,会遇到很多各种各样的情况,如果用一个协议去解决这些问题,那么这个协议会非常庞大,不好使用,效率不高。相比之下,也可以把大的协议,拆分成多个小的协议,每个小的协议只专注于做一小块事情,使每个小的协议都不会太复杂。
由于网络通信实在太复杂,拆分就拆出来太多的小的协议,这么多小的协议,也就不好管理了,就需要对协议进行分层了。
协议分层,按照协议的定位/作用分类并且约定不同层次之间的“调用关系”上层协议,调用下层协议,下层协议给上层协议提供支持。
(1).协议分层之后,上层和下层彼此之间就进行了封装
使用上层协议,不必过多关注下层
使用下层协议,不必过多关注上层。
(2).每一层协议都可以根据需要灵活替换
协议分层之后,好处多多,因此现在网络世界都是这种分层的结构
2.OSL七层网络模型➡仅仅是出现在教课书里面
3.TCP/IP五层网络模型
这个模型把会话层,表示层和应用层合并位应用层
1.物理层:描述的是网络通信中的硬件设施。比如使用的网线,光纤都应该是什么规格的
2.数据链路层:两个相邻节点之间的数据传输情况
3.网络层:进行路径规划
4.传输层:关注起点和终点
5.应用程序:如何使用这个数据(程序员最需要关注的一点)
6.应用层:就是对应到应用程序(咱们代码写的软件)
7.操作系统:操作系统的内核,(传输层和网络层)(这里的内容是现成的,不需要咱们手动去实现)
8.设备驱动程序与网络接口:驱动程序+硬件。
硬件厂商搞了一个硬件,都会提供对应的驱动。又了驱动,才能够让系统很好的来操作这个硬件。
驱动程序就是为了让硬件和电脑接融,比如普通鼠标只有一个左键,右键和滑轮,但是有的特殊鼠标上面不止有这些东西,还有其他的按键,如果我们直接把特殊鼠标连接电脑,没有用到驱动程序,那么我们只能使用左键,右键和滑轮,但是如果用到了驱动程序我们就可以使用鼠标上面的所有按键。
网上也有说TCP/IP四层网络模型那是没有算物理层。
五、网络的封装和分用
描述了网络通信过程中,基本的数据传输流程
1.应用层
比如我们发送一个QQ信息,我们规定格式是发送人QQ,收件人QQ,发送时间,发送信息,这个格式是我自己定义的。这个格式程序员可以自己定义,发送这个消息(123456,654321,2023-10-13 12:00:00,hello)。这四个字段。使用,来分割这里就构成了一个简单的应用层数据报(字符串拼接)。
上述描述的规定,就是此处我们约定的应用层协议。具体是用几个字段,字段的顺序如何,使用什么符号分割.....都是可以灵活调整的。(应用层协议,往往是根据具体的场景,具体的需要,由程序员自主决定的),就可以把应用层数据报,通过操作系统的api,把数据交给传输层(这里就用到了上层对下层的调用)。
2.传输层