网络应用的本质是运行在不同主机(当然也可以运行在同一主机上)的应用进程之间的通信
网络应用的基本通信过程就是运行在不同主机上的应用进程已以c/s方式进行的通讯。
应用进程间遵循应用层协议交换应用层报文。 应用层协议定义了应用进程间交换的报文类型、报文构成部分具体含义以及交换时序,即语法、语义和时许等协议三要素。
应用层会将报文m通过接口传递给传输层。应用层通过创建套接字实现与底层协议之间的报文交换。套接字是每个应用进程与其他应用进程进行网络通信时,真正收发报文的通道。
一个应用进程会可以创建多个套接字与同一个或不同的传输层协议进行接口。对于一个传输层协议,需要未与其接口的每个套接字分配一个编号,标识该套接字,改编号成为端口号。
Internet传输层能提供的服务有两类;面向连接的可靠字节流传输服务(ucp)和无连接的不可靠数据报传输服务(UDP)这两类服务都不能提供时延保障或宽带保障服务。
TCP 服务模型
- 面向连接的服务:在应用层报文开始传送之前,TCP客户和服务器互相交换传输层控制信息,完成握手(三次握手),在客户进程与服务器进程的套接字之间建立一条逻辑的TCP连接,这条连接是全双工的,即连接双方的进程可以在此连接上同时进行报文收发,当应用程序结束报文发送时,必须拆除该链接(四次挥手)
- 可靠的数据传输服务:应用进程能依靠套TCP,实现端到端的无差错、按顺序交付所有发动数据的服务。当应用程序的一段将套接字流通过本地套接字传送时,他能够依靠TCP将相同的字节流交付给接收方的套接字,而没有字节的丢失和冗余。
UDP是一种不提供传输服务保障的请谅解传输层协议。