计网 - tcp和udp(一)
传输层为应用层提供通信服务,使用网络层的服务。
传输层的功能:
- 传输层提供进程和进程之间的逻辑通信,而网络层提供主机之间的逻辑通信。
- 复用和分用。
- 传输层对收到的报文进行差错检测。
传输层的两种协议:
TCP :
面向连接的传输控制协议TCP
传输数据之前必须建立连接,数据传送结束后要释放连接。不提供广播或多播服务。由于TCP要提供可靠的面向连接的传输服务,因此不可避免的增加了许多开销,确认、流量控制、计时器以及连接管理等。
可靠、面向连接、时延大,适用于大文件
UDP:
无连接的用户数据报协议
传输数据之前不需要建立连接,收到UDP报文后也不需要给出任何确认。
不可靠,无连接,时延小,适用于小文件
传输层的寻址与端口
复用:应用层的所有应用进程都可以通过传输层再传输到网络层。
分用:传输层从网络层收到数据后交付给指明的应用进程。
逻辑端口/软件端口 是传输层的SAP(server access point),标识主机中的应用进程。
端口号长度为两个字节16bit,能表示65536各不同的端口号。
在网络中采用发送方和接收方的套接字组合来识别端口,套接字唯一标识了网络中的一个主机和它上面的一个进程。
套接字Socket =(主机IP地址,端口号)
UDP协议
UDP只是在IP数据报服务之上增加了很少功能,即复用分用和差错检测功能。
UDP的主要特点:
- UDP是无连接的,减少开销和发送数据之前的时延。
- UDP使用最大努力交付,即不保证可靠交付。
- UDP是面向报文,适合一次性传输少量数据的网络应用。
- UDP无拥塞控制,适合很多实时应用。
- UDO首部开销小,只需要8个字节,TCP是20B(20字节)
TCP协议
特点
- TCP是面向连接(虚连接)的传输层协议。
- 每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的。
- TCP提供可靠交付的付服务,无差错,不丢失,不重复,按序到达。可靠有序,不丢不重
- TCP提供全双工通信。
发送缓存:准备发送的数据&已发送但是尚未接收到确认的数据。
接收缓存:按序到达但尚未被接受应用程序读取的数据&不按序到达的数据 - TCP面向字节流
TCP把应用程序交下来的数据看成仅仅是一连串的无结构的字节流。