文章目录
一、基本概念
1. 网络通信
- 网络是什么?网络是用物理链路将工作站或主机相连在一起,组成数据链路,从而达到资源共享和通信的目的。
- 这里的物理链路不仅仅指的是我们能够看得到的双绞线、光纤,也可能是无线电波。
- 网络通信,狭义的讲,可以理解为计算机与计算机之间基于网络进行的数据交换。当然,这个过程中也有人与计算机的交互。
2. 协议
- 在计算机通信当中,也差不多,就是约定好咱们交互时的数据格式是什么,每个数据项什么意思,然后你收到之后应该怎么处理或怎么回应。
- 简单来说,互联网协议就是在互联网上传输数据的规则。当然,协议是非常多的,比如TCP、UDP、IP协议、FTP协议等等。
二、网络分层
- 标准的七层网络分层,也就是OSI七层模型。
TCP/IP
五层模型和TCP/IP
四层模型是从OSI七层优化而来。- TCP/IP五层模型包括:应用层、传输层、网络层、数据链路层和物理层。
三、物理层
-
这一层就是把各个网络设备连接起来,让其可以传输
0 1 0 1
的电信号。 -
基本上是用双绞线、光纤、无线电波的方式来实现物理层。
-
网络设备连接起来之后,就可以基于它来发送高低电压(电信号)进行通信,高电压对应数字1,低电压对应数字0。
-
`0和1信号本身没有任何的现实意义,所有需要用另一层用来规定不同0、1组合的意义。
四、数据链路层(以太网协议)
1. 作用
- 用于处理电信号、设置发送和接收地址。
- 单纯的电信号0和1没有任何意义,必须规定电信号多少位一组,每组什么意思。
2. 以太网协议
-
数据链路层的功能就是通过规定一套协议来定义电信号的分组方式,以及规定不同的组代表什么意思,从而双方计算机都能够进行识别,这个协议就是“以太网协议”。
-
规定一组电信号构成一个数据包,我们把这个数据包称之为帧。
-
每一个桢由包头(Head)和数据(Data)两部分组成。
-
其中Head包含数据包的一些说明信息,包括发送者、接收者、数据类型;Data则是数据包的具体内容。
3. MAC地址
- 以太网协议规定,连入网络的所有设备都必须具有网卡。
- 数据包的发送地址和接收地址指的就是网卡地址,也就是MAC地址。
- 两个MAC地址分别是发收者和接收者。
4. 通信方式
- 以太网中通过广播的方式进行通信、
- 在同一个子网中,计算机1要向计算机4发送一个数据包,数据包中包含接收方的MAC地址。
- 计算机1向本网络内所有计算机都发送(以广播的方式),这时同一子网中的每台计算机 (包括2、3)都会收到这个数据包的。
- 然后每台计算机都会把数据包的MAC地址取出来,与自身的MAC地址进行对比,如果两者相同,则接受这个数据包,否则就丢弃这个数据包。
- 计算机4发现包含自己的MAC地址,于是就进行响应。
五、网络层(IP协议)
1. 作用
- 在同一个子网下,通过以太网广播形式发送数据;
- 如果不在同一个子网,通过IP地址判断是哪个子网,到达子网后再通过MAC地址通信。
- 网络层引入一套新的协议用来区分不同的子网,于是就有了IP 协议。
2. IP 协议
IP地址与MAC地址区别(逻辑地址与物理地址)
- 网络地址协议,叫做IP协议。相对于上面讲到的MAC地址, IP 地址可以理解成逻辑地址,
- 也就是说 MAC 地址是物理上的地址,是固定的。IP 地址是动态分配的,是不固定的。
IP数据包
- 通过IP协议发送的数据,就叫做IP数据包,也分为“包头”和“数据”两个部分:“包头”部分主要包括版本、长度、IP地址等信息;“数据”部分则是IP数据包的具体内容。
IP地址组成
- IP地址分成两部分:网络部分(标识子网)和主机部分(标识主机)。
子网掩码
-
子网掩码就是用来标识同一局域网中的 IP 地址的信息的。
-
两台计算机的 IP 地址分别和子网掩码进行一种AND 运算。如果结果相同,两台计算机就在同一局域网中,否则就不在同一局域网中。
3. ARP协议
- 有了IP协议,可以判断计算机属于哪个子网了。在链路层时我们通过MAC地址进行通信的,现在只有目标的IP地址,如何才能拿到它的MAC地址呢?这就要用到ARP协议。
- ARP协议可以通过广播的方式发送数据包,获取目标主机的MAC地址。ARP不是一个单纯的数据链路层的协议, 而是一个介于数据链路层和网络层之间的协议。(如果不再同一个域名内,获取到的是两个子网中间的网关的MAC地址)
- 具体实现为:发送端主机通过广播的方式发送数据包,所有主机接收后拆开包,如果发现目标IP为自己就响应,返回MAC地址。
4. DNS域名解析协议
但是,我们一般不是直接输入IP地址,而是输入域名,那么就需要将域名转换为IP地址,才能进行访问。
- DNS 是域名系统 (Domain Name System) 的缩写,提供的是一种主机名到 IP 地址的转换服务,就是我们常说的域名系统。DNS 协议是应用层协议。
- 将域名解析为IP地址,客户端向DNS服务器发送域名查询请求,DNS服务器告知客户机Web服务器的 IP 地址。(DNS服务器有自己的IP地址)
六、传输层(TCP/UDP)
1. 作用
前面确定了某个计算机,这里确定某个程序。
- 经过数据链路层和网络层的支持,我们已经可以正常在两台计算机之间进行通讯了,但是计算机会同时运行着许多程序,比如同时开着QQ与WX,那么怎么区分消息是QQ的还是WX的呢?
- 通常我们会看到计算机上运行的不同程序都会分配不同的端口,而传输层的功能就是建立端口到端口的通信,使得数据能够正确的传送给不同的应用程序。
- 至此,用IP + 端口,已经能实现唯一确定互联网上一个程序,进而实现网络间的程序通信了。
2. 协议(TCP/UDP)
- 传输层最常见的两大协议是 TCP(传输控制) 协议和 UDP(用户数据报) 协议。
- UDP协议简单且容易实现,这是它的优点。但同样也有缺点,就是进行通信时不知道对方是否接收到数据了。
- TCP的优点是能够确保数据不会遗失,安全可靠的传输。缺点是过程复杂、实现困难、消耗较多的资源。
七、应用层(HTTP)
1. 作用
- 应用层的功能就是规定了应用程序的数据格式。我们经常用的电子邮件、HTTP协议以及FTP数据的格式,就是在应用层定义的。
3. 协议
-
常见的HTTP是超文本传输协议,所谓超文本,就是超越了普通文本的文本,它是文字、图片、视频等的混合体,最关键有超链接,能从一个超文本跳转到另外一个超文本。
-
HTML 就是最常见的超文本。它本身只是纯文字文件,但内部用很多标签定义了图片、视频等的链接,再经过浏览器的解释,呈现给我们的就是一个文字、有画面的网页了。
-
应用层不止HTTP协议,只是在浏览器常见,不同类型的应用有不同的协议。
-
应用层的主要协议有:FTP(文件传送协议、21端口)、Telnet(远程登录协议)、DNS(域名解析协议)、SMTP(邮件传送协议、25端口),POP3协议(邮局协议),HTTP协议(Hyper Text Transfer Protocol、80端口)。
八、总结
- 物理层:传输电信号
- 数据链路层:规定电信号的格式,通过MAC地址确定目标主机,可以广播通信
- 网络层:划分子网络,通过IP地址判断在哪个子网络,到达子网络再广播通信
- 传输层:通过端口号确定通讯程序
- 应用层:规定了应用程序的数据格式