-
本文是[计算机网络](https://www.bilibili.com/video/BV1c4411d7jb?spm_id_from=333.999.0.0)的笔记,图片也从视频中截取。
5.1运输层概述
- 端口:用来区分不同应用进程的表示符。
- 在学习运输层时,我们简单地认为运输层为应用进程间的逻辑通信提供服务。
- 逻辑通信:运输层之间的通信好像是沿水平方向传送数据,事实上并没有一条水平方向的物理连接。
5.2运输层端口号、复用和分用的概念
(1)发送方的复用和接收方的分用
- UDP复用:应用进程发送应用报文,在运输层使用UDP协议进行封装。
- TCP复用:应用进程发送应用报文,在运输层使用TCP协议进行封装。
- IP复用:在网络层使用IP协议封装成IP数据报。
- IP数据报中协议字段的值表明IP数据报的数据载荷部分封装的是何种协议数据单元。
(2)TCP/IP体系的应用层常用协议所使用的运输层熟知端口号
- 不管在运输层使用UDP或者TCP协议,在网络层都是用IP协议。
5.3TCP和UDP的对比
-
使用UDP协议的双方可以随时发送数据。
-
使用TCP协议的双方通信之前必须三报文握手建立连接,结束后必须使用四报文挥手来释放连接。
-
连接指的是逻辑链接关系,而不是物理连接。
-
某个局域网上使用UDP协议进行通信的四台主机。
-
任何一台主机都可以向其他三台主机发送广播;也可以向某个多播组发送多播;还可以向某台主机发送单播。
-
TCP仅支持单播。
-
UDP对应用进程交下来的报文既不合并也不拆分,而是保留这些报文的边界。
-
UDP是面向应用报文的。
-
发送方的TCP把应用进程交付下来的数据块仅仅看成一连串、无结构的字节流。
-
TCP不知道待传送的字节流的含义,仅将他们编号,并存储在自己的发送缓存中。
-
TCP根据发送策略,从发送缓存中提取一定数量的字节,构建TCP报文段并发送。
-
TCP接受方TCP,一方面从所接收到的TCP报文段中,取出数据载荷部分并存储在接受缓存中;一方面将接受缓存中的一些字节交付给应用进程。
-
TCP不保证接收方应用进程所收到的应用进程块和发送方应用进程所发出的数据块具有对应大小的关系;字节流完全一致。
-
接受方的应用进程必须有能力识别收到的字节流,把他还原成有意义的应用层数据。
-
TCP是面向字节流的,这是实现可靠传输、流量控制、拥塞控制的基础。
-
TCP的两端可以同时进行TCP报文段的发送和接受,即全双工通信。
-
由于UDP不提供可靠传输的服务,仅仅实在网络层的基础上添加了用于区分应用进程的端口&