5.1传输层
5.1传输层
- 传输层概述
- TCP协议
- 可靠传输
- 流量控制
- 拥塞控制
- UDP协议
- 端口号
- 套接字
传输层概述
为应用层提供通信服务,使用网络层的服务
(注:通信的实质主机间进程的相互通信。)
功能
- 提供进程与进程之间的逻辑通信
- 复用和分用
- 传输层对收到的报文进行差错检测
传输层两种协议
传输层有两个好兄弟大哥TCP和二弟UDP。
大哥靠谱,二弟不靠谱
面向连接的传输控制协议TCP
- 传送数据之前必须建立连接,数据传送结束后要释放连接。
- 不提供广播或多播服务。
- 由于TCP要提供可靠的面向连接的传输服务,因此不可避免增加了许多开销:确认、流量控制、计时器及连接管理等。
- 可靠,面向连接,时延大,适用于大文件。
无连接的用户数据报协议UDP
- 传送数据之前不需要建立连接,收到UDP报文后也不需要给出任何确认。
- 不可靠,无连接,时延小,适用于小文件。
传输层的寻址
复用:应用层所有的应用进程都可以通过传输层再传输到网络层。 (每个人都可以写信,交给邮差)
分用:传输层从网络层收到数据后交付指明的应用进程。 (邮差会分发邮件)
端口
- 端口是传输层的SAP,标识主机中的应用进程。
- 【 服务访问点 (service access point, SAP):实际就是逻辑接口,是一个层次系统的上下层之间进行通信的接口,N层的SAP就是N+1层可以访问N层服务的地方。】
- 端口号只有本地意义,在因特网中不同计算机的相同端口是没有联系的。
- 端口号长度为16 bit,能表示65536个不同的端口号
端口号
- 服务端使用
- 熟知端口号:给TCP/IP最重要的一些应用程序,让所有用户都知道。0~1023
- 登记端口号:也就是为不被人熟知的应用程序准备的端口号:1024~49151
- 客户端使用
- 仅在客户进程运行时才动态选择的端口号:49152~65535
以上是需要记住的熟知端口号,就像谈恋爱:21岁(FTP)发现了TA,23岁开始(TELNET)谈恋爱,25岁吵架,(SMTP)删好友,结果53岁了还在(DNS)打电话,最后80岁了(HTTP)还要再见。
套接字
在网络中采用发送方和接收方的套接字组合来识别端点,套接字唯一标识了网络中的一个主机和它上面的一个进程。
套接字(Socket) = (主机IP地址,端口号)