本文主要是介绍计算机网络传输层知识点全覆盖,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
传输层概述
- 作用:传输层为它上面的应用层提供通信服务。
- 在OSI七层参考模型中,传输层是面向通信的最高层,也是用户功能的最底层。
- 传输层两大重要的功能:复用 和 分用。
- 复用:在发送端,多个应用进程公用一个传输层;
- 分用:在接收端,传输层会根据端口号将数据分派给不同的应用进程。
- 和网络层的区别:
- 网络层为不同主机提供通信服务,而传输层为不同主机的不同应用提供通信服务。
- 网络层只对报文头部进行差错检测,而传输层对整个报文进行差错检测。
UDP(用户数据报协议)详解
UDP的特点
UDP只在IP数据报服务的基础上增加了少量的功能:复用与分用、对整个报文的差错检测。
UDP是无连接的
通信前不需要建立连接,通信结束也无需释放连接。UDP是不可靠的
它是尽力而为交付,不能确保每一个数据报都送达。UDP是面向报文的
所谓『面向报文』就是指:UDP数据传输的单位是报文,且不会对数据作任何 拆分 和 拼接 操作。
在发送端,应用程序给传输层的UDP什么样的数据,UDP不会对数据进行切分,只增加一个UDP头并交给网络层。
在接收端,UDP收到网络层的数据报后,去除IP数据报头部后遍交给应用层,不会作任何拼接操作。UDP没有拥塞控制
UDP始终以恒定的速率发送数据,并不会根据网络拥塞情况对发送速率作调整。这种方式有利有弊。
弊端:网络拥塞时有些报文可能会丢失,因此UDP不可靠。
优点:有些使用场景允许报文丢失,如:直播、语音通话,但对实时性要求很高,此时UDP还是很有用武之地的。UDP支持一对一、一对多、多对多、多对一通信
而TCP只支持一对一通信。UDP首部开销小,只有8字节。
而TCP头部至少由20字节,相比于TCP要高效很多。
PS:问:UDP不可靠具体体现在哪些方面?
数据报丢失?数据报顺序?
UDP报文头
- 源端口
- 目的端口
- 长度:整个数据报的长度
- 检验和:整个数据报的检验和。
TCP(传输控制协议)详解
TCP特点
TCP是面向连接的
通信前需要建立连接,通信结束需要释放连接。TCP提供可靠交付服务
所谓『可靠』指的是:TCP发送的数据无重复、无丢失、无错误、与发送端顺序一致。TCP是面向字节流的
所谓『面向字节流』指的是:TCP以字节为单位。虽然传输的过程中数据被划分成一个个数据报,但这只是为了方便传输,接收端最终接受到的数据将与发送端的数据一模一样。TCP提供全双工通信
所谓『全双工通信』指的是:TCP的两端既可以作为发送端,也可以作为接收端。一条TCP连接的两端只能有两个端点
TCP只能提供点到点的通信,而UDP可以任意方式的通信。
TCP连接 与 套接字
什么是『TCP连接』?
TCP连接是一种抽象的概念,表示一条可以通信的链路。
每条TCP连接有且仅有两个端点,表示通信的双方。且双发在任意时刻都可以作为发送者和接收者。什么是『套接字』?
一条TCP连接的两端就是两个套接字。
套接字=IP地址:端口号。
因此,TCP连接=(套接字1,套接字2)=(IP1:端口号1,IP2:端口号2)
TCP头部
TCP头部长度有20字节的固定部分,选项部分长度不定,但最多40字节,因此TCP头部在20-60字节之间。
源端口 和 目的端口
传输层和网络层一大重要区别就是传输层指定了数据报发往的应用进程,因此需要端口号标识。序号
当前TCP数据报数据部分的第一个字节的序号。
我们知道,TCP是面向字节的,它会对发送的每一个字节进行编号,而且不同数据报之间是连续编号的。
由于本字段4字节,可以给[0,2
这篇关于计算机网络传输层知识点全覆盖的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!