计算机网络11:传输层详解

目录

1、OSI模型、DoD模型和TCP/IP协议

2、传输层和网络层的区别

3、传输层的主要功能

4、端口号和端口号的划分规则


        传输层位于网络层之上,负责在网络中提供端到端的数据传输服务。传输层主要解决了应用程序之间的通信需求,为上层应用提供可靠的数据传输和错误控制。

        在传输层中,最常用的两个协议是TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)。

        TCP(传输控制协议):

  • 可靠性:TCP提供可靠的数据传输,使用序列号、确认和重传等机制来确保数据的完整性和可靠性。
  • 有序性:TCP保持数据的发送和接收顺序,确保接收端按照正确的顺序重组数据。
  • 流量控制:TCP使用滑动窗口机制来控制数据的发送速率,确保发送方和接收方之间的数据流平衡。
  • 拥塞控制:TCP使用拥塞窗口和拥塞避免算法来控制数据的发送速率,避免网络拥塞的发生。
  • 面向连接:TCP是一种面向连接的协议,使用三次握手建立连接,四次握手关闭连接

        UDP(用户数据报协议):

  • 无连接性:UDP是一种无连接的协议,不需要在通信之前建立连接,数据包之间相互独立。
  • 无可靠性保证:UDP不提供可靠性保证,数据包的传输可能丢失、重复或乱序,适用于一些实时性要求较高、对可靠性要求较低的应用场景
  • 较低的开销:UDP的开销相对较小,不需要像TCP那样维护连接状态和控制信息,传输速度较快。

        除了TCP和UDP,还有一些其他传输层协议,如SCTP(Stream Control Transmission Protocol)和DCCP(Datagram Congestion Control Protocol)。它们在特定的应用场景下提供了更多的功能和性能优化。

        传输层的主要功能是将数据从源主机传输到目标主机,确保数据的可靠性、有序性和流量控制。通过传输层协议,应用程序可以进行数据的可靠传输、错误控制和会话管理,从而实现端到端的通信。

1、OSI模型、DoD模型和TCP/IP协议

        OSI模型(Open Systems Interconnection model)是一个用于理解和描述计算机网络功能的参考模型。该模型将计算机网络的功能分解为七个层次,每个层次都负责特定的任务,从物理连接到应用程序之间的通信。//七层参考模型

        DoD模型(Department of Defense)是一种类似于TCP/IP协议栈的网络协议模型。DoD模型是美国国防部为军事应用开发的一种协议架构,后来成为了TCP/IP协议的基础。//四层模型

        OSI模型和DOD模型(美国国防部模型)对比图:

计算机网络11:传输层详解_第1张图片

        TCP/IP协议(Transmission Control Protocol/Internet Protocol):TCP/IP协议栈包含一系列的协议,用于在计算机网络中实现数据的传输、路由和通信。它是互联网的核心协议套件,广泛应用于局域网、广域网和互联网环境中。// 运用于互联网的核心协议

        TCP/IP协议由两个主要的协议组成:

  1. TCP(传输控制协议):TCP是一种面向连接的、可靠的传输协议。它提供了数据的可靠传输、有序性、流量控制和拥塞控制等功能。TCP将数据划分为称为数据段(Segment)的小块,并通过确认、重传和滑动窗口等机制来确保数据的可靠性和有序性。// 传输层协议
  2. IP(互联网协议):IP是一种网络层协议,负责在网络中传输数据包。它提供了数据包的分组、路由选择和寻址等功能。IP协议使用IP地址来标识网络中的设备,通过路由选择算法将数据包从源设备传输到目标设备。// 网络层协议

        除了TCP和IP,TCP/IP协议栈还包括其他一些重要的协议,如UDP(用户数据报协议),用于无连接的数据传输;ICMP(Internet Control Message Protocol),用于网络错误检测和通知;ARP(地址解析协议),用于将IP地址映射到物理MAC地址等。

        TCP/IP协议是互联网通信的基础,它提供了一种灵活而可靠的机制,使得不同类型的计算机和设备能够在网络中相互通信和交换数据。几乎所有的现代网络都使用TCP/IP协议作为通信的基础

        下图为查看TCP建立的会话连接演示结果:

计算机网络11:传输层详解_第2张图片

