UDP协议和TCP协议

传输层功能和端口范围

UDP协议和TCP协议

传输层协议和网络层协议的主要区别

  • 网络层实现如何把数据包从这个地址(服务器)发送到另一个地址(服务器)
  • 传输层实现如何让这个应用程序找到对应计算机的应用程序(相对应的应用程序实现逻辑通信)
    UDP协议和TCP协议

传输层的主要功能

  • 传输层为应用进程之间提供了端到端的逻辑通信(但网络层是为主机之间提供逻辑通信)
  • 传输层还要对收到的报文进行差错检验
  • 传输层提供面向连接(TCP)和无连接(UDP)的服务

UDP协议

  • UDP是无连接的,即发送数据之前不需要建立连接
  • UDP使用尽最大努力交付,即不保证可靠交付,同时也不使用拥塞控制
  • UDP是面向报文的,适合多媒体通信的要求
  • UDP支持一对一,一对多,多对一,多对多交互通信
  • UDP首部开销小,只有8个字节
    UDP协议和TCP协议

TCP协议

  • TCP是面向连接的传输层协议。(三次握手)
  • 每一条TCP连接智能有两个端点(endpoint),每一条TCP连接只能时点对点的(一对一)
  • TCP提供可靠交付的服务。(确保不丢包)
  • TCP提供全双工通信。(因为需要接收端的反馈,例如如果接收端处理不过来,可让发送端慢一点,流量控制)
  • 面向字节流
    UDP协议和TCP协议
    如果要传输一个比较大的数据,首先一次只会传输一小块,这个数据块的大小是没有规律的。加上数据包数据帧的头,发送给接收端,接收端去掉首部,再次拼接。

TCP的连接

  • TCP把连接作为最基本的抽象
  • 每一条TCP连接有两个端点
  • TCP连接的端点不是主机,不是主机的IP地址,不是应用程序,也不是传输层协议端口,TCP连接的端点叫 套接字(socket)
    ->套接字socket = (IP地址:端口号)
    ->每一条TCP连接唯一地被通信两端的两个套接字所确定,即:
    ->TCP连接 ::= {socket1, socket2} = {(IP1:port1), (IP2:port2)}
  • 端口号拼接到IP地址即构成了套接字

TCP如何实现可靠传输

UDP协议和TCP协议