一、UDP(用户数据报协议)

UDP只在IP 的数据报服务之上增加了端口功能(复用分用功能差错检测功能。虽然 UDP 用户数据报只能提供不可靠的交付,但也有某些特殊优点。 1、UDP的主要特点: ⑴、无连接:即发送数据之前不需要建立连接; ⑵、尽最大努力交付:即不保证可靠交付; 4.PNG ⑶、面向报文:发送方UDP对应用进程交下来的报文不合并、不拆分,添加首部后就向下交付 IP 层,一次发送一个完整的报文;接收方 UDP 对 IP 层交上来的 UDP 用户数据报去除首部后就原封不动地交付上层的应用进程,一次交付一个完整的报文。 ⑷、无拥塞控制:因为很多实时应用要求原主机发送速率恒定; ⑸、支持一对一、一对多、多对一、多对多交互通信8.PNG ⑹、首部开销小:TCP首部为20字节,而UDP首部只有8字节。 运输层:UDP用户数据报=首部(8字节)+数据部分 网络层: 需要使用IP协议添加IP首部

UDP对应用报文的处理

  1. 发送方的应用进程将应用层报文交付给运输层UDP,UDP直接给应用层报文直接添加一个UDP首部,使之成为用户数据报,然后进行发送,先忽略运输层下面的各层处理。
  2. 接收方的UDP收到该用户数据报后,去掉该首部,将应用层报文交付给应用进程。
  3. UDP对应用进程交下来的报文既不合并也不拆分,而是保留这些报文的边界。就是UDP是面向应用报文的

2.PNG

二、TCP(传输控制协议)

TCP最主要特点 ⑴、点对点通讯:每一条TCP连接只能有两个端口,只能是点对点的通讯; ⑵、可靠交付:无差错,不丢失,不重复,按序到达; 5.PNG ⑶、全双工通信:收发双方都有发送缓存和接受缓存; ⑷、面向连接:建立TCP连接(虚连接)、通讯、释放TCP连接; ⑸、面向字节流:划分报文,“”是指流入到进程或从进程流出的字节序列。

面向字节流含义是:①.应用程序和TCP的交互是一次一个数据块,但TCP把数据块看成无结构的字节流;②.保证接收方应用进程收到的字节序列与发送方应用进程发送的字节序列一样,但不保证接数据块大小一样。

必须使用三次握手建立连接,建立连接后,通信双方使用这条基于TCP连接的可靠信道进行通信。 1.PNG

TCP对应用报文的处理

  1. 发送方TCP把应用进程交付下来的数据块,仅仅看作是一连串的、无结构的字节流,TCP并不知道这些待传送的字节流的含义,仅将它们编号,仅存储在它们的发送缓存中。
  2. TCP根据发送策略,提取一定数量的字节,构建TCP报文段并发送。
  3. 接收方的TCP,一方面从所接收到的TCP报文段中取出数据载荷部分并存储在接收缓存中;一方面将接收缓存中的一些字节交付给应用进程。
  4. TCP不保证接收方应用进程所收到的数据块与发送方应用进程所发出的数据块具有大小的关系。发送方的数据块和接收方的数据块大小可以不同
  5. 但是接受方收到的字节流必须和发送方发送的字节流完全一样。并且把它还原成有意义的应用层数据。
  6. TCP是面向字节流的,这正是TCP实现可靠传输、流量控制以及拥塞控制

基础。 3.PNG

三、UDP和TCP的对比

7.PNG