2、传输层和网络层的区别

        传输层和网络层是计算机网络中的两个重要层次,它们在网络协议栈中扮演不同的角色和提供不同的功能。

        传输层(Transport Layer)位于网络层之上,负责在网络中提供端到端的数据传输服务。它主要解决应用程序之间的通信需求,为上层应用提供可靠的数据传输和错误控制。传输层的两个常用协议是TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)。//可靠传输和差错校验:传输层提供进程和进程的逻辑通信

        网络层(Network Layer)位于传输层之下,是网络协议栈的下一层。它负责在不同的网络之间进行数据包的传输和路由选择。网络层使用IP(Internet Protocol)协议来寻址和路由数据包,以确保数据从源主机传输到目标主机。//路由选择:网络层提供主机到主机的逻辑通信

        以下是传输层和网络层的一些区别:

  1. 功能:传输层提供端到端的数据传输服务,确保数据的可靠性、有序性和流量控制。网络层负责数据包的传输和路由选择,将数据从源主机传输到目标主机。
  2. 位置:传输层位于网络层之上,与应用程序直接交互,提供应用程序之间的通信服务。网络层位于传输层之下,负责处理网络间的数据传输。
  3. 协议:传输层最常用的协议是TCP和UDP,它们在传输数据时提供了不同的特性。网络层主要使用IP协议来寻址和路由数据包。
  4. 数据单元:传输层使用数据段(Segment)作为传输的单位,它将应用程序的数据划分为较小的数据段进行传输。网络层使用数据包(Packet)作为传输的单位,将数据划分为数据包并添加网络头部信息。
  5. 端到端通信:传输层提供了端到端的通信机制,确保数据在源和目标之间可靠地传输。网络层则负责将数据包从源网络传输到目标网络,可能经过多个中间节点进行路由选择。

        总的来说,传输层关注应用程序之间的通信,提供可靠的数据传输服务,而网络层关注网络间的数据传输和路由选择,确保数据包能够从源主机到目标主机。这两个层次共同协同工作,为计算机网络的通信提供了基础和支持。

计算机网络11:传输层详解_第3张图片

        传输层提供应用进程的逻辑通信:// 不同协议的作用范围不一样

计算机网络11:传输层详解_第4张图片

3、传输层的主要功能

        传输层主要负责在源主机和目标主机之间提供可靠的数据传输服务。传输层的主要功能包括以下几个方面:

  1. 数据分段与重组:传输层将从应用层接收到的数据进行分段,每个分段被封装在传输层的报文段中。在目标主机上,传输层负责将接收到的报文段重组成完整的数据。
  2. 可靠数据传输:传输层通过使用序列号、确认应答和超时重传等机制来确保数据的可靠传输。这意味着传输层可以检测并纠正数据在传输过程中可能发生的错误或丢失。//差错检测
  3. 流量控制:传输层通过流量控制机制确保源主机发送的数据量不会超过目标主机的处理能力。这样可以避免目标主机因为接收速度跟不上而导致数据丢失或拥塞。
  4. 拥塞控制:传输层使用拥塞控制机制来避免网络拥塞的发生。通过监测网络的负载情况并相应地调整发送速率,传输层可以确保网络资源的合理利用,提高整体性能。
  5. 多路复用与多路分解:传输层可以同时支持多个应用程序的数据传输。通过使用端口号标识不同的应用程序,传输层可以将来自不同应用程序的数据区分开来,并将其传送到正确的目标应用程序。

        传输层的主要功能是提供可靠的数据传输、流量控制、拥塞控制和多路复用等服务,以确保数据能够高效、可靠地在源主机和目标主机之间传输。

4、端口号和端口号的划分规则

        (1)端口号的作用:

        端口号在计算机网络中扮演着重要的角色,它具有以下几个用途:

  1. 标识应用程序或服务:端口号用于标识特定的应用程序或服务。通过使用不同的端口号,网络中的设备可以将传入的数据包路由到正确的应用程序或服务上。例如,Web服务器使用端口号80,SMTP服务器使用端口号25,SSH服务器使用端口号22等。
  2. 多路复用与多路分解:端口号允许同一台计算机上的多个应用程序同时进行网络通信。每个应用程序使用不同的端口号来进行通信,这样网络层可以将传入的数据包正确地传递给相应的应用程序。通过端口号的多路复用和多路分解,多个应用程序可以共享网络连接,实现并发的数据传输。
  3. 进程间通信:端口号也可以用于进程间的通信。在同一台计算机上,不同的进程可以通过使用不同的端口号进行数据传输。这种进程间的通信方式可以是本地进程间的通信,也可以是分布式系统中的通信。
  4. 安全性与访问控制:端口号可以用于实施访问控制和安全策略。通过限制特定端口的访问权限,网络管理员可以控制网络中的流量和服务。防火墙和网络安全设备可以根据端口号来检查和过滤传入和传出的数据流量,以增加网络的安全性。

        服务器通过网卡侦听端口,根据端口号来识别访问的应用程序,网卡也可以通过限制端口号来过滤访问数据。

计算机网络11:传输层详解_第5张图片

        通过netstat命令,查看服务器监听的端口示例:

