下面分别对TCP/IP的4层模型进行简要介绍。
n 网络接口层:负责将二进制流转换为数据帧,并进行数据帧的发送和接收。要注意的是数据帧是独立的网络信息传输单元。
n 网络层:负责将数据帧封装成IP数据包,并运行必要的路由算法。
n 传输层:负责端对端之间的通信会话连接与建立。传输协议的选择根据数据传输方式而定。
n 应用层:负责应用程序的网络访问,这里通过端口号来识别各个不同的进程。
n ARP:用于获得同一物理网络中的硬件主机地址。
n MPLS:多协议标签协议,是很有发展前景的下一代网络协议。
n IP:负责在主机和网络之间寻址和路由数据包。
n ICMP:用于发送有关数据包的传送错误的协议。
n IGMP:被IP主机用来向本地多路广播路由器报告主机组成员的协议。
n TCP:为应用程序提供可靠的通信连接。适合于一次传输大批数据的情况。并适用于要求得到响应的应用程序。
n UDP:提供了无连接通信,且不对传送包进行可靠性保证。适合于一次传输少量数据,可靠性则由应用层来负责。
n 序号:32位长。标识发送的数据报的顺序。
n 确认号:32位长。希望收到的下一个数据包的序列号。
n TCP头长:4位长。表明TCP头中包含多少个32位字。
n 6位未用。
n ACK:ACK位置1表明确认号是合法的。如果ACK为0,那么数据报不包含确认信息,确认字段被省略。
n PSH:表示是带有PUSH标志的数据。接收方因此请求数据包一到便将其送往应用程序而不必等到缓冲区装满时才传送。
n RST:用于复位由于主机崩溃或其他原因而出现的错误连接。还可以用于拒绝非法的数据包或拒绝连接请求。
n SYN:用于建立连接。
n FIN:用于释放连接。
n 窗口大小:16位长。窗口大小字段表示在确认了字节之后还可以发送多少个字节。
n 校验和:16位长。是为了确保高可靠性而设置的。它校验头部、数据和伪TCP头部之和。
n 可选项:0个或多个32位字。包括最大TCP载荷,滑动窗口比例以及选择重发数据包等选项。