1.1.TCP/IP协议简介
tcp/ip协议运行在各种操作系统上的一种网络通信协议,各个系统通过实现tcp/ip的相关协议,来达到相互之间通信的目的。
1.2.TCP/IP协议分层细节
网络协议通常都是分层开发,各个层负责其相对应的任务,TCP/IP协议也不例外。例如,TCP/IP协议的链路层负责保证局域网内的通信,网络层负责保证跨局域网之间的通信。
具体的分层细节如下:
链路层:有时也称作数据链路层或网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆(或其他任何传输媒介)的物理接口细节。
网络层:有时也称作互联网层,处理分组在网络中的活动,例如分组(分组可以理解为一条在网络中传输的报文)的选路。在TCP/IP协议族中,网络层协议包括IP协议(网际协议),ICMP协议(常用的ping程序便是通过这个协议实现),以及IGMP协议(负责组播选路转发的相关协议)。
传输层:有时也称作运输层,运输层主要为两台主机上的应用程序提供端到端的通信(注意运输层负责的是应用程序之间的通信,而主机到主机之间的通信由链路层与网络层负责)。
在TCP/IP协议族中,有两个互不相同的传输协议:TCP(传输控制协议)和UDP(用户数据报协议)。
TCP为两台主机提供高可靠性的数据通信(TCP提供的服务是可靠的,即只要是TCP承载的协议报文,除非网络不通,否则网络报文必定能正常送达目的主机,这是由于网络层的IP服务时不可靠的)。它所做的工作包括把应用程序交给它的数据分成合适的小块交给下面的网络层,确认接收到的分组,设置发送最后确认分组的超时时钟等。由于运输层提供了高可靠性的端到端的通信,因此应用层可以忽略所有这些细节。而另一方面,UDP则为应用层提供一种非常简单的服务。它只是把称作数据报的分组从一台主机发送到另一台主机,但并不保证该数据报能到达另一端(不具备可靠性,需要通过上层协议来保证)。任何必需的可靠性必须由应用层来提供。这两种运输层协议分别在不同的应用程序中有不同的用途,这一点将在后面看到。
应用层:应用层负责处理特定的应用程序细节。几乎各种不同的TCP/IP实现都会提供下面这些通用的应用程序:
• Telnet 远程登录。
• FTP 文件传输协议。
• SMTP 简单邮件传送协议。
• SNMP 简单网络管理协议。
我们可以简单地将链路层、网络层与传输层这三层的协议的作用,统一理解成为了将报文成功送达目标主机对应的目的程序。而应用层的数据才是报文中真正承载的用户数据,即我们应用程序之间通信的真正数据。例如我们微信、QQ这些聊天软件发出去的聊天信息就是承载在应用层的数据包中。
1.3.TCP/IP协议分层图
TCP与UDP是最为著名的运输层协议,这两种协议都以IP协议作为其网络层协议。当前互联网中的绝大多数应用层协议都是承载在这两种运输层协议之上。