一、TCP/IP 的标准化
1.1 TCP/IP 的具体含义
从字面意义上来讲,应该是指TCP和IP两种协议。有时的确只指这两种协议,然而大部分情况下,它只是利用IP进行通信时
所必须用到的协议群的统称。具体来说,IP或ICMP、TCP或UDP、TELNET或FTP、以及HTTP等都属于TCP/IP的协议。
TCP/IP一词泛指这些协议,因此,有时也称TCP/IP为网际协议族(组成网际协议的一组协议)。
二 TCP/IP 协议分层模型
2.1 TCP/IP 与OSI参考模型
从上图我们不难看出,TCP/IP与OSI在分层模块上稍有区别。OSI参考模型注重“通信协议必要的功能是什么”,而TCP/IP
则更强调“在计算机上实现协议应该开发哪种程序”。
2.2 TCP/IP 分层模型中各个层
物理层:负责数据传输的硬件。这种硬件就相当于以太网或电话线路等物理层的设备。
数据链路层:以太网的数据链路层,属于接口层。也就是说,把它当做让NIC(网络接口卡,有时也被叫做网络适配器、网卡、
LAN卡)起作用的“驱动程序”也无妨。驱动程序是在操作系统与硬件之间起桥梁作用的软件。
网络层:使用IP协议,连接互联网的所有主机跟路由器必须都实现IP的功能。IP是跨越网络传送数据包,使整个互联网都
能收到数据的协议。
传输层:主要的功能就是能够让应用程序之间实现通信。
TCP:是一种面向有连接的传输层协议。
优点:可以保证两端通信主机之间的通信可达。能够正确处理在传输过程中丢包、传输顺序乱掉等异常情况
。还能有效利用带宽,缓解网络堵塞。
缺点:建立与断开连接会造成网络流量的浪费。此外,为了提高网络的利用率,TCP协议中定义了各种各样
复杂的规范,因此不利于视频会议(音频、视频的数据量既定)等场合使用。
UDP:是一种面向无连接的传输层协议。不会关注对端是否真的收到了传送过去的数据,如果需要检查对端是否收
到分组数据包,或者对端是否连接到网络,则需要在应用程序中实现。常用于分组数据较少或多播、广播通
信以及视频通信等多媒体领域。
应用层:这是TCP/IP分层和OSI分层最大的区别,其将OSI分层中的会话层、表示层和应用层的功能都集中到了应用程序中
实现。所以TCP/IP的应用程序不仅实现OSI模型中应用层的内容,还要实现会话层与表示层的功能。
2.3 TCP/IP 分层模型的通信示例
每个分层中,都会对所发送的数据附加一个首部,在这个首部中包含了该层必要的信息,如发送的目标地址以及协议相关信
息。通常,为协议提供的信息为包首部,所要发送的内容为数据。如上图所示,在下一层的角度来看,从上一分层收到的包
全部都被认为是本层的数据。(应用层→物理层,层数逐渐下降)
每个包首部中至少都会包含两个信息:一个是发送端和接收端地址,另一个是上一层的协议类型。
下图就是数据包的发送以及接收的大概流程。