目录
1.网络的发展
2.协议
3.OSI七层网络模型
4.TCP/IP五层网络模型及作用
5.经典面试题
6.封装和分用
发送方(封装)
接收方(分用)
路由器:路由指的是最佳路径的选择。一般家用的是5个网口,1个WAN口+4个LAN口(口:端口)。可以连接连接多个局域网。
局域网:把几个电脑通过路由器连接到一起。
广域网:将多个局域网连接起来。可能会覆盖一个城市,一个国家。
交换机:可以扩展路由器的端口。
IP地址:描述了一个设备在网络上的地址。计算机中使用一个32位4字节数字表示地址,由于这样太大,为了表示出来,4个字节分4部分表示。采用的是点分十进制(127.0.0.1)。每个数字范围是0~255。分别代表一个字节。
我们可以通过ipconfig指令在终端上查看我们电脑上的ip地址。
端口号:区分一个主机上不同的应用程序的。端口号是一个整数(2个字节)。范围是0~65535。
使用端口号的规则:要求同一个主机上的应用程序不能关联到同一个端口号。一个端口号只能被一个应用程序绑定。但一个应用程序可以绑定多个端口号。0一般不使用,1~1023这个范围的端口号供系统使用。就像有些国家的一夫多妻制。夫相当于应用程序;妻相当于端口号。
例如:443->https 80->http 22->ssh 23->telnet
IP和端口号
IP和端口号往往是"一对",比如,买个东西:
网络上,本质是通过光/电信号来传输数据。比如:低电平表示1,高电平表示0;高频光信号表示1,低频光信号表示0。本质上还是二进制数据。
协议就是一种约定,规定。约定了通信双方按照一定的方式来传输数据。
五元组
协议拆分
将一个大的协议·拆分成多个小的协议。
协议分层
由于通信网络很复杂,拆分就拆分出来太多的小的协议,小的协议太多,不好管理,这时候就需要分层了。按照协议的定位/作用分类,并且约定了不同层协议之间的"调用关系"。(上层协议调用下层协议,下层协议给上层协议提供支持)。类似于一个公司。公司大了就要进行细分。
OSI七层网络模型仅仅出现在教科书中。
实际开发中大都用的是TCP/IP五层网络模型。
是OSI七层模型的简化版本。下面讲述这五层协议的作用,以网购为例。
1.物理层
2.数据链路层
3.网络层
4.传输层
5.应用程序层
如果有TCP/IP四层模型的这种说法,那应该就是不算物理层。
某某某这个设备应用工作在哪一层?
主机:
路由器:
交换机:
集线器:
描述了网络通信过程中,基本的数据传输流程。(即发送方一步步封装,接收方一步步拆解)
1.应用层(发送方)
协议:由程序员自定义协议
举个例子:例如,QQ发消息,A通过QQ把一个hello传递给B。
在应用层中就会把这个输入的"hello"打包成一个应用层的数据报(格式:字符串拼接)数据报中是二进制形式,这个数据报的内容格式由开发QQ的人员自定义的。我们假设是下面这种:
2.传输层(发送方)
典型协议:TCP,UDP
就是要对刚才的应用层数据再进行打包,变成传输层的数据报,打包过程即字符串拼接。把刚才的应用层数据的基础上再拼接传输层的报头。
一个数据报 = 报头 + 载荷
UDP报头中最关键的信息:就是"源端口"和"目的端口"。
传输层数据报搞好之后,这个数据会进一步交给网络层。
3.网络层(发送方)
主要协议:IP协议
IP报头包含最重要的属性:源IP和目的IP。
网络层的数据打包之后,继续把数据交给"数据链路层"再进一步打包。
4.数据链路层(发送方)
主要协议:以太网
以太网报头包含最重要的属性:源mac地址和目的mac地址。这个地址也是用来描述一个设备在网络上的地址的。
打包好后,继续交给物理层。
5.物理层(发送方)
把上述数据转换成二进制的01序列。再通过光信号/电信号进行传输。
上述这五步操作都为层层封装,就像是发快递一样。而下面的操作就相当于是拆快递了。
1.物理层(接收方)
将获得的光/电信号转成二进制数据,得到以太网数据报。
2.数据链路层(接收方)
通过以太网协议,针对以太网数据报进行解析。这个解析过程会解析出报头和报尾以及中间的载荷。把载荷部分进一步再交给网络层的协议处理。
3.网络层(接收方)
通过IP协议进一步针对网络层的数据报进行解析,去掉报头,拿到载荷,再把载荷交给传输层。
4.传输层(接收方)
通过UDP协议,再去掉报头,拿到载荷,再交给应用层。
5..应用层(接收方)
把上述数据通过端口号,交给各个应用程序。