1. 传输层概述

传输层是只有主机才有的层次.

传输层功能:

  1. 传输层提供进程和进程之间的逻辑通信。

    网络层提供主机到主机之间的逻辑通信。

  2. 复用和分用

    复用:不同的进程可以使用同一个传输层协议。

    分用:传输层收到报文后,可以将报文的有效载荷交付给对应的进程。

  3. 传输层对收到的报文进行差错检测。网络层不需要进程差错检测,只需要检查首部信息是否正确即可。

2. TCP,UDP协议概述

传输层有两个核心协议:

  1. TCP:面向连接的传输控制协议。

    传送数据之前必须建立连接,数据传送结束后要释放连接。
    不提供广播或多播服务。
    由于TCP要提供可靠的面向连接的传输服务,因此不可避免增加了许多开销
    eg:确认、流量控制、计时器及连接管理等。

  2. UDP:无连接的用户数据报协议。

    传送数据之前不需要建立连接,收到UDP报文后也不需要给出任何确认。

TCP特点:可靠,面向连接,时延大,适用于大文件。
UDP特点:不可靠,无连接,时延小,适用于小文件。

3. 传输层的寻址与端口

主要针对的是传输层复用和分用问题。

  • 复用:应用层所有的应用进程都可以通过传输层再传输到网络层。
  • 分用:传输层从网络层收到数据后交付指明的应用进程。

端口(逻辑端口):标识主机的应用进程位置。

端口号只在本地有意义,不同主机的相同端口号没有意义。

端口号有16bit,能表示65536个端口号。

端口号按照范围分成两类:

  1. 服务端使用端口号。

    熟知端口号 1~1023:给TCP/IP一些重要的程序使用的端口号,让所有用户都知道。
    登记端口号 1024~49151

  2. 客户端使用端口号 49152~65536:客户进程运行时动态选择。

比较重要的熟知端口号:

FTP SMTP DNS TFTP HTTP SNMP TELNET
21 25 53 69 80 161 23

在网络中采用发送方和接收方的套接字组合来识别端点,套按字唯一标识了网络中的一个主机和它上面的一个进程。
套接字socket=(主机IP地址+端口号)

Linux套接字网络服务器开发复习链接

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