netstat -a 查看服务器监听的端口

计算机网络11:传输层详解_第6张图片

        (2)端口号的划分规则

        端口号是用于标识应用程序或服务的通信端点。在TCP/IP协议栈中,端口号是一个16位的无符号整数,范围从0到65535。端口号的划分规则如下:

        1)预留端口(Well-known Ports):

  • 范围:从0到1023。
  • 这些端口号被公认的标准化协议或服务预留使用
  • 例如,端口号80被HTTP协议使用,端口号22被SSH协议使用。

        2)注册端口(Registered Ports):

  • 范围:从1024到49151。
  • 这些端口号用于被注册的应用程序或服务
  • 注册端口可以被分配给特定的应用程序或服务,但并不具有与预留端口相同的标准化地位。

        3)动态/私有端口(Dynamic/Private Ports):

  • 范围:从49152到65535。
  • 这些端口号用于临时分配给客户端应用程序或为非特定应用程序或服务使用
  • 客户端应用程序在与服务器进行通信时,通常会从动态/私有端口范围中选择一个空闲端口。

        需要注意的是,这些端口号的划分规则是约定俗成的,并不是强制性的。有些特定的应用程序或协议可能会使用非标准的端口号,但为了避免冲突和提高互操作性,遵循标准的端口号规则是一个良好的实践。

        此外,端口号的分配和管理是由IANA(Internet Assigned Numbers Authority)负责。IANA维护了一个端口号注册表,记录了分配给各个协议和应用程序的端口号信息。

        (3)常见的应用层协议及其默认端口号列表

        以下是一些常见的应用层协议及其默认端口号列表:

  1. HTTP(Hypertext Transfer Protocol):默认端口号80(HTTP)和443(HTTPS)
  2. FTP(File Transfer Protocol):默认端口号21(控制连接)和20(数据连接)。
  3. SSH(Secure Shell):默认端口号22。
  4. SMTP(Simple Mail Transfer Protocol):默认端口号25。
  5. POP3(Post Office Protocol version 3):默认端口号110。
  6. IMAP(Internet Message Access Protocol):默认端口号143(IMAP)和993(IMAPS)。
  7. DNS(Domain Name System):默认端口号53。
  8. Telnet:默认端口号23。
  9. SNMP(Simple Network Management Protocol):默认端口号161。
  10. DHCP(Dynamic Host Configuration Protocol):默认端口号67(服务器)和68(客户端)。
  11. NTP(Network Time Protocol):默认端口号123。
  12. HTTPS(HTTP Secure):默认端口号443。

        这些是一些常见的应用层协议及其默认端口号。需要注意的是,这些是默认端口号,实际应用中可能会根据需求进行自定义配置。当与这些协议进行通信时,通常使用其默认端口号,但也可以通过配置更改端口号。

        如图,TCP/UDP协议+端口号定位一个应用层协议,其中DNS域名解析比较特殊,它可以使用TCP协议+53端口,也可以使用UDP协议+53端口,但是绝大多数情况下使用的是UDP协议

计算机网络11:传输层详解_第7张图片

        下边,通过抓包来验证一下DNS域名解析的上述结论

计算机网络11:传输层详解_第8张图片

        然后,通过下边这个图示,可以使我们对层之间的关系认知更加清晰:

计算机网络11:传输层详解_第9张图片

        补充:什么是NSAP(网络服务接入点)

        NSAP(Network Service Access Point)是一种网络地址方案,用于在OSI(开放系统互连)参考模型中标识和定位网络节点。NSAP提供了全局唯一的地址空间,以便在OSI网络中唯一标识和寻址设备或服务。

        NSAP地址由两部分组成:

  1. DSP(Data Structure Portion):DSP是NSAP地址的前缀部分,用于指示网络的组织结构和管理员分配的地址空间。它包含了用于标识特定组织或机构的信息。
  2. IDP(Initial Domain Part):IDP是NSAP地址的后缀部分,用于标识特定设备或服务。它包含了用于唯一标识设备或服务的信息。

        NSAP地址的长度可变,通常是20个字节(160位),但也可以是更长的变体。

        NSAP的设计目标是提供全球唯一的地址空间,并允许层次化的命名结构。它在OSI参考模型的网络层(第3层)使用,用于在OSI网络中的路由和寻址过程中定位节点。

        然而,在实际的互联网中,NSAP并不常用。IP(Internet Protocol)地址已经成为主要的寻址方案。NSAP在一些特定的电信网络和研究领域中仍然存在,但对于大多数互联网应用而言,并不需要直接使用NSAP地址。

你可能感兴趣的:(计算机网络原理,传输层,1024程序员节,计算机网络原理)