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地址,端口号)