TCP和UDP是两种最为著名的运输层协议,二者都使用IP作为网络层协议。
虽然TCP使用不可靠的IP服务,但它却提供一种可靠的运输层服务。本书第17章到第22章将详细讨论TCP的内部操作细节。然后,我们将介绍一些TCP的应用,如第26章中的Telnet和Rlogin,第27章中的FTP,以及第28章中的SMTP等。这些应用通常都是用户进程。
UDP为应用程序发送和接收数据报。一个数据报是指从发送方传输到接收方的一个信息单元(例如,发送方指定的一定字节数的信息)。但是与TCP不同的是,UDP是不可靠的,它不能保证数据报能安全无误地到达最终目的。本书第11章将讨论UDP,然后在第14章(域名系统:Domain Name System),第15章(简单文件传输协议Trivial File Transfer Protocol),以及第16章(引导程序协议Bootstrap Protocol)介绍使用UDP的应用程序。SNMP(简单网络管理协议)也使用了UDP协议,但是由于它还要处理许多其他的协议,因此本书把它留到第25章再进行讨论。
IP是网络层上的主要协议,同时被TCP和UDP使用。TCP和UDP的每组数据都通过端系统和每个中间路由器中的IP层在互连网中进行传输。在图1.4中,我们给出了一个直接访问IP的应用程序。这是很少见的,但也是可能的。(一些较老的路由选择协议就是以这种方式来实现的。当然新的运输层协议也有可能试用这种方式。)第3章主要讨论IP协议,但是为了使内容更加有针对性,一些细节将留在后面的章节中进行讨论。第9章和第10章讨论IP如何进行路由选择。
ICMP是IP协议的附属协议。IP层用它来与其他主机或路由器交换错误报文和其他重要信息。第6章对ICMP的有关细节进行讨论。尽管ICMP主要被IP使用,但应用程序也有可能访问它。我们将分析两个流行的诊断工具,Ping和Traceroute(第7章和第8章),它们都使用了ICMP。
IGMP是Internet组管理协议。它用来把一个UDP数据报多播到多个主机。我们在第12章中描述广播(把一个UDP数据报发送到某个指定网络上的所有主机)和多点传送的一般特性,然后在第13章中对IGMP协议本身进行描述。
ARP(地址解析协议)和RARP(逆地址解析协议)是某些网络接口(如以太网和令牌环网)使用的特殊协议,用来转换IP层和网络接口层使用的地址。我们分别在第4章和第5章对这两种协议进行分析和介绍。
TCP/IP协议族分为四层:链路层,网络层,运输层和应用层,每一层各有不同的责任。在TCP/IP中,网络层和运输层之间的区别是最为关键的:网络层(IP)提供点到点的服务,而运输层(TCP和UDP)提供端到端的服务。
TCP(传输控制协议) UDP(用户数据报协议) TCP和UDP都是属于传输层协议,负责承担数据传输的任务,其中TCP属于可靠的面向连接服务,UDP是不可靠的无连接数据报服务 TCP需要经过三次握手才能建立一个安全连接,所以效率比较低,但是安全性高,UDP不需要,就跟电报一样,不管你收没收到,所以效率高,但是不可靠,例如我们网络里的DNS请求,就是用UDP发送的,还有QQ里用UDP直连方式语音,速度也是最快的
用户数据报协议(UDP)是IP的另一个主机到主机的协议(对应OSI参考模型的传输层)。UDP部提供TCP的支持的任何先进功能。没有计时器,不提供流控制和管理机制、应答、紧急数据的加速传输,或者其它的任何功能。并且UDP不支持重传。UDP和TCP是迥然不同的协议,它们被设计为做不同的事情。TCP提供更高的可靠性,而UDP是一个简单的、尽力发送报文的协议。TCP相对更复杂,需要大量的功能开销,而UDP则是简单高效的。UDP通常被认为是不可靠的,因为它不具有TCP的任何可靠性机制。没有接收应答机制、乱序到达数据顺序化,甚至不具备对损坏的数据进行重传的机制。UDP不能保证数据不受损害地到达目的地,因此UDP适合发送小规模的数据,对于数据分成多个保温且需要对数据刘进行调解的,TCP更合适。UDP报头UDP报头包含了16位源端口号,16位目的端口号,16位UDP长度和16位校验和,最后是UDP的数据段(如果有的话)。UDP的端口号和TCP的端口号是分别独立存在。UDP长度字段是指UDP首部和UDP数据的字节长度。该字段的最小值为8(2个32bit长)。UDP校验和UDP校验和覆盖了UDP首部和UDP数据。另,UDP的校验和是可选的。