目录
1、OSI模型、DoD模型和TCP/IP协议
2、传输层和网络层的区别
3、传输层的主要功能
4、端口号和端口号的划分规则
传输层位于网络层之上,负责在网络中提供端到端的数据传输服务。传输层主要解决了应用程序之间的通信需求,为上层应用提供可靠的数据传输和错误控制。
在传输层中,最常用的两个协议是TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)。
TCP(传输控制协议):
UDP(用户数据报协议):
除了TCP和UDP,还有一些其他传输层协议,如SCTP(Stream Control Transmission Protocol)和DCCP(Datagram Congestion Control Protocol)。它们在特定的应用场景下提供了更多的功能和性能优化。
传输层的主要功能是将数据从源主机传输到目标主机,确保数据的可靠性、有序性和流量控制。通过传输层协议,应用程序可以进行数据的可靠传输、错误控制和会话管理,从而实现端到端的通信。
OSI模型(Open Systems Interconnection model)是一个用于理解和描述计算机网络功能的参考模型。该模型将计算机网络的功能分解为七个层次,每个层次都负责特定的任务,从物理连接到应用程序之间的通信。//七层参考模型
DoD模型(Department of Defense)是一种类似于TCP/IP协议栈的网络协议模型。DoD模型是美国国防部为军事应用开发的一种协议架构,后来成为了TCP/IP协议的基础。//四层模型
OSI模型和DOD模型(美国国防部模型)对比图:
TCP/IP协议(Transmission Control Protocol/Internet Protocol):TCP/IP协议栈包含一系列的协议,用于在计算机网络中实现数据的传输、路由和通信。它是互联网的核心协议套件,广泛应用于局域网、广域网和互联网环境中。// 运用于互联网的核心协议
TCP/IP协议由两个主要的协议组成:
除了TCP和IP,TCP/IP协议栈还包括其他一些重要的协议,如UDP(用户数据报协议),用于无连接的数据传输;ICMP(Internet Control Message Protocol),用于网络错误检测和通知;ARP(地址解析协议),用于将IP地址映射到物理MAC地址等。
TCP/IP协议是互联网通信的基础,它提供了一种灵活而可靠的机制,使得不同类型的计算机和设备能够在网络中相互通信和交换数据。几乎所有的现代网络都使用TCP/IP协议作为通信的基础。
下图为查看TCP建立的会话连接演示结果:
传输层和网络层是计算机网络中的两个重要层次,它们在网络协议栈中扮演不同的角色和提供不同的功能。
传输层(Transport Layer)位于网络层之上,负责在网络中提供端到端的数据传输服务。它主要解决应用程序之间的通信需求,为上层应用提供可靠的数据传输和错误控制。传输层的两个常用协议是TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)。//可靠传输和差错校验:传输层提供进程和进程的逻辑通信
网络层(Network Layer)位于传输层之下,是网络协议栈的下一层。它负责在不同的网络之间进行数据包的传输和路由选择。网络层使用IP(Internet Protocol)协议来寻址和路由数据包,以确保数据从源主机传输到目标主机。//路由选择:网络层提供主机到主机的逻辑通信
以下是传输层和网络层的一些区别:
总的来说,传输层关注应用程序之间的通信,提供可靠的数据传输服务,而网络层关注网络间的数据传输和路由选择,确保数据包能够从源主机到目标主机。这两个层次共同协同工作,为计算机网络的通信提供了基础和支持。
传输层提供应用进程的逻辑通信:// 不同协议的作用范围不一样
传输层主要负责在源主机和目标主机之间提供可靠的数据传输服务。传输层的主要功能包括以下几个方面:
传输层的主要功能是提供可靠的数据传输、流量控制、拥塞控制和多路复用等服务,以确保数据能够高效、可靠地在源主机和目标主机之间传输。
(1)端口号的作用:
端口号在计算机网络中扮演着重要的角色,它具有以下几个用途:
服务器通过网卡侦听端口,根据端口号来识别访问的应用程序,网卡也可以通过限制端口号来过滤访问数据。
通过netstat命令,查看服务器监听的端口示例:
netstat -a 查看服务器监听的端口
(2)端口号的划分规则
端口号是用于标识应用程序或服务的通信端点。在TCP/IP协议栈中,端口号是一个16位的无符号整数,范围从0到65535。端口号的划分规则如下:
1)预留端口(Well-known Ports):
2)注册端口(Registered Ports):
3)动态/私有端口(Dynamic/Private Ports):
需要注意的是,这些端口号的划分规则是约定俗成的,并不是强制性的。有些特定的应用程序或协议可能会使用非标准的端口号,但为了避免冲突和提高互操作性,遵循标准的端口号规则是一个良好的实践。
此外,端口号的分配和管理是由IANA(Internet Assigned Numbers Authority)负责。IANA维护了一个端口号注册表,记录了分配给各个协议和应用程序的端口号信息。
(3)常见的应用层协议及其默认端口号列表
以下是一些常见的应用层协议及其默认端口号列表:
这些是一些常见的应用层协议及其默认端口号。需要注意的是,这些是默认端口号,实际应用中可能会根据需求进行自定义配置。当与这些协议进行通信时,通常使用其默认端口号,但也可以通过配置更改端口号。
如图,TCP/UDP协议+端口号定位一个应用层协议,其中DNS域名解析比较特殊,它可以使用TCP协议+53端口,也可以使用UDP协议+53端口,但是绝大多数情况下使用的是UDP协议。
下边,通过抓包来验证一下DNS域名解析的上述结论
然后,通过下边这个图示,可以使我们对层之间的关系认知更加清晰:
补充:什么是NSAP(网络服务接入点)
NSAP(Network Service Access Point)是一种网络地址方案,用于在OSI(开放系统互连)参考模型中标识和定位网络节点。NSAP提供了全局唯一的地址空间,以便在OSI网络中唯一标识和寻址设备或服务。
NSAP地址由两部分组成:
NSAP地址的长度可变,通常是20个字节(160位),但也可以是更长的变体。
NSAP的设计目标是提供全球唯一的地址空间,并允许层次化的命名结构。它在OSI参考模型的网络层(第3层)使用,用于在OSI网络中的路由和寻址过程中定位节点。
然而,在实际的互联网中,NSAP并不常用。IP(Internet Protocol)地址已经成为主要的寻址方案。NSAP在一些特定的电信网络和研究领域中仍然存在,但对于大多数互联网应用而言,并不需要直接使用NSAP地址。