最近看了《TCP/IP详解,卷1:协议》这本书,现在对TCP/IP协议族进行概述总结如下:
首先要明白的是TCP/IP协议并不是指两个不同的协议,而是指一个协议族,通常TCP/IP协议被认为是一个 四层协议系统,是分不同层次的,每一层次负责不同的功能。TCP/IP协议族的四个层次如下图所示:
应用层 Telnet、FTP、e—mail等
运输层 TCP、UDP
网络层 IP、ICMP、IGMP
链路层 设备驱动程序及接口卡
每一层的功能:
1. 链路层:通常包括操作系统中的设备驱动程和计算机中对应的网络接口卡,它们一起处理与电缆的物理接口细节。
2. 网络层:通常处理分组在网络中的活动,例如分组的选择等。网络层协议包括IP协议,ICMP协议以及IGMP协议。
3. 运输层:这一层主要为两台主机上的应用程序提供端到端服务,主要有两个不同的传输协议:TCP和UDP,其中TCP为两台主机提供高可靠的数据通信,主要采用超时重传、发送和接收端到端的确认分组等机制确保可靠的数据通信,而UDP提供一种非常简单的服务,他只是把分组从一台主机发送到另一台主机,但并不保证该分组能达到另一端。
4. 运用层:负责处理特定的运用程序细节,不同的TCP/IP几乎都提供一下几种通用的应用程序:Telnet,FTP,SMTP,SNMP等。
TCP/IP协议族中不同的层次的协议如下图所示:
假设在一个局域网如以太网中两台主机进行FTP协议通信,该过程所涉及的就所有协议如下图所示:
以上的图只是两台主机在一个网络上进行通信的过程,而在一个互联网上两台主机又是如何通信的呢?我们都知道一个互联网是由多个网络通过路由器连在一起的,所以两台主机之间是通过路由器进行通信的。这时应用层和运输层使用端到端协议,而网络层提供的是逐跳协议。连接网络的另一个途径就是使用网桥,网桥是链路层上对网络进行互连,而路由器则是在网络层上对网络进行互连。
提到互联网,必须要了解互联网的地址。互联网上的每个接口必须有一个唯一的IP地址,IP地址长32bit,IP地址具有一定的结构,这些32位的地址通常写成四个十进制的数,其中每个整数对应一个字节,区分各类不同地址的方法就是看它的第一个十进制数,需要注意的是多接口主机具有多个IP地址,其中每个接口对应一个IP地址。
当应用程序用TCP传送数据时,数据被送入协议栈中,然后逐个通过每一层知道被一串比特流送入网络,其中每一层对收到的数据都要增加一些首部信息,TCP传给IP的数据单元称作TCP报文段,IP传给网络接口层的数据单元称作IP数据报,通过 局域网 传输的比特流称作帧。