目录
UDP
UDP的功能
UDP的特点
UDP的首部格式
TCP
TCP的功能
TCP的特点
TCP面向流的概念
套接字(socket)
无连接工作流程和面向连接的工作流程对比
UDP
UDP的功能
UDP只在IP的数据报服务上增加了很少一点功能:
1.复用和分用功能
2.差错检测功能
UDP的特点
UDP是无连接的,即发送数据之前不需要建立连接,因此减少了开销和发送数据之前的时延
UDP使用尽最大努力交付,不保证可靠交付,因此主机不需要维持复杂的连接状态表
UDP是面向报文的,即UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界,一次交付一个完整的报文
UDP没有拥塞控制, 因此网络出现的拥塞不会使源主机的发送速率降低,很适合实时应用的要求
UDP支持一对一,一对多,多对一,多对多交互通信
UDP首部开销小,只有8字节,比TCP的20字节短很多
UDP的首部格式
伪首部仅仅为了计算校验和
TCP
TCP的功能
在无连接的、不可靠的IP网络服务基础之上,通过增加保证可靠性的一系列措施,提供可靠交付的服务
TCP的特点
面向连接的传输层协议
每一条TCP连接只能由两个端点(endpoint),每一条TCP连接只能是点对点的
TCP提供可靠交付的服务
TCP提供全双工通信
面向字节流:TCP中的流(stream)指流入或流出进程的字节序列,面向字节流的含义是,虽然应用程序和TCP的交互是一次一个数据块,但TCP把应用程序交下来的数据看成仅仅是一连串无结构的字节流
TCP面向流的概念
TCP连接是一条虚连接而不是一条真正的物理连接TCP不关心应用进程一次把多长的报文发送到TCP的缓存中TCP根据对方给出的窗口值和当前网络拥塞的程度来决定一个报文段应包含多少个字节(UDP发送的报文长度是应用进程给出的)TCP可把太长的数据块划分短一些再传送TCP可等待积累有足够多的字节后再构成报文段发送出去TCP把连接作为最基本的抽象。每一条TCP连接有两个端点TCP连接的端点不是主机,不是主机的IP地址,不是应用进程,也不是运输层的协议端口。TCP连接的端点叫做套接字(socket)或插口端口号拼接到(contatenated with)IP地址即构成了套接字套接字(socket)
TCP连接就是由协议软件所提供的一种抽象TCP连接的端点是个很抽象的套接子,即(IP地址:端口号)同一个IP地址可以有多个不同的TCP连接同一个端口号也可以出现在多个不同的TCP连接中Sockey的不同含义
应用编程接口API称为socket API,简称为socket。socket API中使用的一个函数名也叫作socket。调用socket 函数的端点称为socket调用socket函数时其返回值称为socket描述符,可简称为socket在操作系统内核中连网协议的 Berkeley实现,称为socket 实现
无连接工作流程和面向连接的工作流程对比
不同之处在于,服务器开启后等待连接,客户机请求连接,建立连接之后再进行相应请求和应答