IP地址
标识了网络上设备所在的位置
端口号
标识了一个具体的应用程序
协议
协议是网络通信中最核心的概念
所谓的协议,就是通信双方进行的一种约定,商量数据是以怎样的格式进行传输
协议分层
原因
网络通信由于需求场景复杂,实现功能复杂,其学习成本,使用成本,维护成本都会非常高
实际上的做法
针对复杂的大协议,拆分成若干个相对简单的小协议(每个协议负责一部分功能),某些协议之间,起到的功能和作用是类似的,针对这些小协议,再进行“分类”(分层),就好比代码拆分出很多类,有些类功能差不多,就可以放到同一个包里
好处
1.降低了学习和维护成本(封装)
2.灵活的针对这里的某一层协议进行替换
封装
含义:应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(包含首部长度,载荷长度,上层协议是什么等信息)(header)称为封装。
通俗的讲,就是从应用层到物理层,从上到下,层层加码的过程。
以下是封装示例图:
分用
含义:数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,根据首部中的 “上层协议字段” 将数据交给对应的上层协议处理。
通俗的讲,就是从物理层到应用层,从下到上,层层解析的过程。
客户端
获取服务的一方进程,称为客户端(给用户使用的程序)
服务端
在常见的网络数据传输场景下,把提供服务的一方进程,称为服务端(提供用户服务的程序),可以提供对外服务