1.整体架构
功能分层,每一层只干本层需要干的事情,加上自己的包后再转交给下一层。每一层都有相关的协议。
下图是各层对数据包进行的包装
图
当数据包到达对端后,需要进行解包操作才可以拿到我们所需要的数据。
2.各层介绍
(1)应用层:
作用:把数据传给下一层
协议:HTTP、FTP、Telnet、DNS、SMTP、程序员自己定义的协议等
工作层:用户态
(2)传输层:
作用:为应用层提供网络支持。
协议:TCP、UDP
工作层:内核态
(3)网络层:
作用:传输数据
协议: IP 协议
工作层:内核态
(4)网络接口层:
作用:为网络层提供「链路级别」传输的服务,负责在以太网、WiFi 这样的底层网络上发送原始 数据包,工作在网卡这个层次,使用 MAC 地址来标识网络上的设备。
3.网络层传数据过程中如何找到对方?
网络层有区分设备的编号!分别是网络号、主机号。
如何计算出网络号和主机号?
网络号的计算:10.100.122.0(IP地址)/24(子网掩码)。子网掩码和IP地址做按位与运算。
主机号的计算:子网掩码按位取反和IP地址做按位与运算。
寻址(IP)过程中先找到相同的网络号(表示要找到同一个子网),然后找对应的主机。在后面所学习的的网络编程中我们还会继续去寻找我们的port(端口)。