UDP协议和TCP协议
传输层功能和端口范围
传输层协议和网络层协议的主要区别
- 网络层实现如何把数据包从这个地址(服务器)发送到另一个地址(服务器)
- 传输层实现如何让这个应用程序找到对应计算机的应用程序(相对应的应用程序实现逻辑通信)
传输层的主要功能
- 传输层为应用进程之间提供了端到端的逻辑通信(但网络层是为主机之间提供逻辑通信)
- 传输层还要对收到的报文进行差错检验
- 传输层提供面向连接(TCP)和无连接(UDP)的服务
UDP协议
- UDP是无连接的,即发送数据之前不需要建立连接
- UDP使用尽最大努力交付,即不保证可靠交付,同时也不使用拥塞控制
- UDP是面向报文的,适合多媒体通信的要求
- UDP支持一对一,一对多,多对一,多对多交互通信
- UDP首部开销小,只有8个字节
TCP协议
- TCP是面向连接的传输层协议。(三次握手)
- 每一条TCP连接智能有两个端点(endpoint),每一条TCP连接只能时点对点的(一对一)
- TCP提供可靠交付的服务。(确保不丢包)
- TCP提供全双工通信。(因为需要接收端的反馈,例如如果接收端处理不过来,可让发送端慢一点,流量控制)
- 面向字节流
如果要传输一个比较大的数据,首先一次只会传输一小块,这个数据块的大小是没有规律的。加上数据包数据帧的头,发送给接收端,接收端去掉首部,再次拼接。
TCP的连接
- TCP把连接作为最基本的抽象
- 每一条TCP连接有两个端点
- TCP连接的端点不是主机,不是主机的IP地址,不是应用程序,也不是传输层协议端口,TCP连接的端点叫 套接字(socket)
->套接字socket = (IP地址:端口号)
->每一条TCP连接唯一地被通信两端的两个套接字所确定,即:
->TCP连接 ::= {socket1, socket2} = {(IP1:port1), (IP2:port2)} - 端口号拼接到IP地址即构成了套接字