1、传输层概述
1.1、传输层
为应用层提供通信服务,使用网络层服务
1)功能
-
传输层提供进程和 进程之间 的逻辑通信
网络层提供 主机之间 的逻辑通信
-
复用和分用
例如一家四口都要给好友写信,统一放到邮筒里,邮政员一起送出去,这是复用。收到回信后,快递员把信分别给我们,这是分用。快递员就充当了传输层的角色。
-
传输层对收到的报文进行 差错检测
网络层学过首部校验和,但是首部校验和只是校验首部,没有校验数据部分。因此需要传输层 对数据进行检错。可以看出,传输层和网络层一起实现了可靠传输。但是传输层不一定实现可靠传输,要看是哪种协议
-
传输层的两种协议:TCP、UDP
2)两个协议
打油诗:传输层有两个好兄弟,大哥TCP和二弟UDP,大哥靠谱,二弟不靠谱。
-
面向连接的传输控制协议TCP
- 传送数据之前必须建立连接,数据传送结束后要释放连接
- 不提供广播或多播服务
- 由于TCP要提供可靠的面向连接的传输服务,因此不可避免增加了许多开销:确认、流量控制、计时器及连接管理等
- 可靠,面向连接,时延大,适用于大文件
-
无连接的用户数据报协议UDP
- 传送数据之前不需要建立连接,收到UDP报文后也不需要给出任何确认
- 不可靠,无连接,时延小,适用于小文件。例如微信发信息
1.2、传输层的寻址与端口
-
复用:应用层所有的应用进程都可以通过传输层,再传输到网络层
-
分用:传输层从网络层收到数据后,交付给指明的应用进程
-
通信过程分析
如果要发送数据给一个主机,只需要知道它的IP地址,就能寻找到主机所在的网络;进入所在网络后可以根据MAC地址定位到具体的主机(网络层);找到主机后,还需要找到主机中接收该数据的进程(传输层)。如何找到该进程呢?——根据 端口(逻辑端口)
-
端口:端口是传输层的 SAP(服务访问点/接口),标识主机中的应用进程
该端口为逻辑端口/软件端口,要和硬件端口区分开,像路由器、交换机这种直接插上去的端口称为硬件端口
-
端口号:端口由具体的数字标识叫做端口号,端口号 只有本地意义,在因特网中不同计算机的相同端口是没有联系的
-
端口号范围
端口号长度为16bit,能表示2^16=65536个不同的端口号
TFTP( 简单文件传输协议:Trivial):69岁退休
SNMP(简单网络管理协议:Simple Network Management Protocol):在161医院要死了。
- 套接字
- 在网络中采用发送方和接收方的套接字组合来识别端点,套接字 唯一标识 了网络中的一个主机(IP地址标识网络中每一个主机)和它上面的一个进程(端口号标识主机中的进程)
- 套接字Socket = ( 主机IP地址,端口号):根据IP地址可以找到主机(MAC地址(标识数据链路层上每一个设备/网卡)也是根据IP地址找到的),根据端口号可以找到主机中的具体进程
2、UDP协议
2.1、UDP数据报
UDP(User Datagram Protocol):用户数据报协议
1)UDP概述
UDP只在IP数据报服务之上增加了很少功能,即 复用分用 和 差错检测 功能
UDP的主要特点:
-
UDP是无连接的,减少开销和发送数据之前的时延
-
UDP使用 最大努力交付,即 不保证可靠交付(由应用层保证可靠交付)
-
UDP是 面向报文 的,适合一次性传输 少量数据 的网络应用
应用层给UDP多长的报文,UDP就照样发送,即一次发一个完整报文。在传输层称为报文段。如果数据太大,在传给网络层时还要分片,所以适合一次传输少量数据
-
UDP 无拥塞控制,适合很多 实时应用
-
UDP首部开销小,首部大小为 8B。而TCP首部为 20B</