TCP/IP协议族的开发要比OSI模型更早,TCP/IP协议簇是Internet的基础,也是当今最流行的组网形式。TCP/IP是一组协议的代名词,包括许多别的协议,组成了TCP/IP协议簇。
其中比较重要的有SLIP协议、PPP协议、IP协议、ICMP协议、ARP协议、TCP协议、UDP协议、FTP协议、DNS协议、SMTP协议等。
OSI和TCP/IP协议族的比较
比较这两个模型,发现TCP/IP协议族中没有会话和表示这两层。在TCP/IP协议族中通常认为应用层是OSI模型的最高三层的合并。
TCP/IP协议族的分层
为了便于理解,我们假设在一个小型的专用互联网内使用TCP/IP协议族。
这种互联网是由若干个小型的称之为链路(link)的网络组成的。
一条链路就是允许一组计算机互相通信的一个网络,例如,一个办公室中的所有计算机都通过网线连接在一起,这种连接关系就形成了一条链路。
一条链路有可能是服务小范围区域的LAN(局域网),也有可能是服务很大范围区域的WAN(广域网)。
上图是虚构的一个互联网,有两台电脑,六条链路和四个路由器(R1到R4)
物理层
在物理层,TCP/IP没有定义任何特定的协议。它支持所有标准的和专用的协议。
在这一层,通信发生在两跳或者两个结点之间,可能是计算机,也可能是路由器。通信以比特为单位
如果一个结点与n条链路相连,那么它需要n个物理层协议,每条链路各需要一个,原因在于不同的链路可能使用不同的物理层协议。
下图中只显示了此次通信所涉及到的物理层,每台计算机仅涉及一条链路,而每台路由器仅涉及两条链路。
物理层上的通信:
这些比特在计算机A和计算机B之间的旅程是由4个独立的短途旅行构成的。
计算机A以链路1所使用的协议格式向路由器R1发送各比特。
路由器R1以链路3所使用的协议格式向路由器R3发送这些比特,以此类推
物理层的通信单位是比特
数据链路层
TCP/IP没有为数据链路层定义任何特定的协议。它支持所有标准的和专用的协议。在这一层,通信仍然发生在两跳或两个结点之间不过通信的单位却是称为帧的分组
一个帧就是封装了来自网络层的数据的分组,并为其附加一个首部,有时还要再加上一个尾部。
在首部中,除了一些在通信时需要用到的信息之外,最主要的是包含了这个帧的源地址和目的地址。
目的地址是为了指明正确的接收者,因为连接到该链路上的结点很可能不止一个,而有了源地址才有可能实现某些协议所要求的对帧的响应或确认。
下图是数据链路层上的通信:
在计算机A和路由器R1之间传送的帧有可能不同于路由器R1到路由器R3之间传送的帧。
当路由器R1接收到一个帧后,就会将其交给数据链路层协议,如图中R1左侧所示。该帧被打开,数据被卸下,然后将这个数据交给R1右侧所示的数据链路层协议,从而生成一个将要发送到路由器R3的新帧。
这样做的原因在于这两条链路(链路1和链路3)可能使用不同的协议且要求不同格式的帧。
数据链路层的通信单位是帧
网络层
在网络层TCP/IP支持的是国际协议。国际协议(Internet Protocol,IP)是TCP/IP协议使用的传输机制。
IP传输的是称为数据报(datagram)的分组,每个数据报独立传输,不同的数据报可以走不同的路由,也可能不按顺序地到达,也可能会重复。IP不会跟踪记录这些数据报经过的路由,并且在它们到达终点后,IP也不具有按原顺序重排的能力。
下图是在网络层上发送的通信:
注意:网络层的通信与数据链路层或物理层的通信之间有一个很大的区别,网络层上的通信是端到端的通信,而另外两个通信是结点到结点的。
从计算机A出发的数据报就是最后到达计算机B的数据报。
网络层的通信单位是数据报
运输层
在运输层和网络层之间有一个重要区别,那就是网络中的所有结点都必须具有网络层,但只有两端的计算机上才需要运输层。
网络层负责将一个个数据报独立地从计算机A发送到计算机B,而运输层则要负责将完整的报文(也称为报文段、用户数据报或分组)从计算机A交付给计算机B。
一个报文段可能包含了几个到几十个数据报。报文段先要被拆分为多个数据报,然后再将这些数据报分别递交给网络层来传输。
可能会失序到达,也有可能丢失。
计算机B的运输层需要等所有数据报全部抵达后进行重装,从而得到报文段。
下图所示为发生在运输层的通信过程:
TCP/IP协议族中有两个运输层协议:用户数据报协议(User Datagram Protocol,UDP)和传输控制协议(Transmission Control Protocol,TCP)。
最近又出现了一种新的运输层协议称为流控制运输协议(Stream Control Transmission Protocol ,SCTP)
运输层的通信单位可以是报文段、用户数据报或者是分组,取决于运输层使用的具体协议。
应用层
TCP/IP中的应用层相当于OSI模型中会话层、表示层和应用层的结合。应用层使用用户能够获得网络所提供的服务。
这一层定义了许多协议以提供诸如电子邮件、文件传送以及访问全球万维网的服务。
下图是应用层上的通信:
注意:应用层的通信与运输层的通信一样,都是端到端的。由计算机A生成的报文无修改地被传送到计算机B。
应用层的通信单位是报文