一.概念
1.IP地址:
表示一个设备在网络上所处的位置
本质上是32位的整数
表示的时候通常把32位分成四个部分,每个部分1个字节8bit
每个部分使用十进制表示,使用三个点分割叫做点分十进制
2.端口号
一个机器上,可能同时有多个进程在使用网络
端口号用于定位主机中的进程。
本质是一个整数,可以去进行指定的
3.认识协议
协议,网络协议的简称,网络协议是网络通信(即网络数据传输)经过的所有网络设备都必须共同遵从的一组约定、规则。
4.五元组
进行一组通信就需要五元组作为关键信息
分别是
源IP
源端口
目的IP
目的端口
协议类型
二.协议分层
上层协议:调用下层协议
下层协议:给上层提供服务
1.优点
1.不同层之间,不需要理解对方的实现细节,简化学习成本
2.不同的层之间,充分做到解耦合,方便替换成其他的协议
2.具体的划分方式
1.OSI七层模型(只存在于教科书)
2.TCP/IP五层(或四层)模型(后两个有的视为一层)
不是唯一方案,通过光纤、网线、WiFi通信都是这一套
应用层
传输层 负责端到端的传输,通信双方只关心起点和终点
网络层 负责传输的中间过程,尤其是路径的规划
数据链路层 负责两个相邻节点(两个直接连接的交换机/路由器)数据转发
物理层 网络中的"硬件架构"
三.封装和分用
1.封装
应用层
例如用qq发送文字
会构造出一个"应用层数据包", 应用层数据包就是一个结构化的字符串
由于应用程序不能直接操作网卡,应用程序就会把上述数据交给传输层
传输层提供了函数,让应用程序调用就可以把上述的数据包作为一个参数传递到传输层
传输层
根据当前选择的传输层的通信协议,对上述"应用层数据包"进行进一步的加工构造成"传输层数据包"
传输层主要有两个协议,UDP,TCP
假设使用UDP
UDP报头加上UDP正文(载荷,payload),正文就是应用层数据包
UDP报头就是"快递标签"给通信提供了必要的信息
UDP包头中就包含了目的端口和源端口
传输层也不能操作网卡,就需要继续往下传递给相邻的层
传递给网络层,网络层提供了函数给传输层调用(操作系统内核中已经实现好了)
网络层
对传输层数据包进行进一步加工
网络层最核心的协议是IP协议
在拼上IP报头,IP报头包含的内容很多,最主要的就是源IP和目的IP
网络层还是不能直接操作网卡,还需要把数据往下传递
数据链路层提供了函数,让网络层调用
数据链路层
数据链路层知名的协议:以太网
在拼上以太网的数据帧头以及尾部拼上帧尾,叫做以太网数据帧
数据链路层负责两个相邻节点之间的数据传输
需要在帧头中补充信息辅助相邻节点传输(mac地址)
数据链路层把上述数据交给物理层
物理层
通过网卡把刚才的数据视为一组1010二进制bit流
根据当前网卡的形态把1010通过物理信号传输出去
以太网数据帧

分用
接收端
数据已经达到目标主机的网卡
接收方处理的过程和发送方的过程相反
物理层
收到的是一些高低电平的信号
把这些信号转成10101这样的二进制内容
把这样的内容交给上层数据链路层处理
数据链路层
把载荷取出来交给网络层
网络层
把载荷取出来交给传输层
IP报头中会记录当前的载荷是UDP还是TCP
传输层
UDP协议,进一步对数据进行解析取出载荷交给应用层
UDP报头中包含了目的端口
该端口号会对应qq这个应用程序
应用层
应用程序进一步的对数据进行解析,分析出数据是谁发的,啥时间发的,正文是啥显示到界面上