1.TCP/IP的具体含义
很多情况下,它是利用IP进行通信时所必须用到的协议群的统称。具体来说,IP或ICMP、TCP或UDP、TELNET或FTP、以及HTTP等都属于TCP/IP的协议。因此,有时也称TCP/IP为网际协议族。
2.TCP/IP协议分层模型
a).硬件(物理层)
TCP/IP的最底层是负责数据传输的硬件。这种硬件就相当于以太网或电话线路等物理层的设备。
b).网络接口层(数据链路层)
网络接口层利用以太网中的数据链路层进行通信,因此数据接口层。也就是说,把它当做让NIC起作用的“驱动程序”也无妨。驱动程序是在操作系统与硬件之间起桥梁作用的软件。
c).互联网层(网络层)
互联网层使用IP协议,它相当于OSI模型中的第3层网络层。IP协议基于IP地址转发分包数据。IP协议的作用是将分组数据包发送到目的主机,这期间它使用IP地址作为主机的标识。IP协议不具有重发机制,因此它属于非可靠传输协议。IP数据包在发送途中一旦发生异常导致无法到达对端目标地址时,需要给发送端发送一个发生异常的通知,TCMP就是为这一功能而制定的,它有时也被用来诊断网络的健康状况。另外还有ARP协议,它用来从分组数据包的IP地址中解析出物理地址(MAC地址)。
d).传输层
传输层最主要的功能就是能够让应用程序之间实现通信。内部采用不同的端口号来区分不同的应用程序。
TCP是一种面向有连接的传输层协议,它能够正确处理在传输过程中丢包、传输顺序错乱等异常情况,还能够有效利用带宽,缓解网络拥堵。为了提高网络的利用率,TCP协议中定义了各种各样复杂的规范,因此不利于视频会议等场合使用。
UDP是一种面向无连接的传输层协议。它不关注对端是否真的收到了传送过去的数据,需要使用者自己在应用程序中去实现,它常用于分组数据较少或多播、广播通信以及视频通信等多媒体领域。
e).应用层(会话层以上的分层)
TCP/IP的分层中,将OSI参考模型中的会话层、表示层、应用层的功能都集中到了应用程序中实现。
3.数据包首部
每个分层中,都会对所发送的数据附加一个首部,在这个首部中包含了该层必要的信息,如发送的目标地址以及协议相关的信息。
以发送数据时为例:
a).应用程序处理
首先应用程序会将真实数据转换为某种约定的格式,交给下层去处理。
b).TCP模块的处理
TCP首部中,包括源端口号和目标端口号(用以识别发送主机和接受主机上的应用)、序号(用以发送的包中哪部分是数据)以及校验和(用以判断数据是否被损坏)。
c).IP模块的处理
IP首部中包含接收端IP地址以及发送端IP地址。紧随IP首部的还有用来判断其后面数据是TCP还是UDP的信息。
d).网络接口(以太网驱动)的处理
以太网首部中包含接收端的MAC地址、发送端的MAC地址以及标志以太网类型的以太网数据的协议。发送处理中的FCS(Frame Check Sequence)由硬件计算,添加到包的最后,设置FCS的目的是为了判断数据包是否由于噪声而被破坏。
总的来说,大致示例如下