互联网由终端主机、链路和路由器组成,数据通过逐跳的方式,依次经过每条链路进行传输。
网络层的工作是将数据包从源端到目的端,跨越整个互联网。
网络层的数据包称为数据报。网络将数据报交给链路层,指示它通过第一条链路发送数据报。
网络层协议:Internet Protocol(IP)
最常见的传输层协议是(Transmission Control Protocol)TCP,传输控制协议
TCP的任务是确保在互联网一端发送的应用程序数据能够正确、按顺序地送达互联网另一端的应用程序。
如果网络层丢弃了一些数据报,TCP会在必要时多次重传。
如果网络层无序地送达数据报,可能是因为两个数据包通过不同路径到达目的地,TCP会将数据重排。
TCP为运行在网络层服务之上的应用程序提供了一种保证数据正确、有序送达的服务。
网络层在底层提供的是一种不可靠的数据传递服务。
并非所有应用程序都需要数据被正确送达,如果视频会议应用程序正在发送一个数据包中的视频片段,多次等待数据包重传可能毫无意义,最好是继续传输。
有些应用程序根本不需要TCP服务,如果应用程序不需要可靠的送达,可以使用更简单的UDP。
UDP(User Datagram Protocol,用户数据包协议)
UDP是一种替代的传输层协议,它将应用程序数据打包,并将其交给网络层以传递到另一端。
UDP完全不提供送达保证,应用程序至少有两种不同的传输层服务选择:TCP和UDP。
最顶层是应用层,互联网有成千上万的应用程序,虽然每个应用程序各不相同,但它们可以通过使用应用层到TCP和UDP服务的明确定义的API来复用传输层。
应用层:保证应用程序之间的双向可靠字节流。
传输层:保证数据端到端的正确有序传递,并控制拥塞。
网络层:负责端到端的数据报传递,提供尽力而为的传递服务,不做任何保证。
链路层:负责在终端主机与路由器之间或两个路由器之间通过单一链路传递数据。