一、概念了解
IP地址:用于定位主机的网络地址,IP地址由4个字节组成,常用点分十进制来进行表示,每个字节用十进制数表示,四个字节之间用.分隔,例如:126.2.34.9。
特殊的IP地址:127.*(第一个字节为127的IP地址),主要用于本机回环测试,即本机到本机之间网络通信测试。
端口号:用于定位主机中的进程。
注意:
- 一个进程启动之后,系统会随机分配一个端口号。
- 多个进程不能同时绑定同一个端口号,但是一个进程可以有多个端口号。
- 端口号的取值范围是:0~65535。
网络协议: 网络通信经过所有的网络设备都必须遵守的约定,简单来说就是收发双方定义的通信规则,只有彼此遵守这个约定,通信才能进行,网络协议三要素:语法、语义、时序。
网络协议也需要分配端口号,其中0~1023的端口号是预留给应用层协议的。
五元组:在TCP/IP协议中,用于标识一个网络通信。
五元组的组成要素:
- 源IP地址:用于标识源主机(发送方)的网络地址。
- 源端口号:用于标识主机中本次通信发送数据的进程。
- 目的IP地址:用于标识目的主机(接收方)的网络地址。
- 目的端口号:用于标识主机中本次通信接收数据的进程。
- 协议号:标识发送方和接收方进程所约定的数据格式。
二、协议分层
1、OSI七层模型
OSI七层模型将网络从逻辑常分为了七层(由高到低如下所示):
- 应用层:针对特定应用的协议。
- 表示层:设备固有的数据格式和网络标准数据格式转换。
- 会话层:进行通信管理。
- 传输层:管理两个结点之间的数据传输,负责的是可靠传输。
- 网络层:地址管理与路由选择。
- 数据链路层:互联设备之间传送和识别数据帧。
- 物理层:比特流与电子信号的切换,与硬件密切相关。
OSI七层模型概念清楚,理论也比较完善,但是十分复杂也不使用,所以OSI七层模型最终也没有实现。
2、TCP/IP五层协议
TCP/IP协议采用五层网络模型,将OSI七层模型的高三层合并为了应用层。
五层网络模型从下到上依次是:
- 物理层:网络通信中的硬件设备,例如:网线、网卡,还有对于硬件设备的约定都是物理层协议锁负责的范畴用来保证主机和网络设备之间都是相互匹配的。
- 数据链路层:用于完成相邻的两个设备之间的通信,是局部的。
- 网络层:负责点到点之间的通信,网络之间的两个任意结点之间都可以实现通信,是全局范围的,并且网络层会为通信的的两个结点之间规划出一最合适的路线。
- 传输层:是端到端之间的通信,只关注起点到终点的数据是否发送成功,不关注发送的具体细节。
- 应用层:与应用程序是密切相关的,关注的是所传输的数据的用途。
那么如果发送一条协议报文,数据在各层之间传输的形式是怎样的(假设是TCP报文)?
封装过程:发送方发送数据
分用过程:接收方接收数据
从物理层开始接收数据,到物理层又逐一封装起来,相当于是封装的逆过程。
上述是整体的一个情况,但是发送方和接收方之间还会存在多个交换机和路由器。
交换机:
路由器: