1. IP地址
描述一个设备在网络上的位置,而且计算机是通过数字来描述IP地址的。例如(生活中的地址)
2. 端口号
描述一个主机上的哪个应用程序,有了IP可以确定主机,但是一个主机上可能有很多程序在使用网络,主机收到网络数据需要区分出是交给哪个程序使用数据,每个程序在进行网络通信过程中,都需要有一个端口号(可能是用户手动指定的,也肯能是系统自动分配的)同一个主机上,程序之间使用的端口号还不能冲突(端口号也是一个整数)
3. 协议
协议,就只是一种通信过程中的约定,发送方和接受方需要提前商量好,数据的格式,才能确保俩者之间能够正确进行沟通,通信双方的俩个计算机,也是自于各种不同的厂商,为了确保任意俩个计算机之间能够通信,也就要求这些计算机都需要遵守相同的网络协议,协议就是一种约定,确保不同的厂商之间生产出的设备能够相互配合。
4.协议分层
协议分层的初心是为了让一个复杂的一个协议变成更多简单的多个协议,还带了一些好处。
1.上层协议直接使用下层协议即可,不需要了解下层协议的细节。(相当于下层协议把细节封装好了)
2.某一层的协议进行替换之后,对于其他层没啥影响。
分层的作用:分层最大的好处,类似于面向接口编程:定义好两层间的接口规范,让双方遵循这个规范来对接。 在代码中,类似于定义好一个接口,一方为接口的实现类(提供方,提供服务),一方为接口的使用类 (使用方,使用服务):1. 对于使用方来说,并不关心提供方是如何实现的,只需要使用接口即可 2.对于提供方来说,利用封装的特性,隐藏了实现的细节,只需要开放接口即可。
5. 五元组
6. OSI 七层网络协议
最初大佬们设计的时候给出的方案,后来在实施过程中太麻烦了,就简化成了五层
这个是网上找的七层的图
7.TCP/IP 五层网络协议(四层)
把osi简化了
1. 应用层:程序拿到数据之后用来干啥,解决什么问题
2. 传输层:负责关注网路数据包,起点和终点 端到端之间的传输
3. 网络层:负责关注,起点终点之间要走哪条路
4. 数据链路层:负责俩个相邻之间的传输
5. 物理层:通信过程中的基础设施
8.网络分层对应
在我们进行数据传输的时候,网络的分层需要对应,物理层就对应物理层,数据链路层就对数据链路层就以TCP/IP协议来举例子。