TCP/IP协议栈主要分为四层:应用层、传输层、网络层、数据链路层,每层都有相应的协议,如下图
所谓的协议就是双方进行数据传输的一种格式。整个网络中使用的协议有很多,所幸的是每一种协议都有RFC文档。在这里只对IP、UDP协议头做一个分析。
首先来看看在网络中,一帧以太网数据包的格式:
UDP协议
- UDP协议也是传输层协议,它是无连接,不保证可靠的传输层协议。在传输过程中没有流量控制和确认机制,数据报可能会丢失,延迟,乱序到达信宿。
- UDP只是提供了利用校验和检查数据完整性的简单差错控制。
- UDP支持一对一、一对多、多对一和多对多的交互通信。
- 它的协议头比较简单,只有8字节,比TCP的20字节首部开销要小很多。
UDP报文格式
Length占用2个字节,标识UDP头和数据的长度和。
Checksum : 校验和,包含UDP头和数据部分。
IP协议
IP报文格式
IP地址分类
IP地址由32位二进制数组成,地址空间是0—-2^32-1
点分十进制表示法:192.168.1.1
IP地址分为两部分: 网络地址和主机地址
IP 地址分类(A、B、C、D、E类)
如上图首字节整数:A类–0开始,B类–27=128 开始,C类–27+ 26=192 开始,D类–27+ 26+ 25 =224开始,E类–27+ 26+ 25 + 24=240开始,示例如下
有特殊用途的IP地址:
- 直接广播地址:在A,B,C类地址中,如果主机地址全为“1”,则该地址为直接广播地址,即可以同时向指定网络的所有主机发送数据报.
- 受限广播地址:如果IP地址的32位全部为“1”,表示当前网络的一个广播地址,可以实现对本网络广播通信。
- 本网络本主机地址:IP地址的32位全部为“0“,表示当前网络的本主机地址。
- 本网络上特定主机地址:网络地址全为“0”的ip地址。
- 环回地址:IP地址中,首字节数值为“127”的地址,发送到这个地址的数据报不输出到线路上,直接返回。
子网与掩码:
两级结构 网络地址,主机地址
三级结构 网络地址,子网地址,主机地址(原主机地址分隔开来)
子网掩码是一个32位的地址掩码,对应于网络地址和子网地址位设置为“1”,对应于主机地址的设置为“0”。
超网:
超网的功能是将多个连续的C类的网络地址聚合起来形成一个大型网络,因此超网是借用一部分网络地址位作为主机位,从而达到减小因特网路由表的目的。
无类别域间路由(classless interdomain routing, CIDR)
- 在CIDR中,去掉了A,B,C类地址的概念,采用了无类地址的概念,每个地址仅仅包含网络地址和主机地址两部分
- 无类地址也是用掩码来划分网络地址和主机地址的分界点。
- 无类地址常采用斜线表示法,将地址的掩码一起表示出来,格式是: W.X.Y.Z/n
- 斜线前面是IP地址,斜线后面是IP地址的网络地址部分的长度。即掩码中连续“1”的长度。
eg: 195.160.0.1/24 对应的掩码是 255.255.255.0