《VMware 网络技术:原理与实践》—— 2.4 TCP/IP模型

简介:

本节书摘来自华章出版社《VMware 网络技术:原理与实践》一 书中的第2章,第2.4节,作者:(美)Christopher Wahl Steven Pantol,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.4 TCP/IP模型

和OSI模型类似,TCP/IP模型使用分层方法分解和隔离功能,但是用4层代替7层——分别是应用层、传输层、互联网层和网络接口层,如图2.3所示。

2b23e941b61692c037004b5c58e1993a19fc4594

和OSI模型一样,我们从下往上研究各个层次。

2.4.1 网络接口层

网络接口层定义了主机与网络的连接方法,包括物理连接本身和用于数据传输的物理介质细节。有些令人困惑的是,以太网既是关键的网络接口协议,也是我们所关心的物理介质。
以太网将在第3章中详细介绍。

2.4.2 互联网层

互联网层定义了整个网络中编址和数据交付的机制。在这一层中运作的协议包括IP、ARP、ICMP和IGMP。
互联网协议(IP)定义了网络设备分配的逻辑地址。这一地址由网络地址和主机地址组成。网络地址用于将数据发往合适的目标网络,主机地址唯一标识目标网络中的主机。这些地址采用小数点格式,如192.168.1.100 ,你在以前可能已经遇见过,并且无数次地将它们分配给不同的设备。每个IP地址都定义一个子网掩码,可将地址解析为网络和主机部分。
地址解析协议(ARP)用于将IP地址转换为硬件地址,以将帧发往下一跳设备或者最终目标设备。ARP请求通过本地网络发送,询问那个网络接口有某个特定的IP地址。具有该IP地址的网卡发送ARP响应,包含了其硬件地址。
互联网控制消息协议(ICMP)用于控制通过网络的数据流、报告错误、进行诊断。最常用的ICMP命令是ping和tracert,用于验证连接性、确定主机之间的路径。
ICMP允许一台主机同时向许多目标发送数据。这称为组播(multicasting),这超出了本书讨论的范围,在此不做介绍。
互联网层将在第5章中更详细地研究。

2.4.3 传输层

传输层定义了主机间的连接类型,以及确认信息是否发送和如何发送。从使用的角度,该层只有两个协议可供选择:传输控制协议(TCP)和用户数据报协议(UDP)。
TCP是面向连接的协议,它建立、管理和终止网络连接。TCP保证数据的交付,包括流控、错误校验的支持,以及通过确认和重传恢复丢失的数据。
相反,UDP是无连接的协议,UDP数据不需要错误校正或者流控,因此不需要建立网络连接即可快速传输,也没有对数据到达指定目标作出确认。这听起来很糟糕,但是实际上并非如此,因为UDP对于流媒体等应用非常有用,在这种应用中数据的丢失总比重传丢失的包而引起延迟更好,在其他情况下,错误校正可以用更高层的应用,更有效地完成。

2.4.4 应用层

TCP/IP模型的应用层定义了端点运行的软件所使用的服务。当应用程序需要访问底层网络时,这一层通过将其转换为网络可传输格式处理请求。 这时,通过合适的端口建立连接。
端口是分配给应用程序或者协议的一类地址。TCP/UDP有65 536个端口。?互联网名称与数字地址分配机构(ICANN)将端口1~1023保留给著名的应用程序。端口1024~49151被称作“注册”端口,它们也在ICANN注册。端口49152~65535是私有(动态)端口,由各种应用根据需要使用。
端口0
如果你注意力很集中,可能会发现我们说有65 536个端口,然而分类中只有65 535个。从技术上说,保留端口的范围是0~1023,但是端口0被用于特定的目的,不被用于传递流量。端口0在Unix套接字编程中被作为一个快捷方式使用,请求端口0时,系统指定下一个可用的动态端口。这使编程人员省去了硬编码端口号或者编写代码确定可用动态端口的麻烦。
运行于这一层的协议包括用于请求和提供网页的HTTP(端口80)、用于文件传输的FTP(端口20和21)以及用于电子邮件的SMTP(端口25)。端口及其分配的完整列表可以在www.iana.org/assignments/port-numbers上找到。

相关文章
|
22天前
|
机器学习/深度学习 自然语言处理 数据处理
大模型开发:描述长短期记忆网络(LSTM)和它们在序列数据上的应用。
LSTM,一种RNN变体,设计用于解决RNN处理长期依赖的难题。其核心在于门控机制(输入、遗忘、输出门)和长期记忆单元(细胞状态),能有效捕捉序列数据的长期依赖,广泛应用于语言模型、机器翻译等领域。然而,LSTM也存在计算复杂度高、解释性差和数据依赖性强等问题,需要通过优化和增强策略来改进。
|
2月前
|
虚拟化
vmware克隆虚拟机后没有ip地址的问题
解决vmware克隆虚拟机后没有内网ip的问题
|
2月前
|
机器学习/深度学习 计算机视觉 网络架构
【GhostNet】复现CVPR2020| 保证模型轻量化的同时,提升网络的性能表现
【GhostNet】复现CVPR2020| 保证模型轻量化的同时,提升网络的性能表现
38 0
【GhostNet】复现CVPR2020| 保证模型轻量化的同时,提升网络的性能表现
|
2月前
|
网络协议 安全 前端开发
网络技术基础(2)——网络参考模型
【2月更文挑战第6天】网络基础笔记
|
2月前
|
Java
网络 I/O:单 Selector 多线程(单线程模型)
网络 I/O:单 Selector 多线程(单线程模型)
|
2月前
|
存储 消息中间件 监控
一文搞懂常见的网络I/O模型
一文搞懂常见的网络I/O模型
38 0
|
28天前
|
机器学习/深度学习 算法框架/工具 Python
如何使用Python的Keras库构建神经网络模型?
如何使用Python的Keras库构建神经网络模型?
7 0
|
29天前
|
机器学习/深度学习 编解码 Unix
超分数据集概述和超分经典网络模型总结
超分数据集概述和超分经典网络模型总结
20 1
|
1月前
|
网络协议 前端开发 数据安全/隐私保护
一文搞懂OSI参考模型与TCP/IP
一文搞懂OSI参考模型与TCP/IP
|
1月前
|
机器学习/深度学习 PyTorch TensorFlow
python实现深度学习模型(如:卷积神经网络)。
【2月更文挑战第14天】【2月更文挑战第38篇】实现深度学习模型(如:卷积神经网络)。