Linux 网络编程基础——网络模型

网络模型

  • 网络模型
    • 1. OSI七层模型
      • 1. 物理层(Physical Layer)
      • 2. 数据链路层(Data Link Layer)
      • 3. 网络层(Network Layer)
      • 4. 传输层(Transport Layer)
      • 5. 会话层(Session Layer)
      • 6. 表示层(Presentation Layer)
      • 7. 应用层(Application Layer)
    • 2. TCP/IP模型
      • 1. 网络接口层(Network Interface Layer)
      • 2. 互联网层(Internet Layer)
      • 3. 传输层(Transport Layer)
      • 4. 应用层(Application Layer)
    • 总结
      • OSI七层模型
      • TCP/IP模型
    • 3. TCP / IP 模型补充
    • TCP/IP模型细节
      • 1. 网络接口层(Network Interface Layer)
      • 2. 互联网层(Internet Layer)
      • 3. 传输层(Transport Layer)
      • 4. 应用层(Application Layer)
      • 额外注意事项

网络模型

1. OSI七层模型

OSI(Open Systems Interconnection,开放系统互连)模型是由ISO(International Organization for Standardization,国际标准化组织)制定的一个标准模型,用于描述网络通信的各个层次。OSI模型将网络通信分为七层,每一层都有特定的功能和作用。

1. 物理层(Physical Layer)

  • 功能:负责比特流的传输,定义物理设备标准,如电缆、插头、接收器等。
  • 设备:网线、光纤、电缆、集线器、调制解调器。
  • 协议:不涉及特定协议,而是涉及物理媒体标准,如RS-232。

2. 数据链路层(Data Link Layer)

  • 功能:提供节点到节点的数据传输,负责组帧、MAC地址的寻址和差错检测。
  • 设备:交换机、网桥。
  • 协议:以太网(Ethernet)、PPP(Point-to-Point Protocol)、HDLC(High-Level Data Link Control)。

3. 网络层(Network Layer)

  • 功能:负责数据包的路由选择和转发,提供逻辑地址(如IP地址)。
  • 设备:路由器。
  • 协议:IP(Internet Protocol)、ICMP(Internet Control Message Protocol)、IGMP(Internet Group Management Protocol)。

4. 传输层(Transport Layer)

  • 功能:提供端到端的可靠传输,负责流量控制、错误校验和数据分段重组。
  • 协议:TCP(Transmission Control Protocol)、UDP(User Datagram Protocol)。

5. 会话层(Session Layer)

  • 功能:管理会话或连接,负责建立、维护和终止会话。
  • 协议:NetBIOS(Network Basic Input/Output System)、RPC(Remote Procedure Call)。

6. 表示层(Presentation Layer)

  • 功能:处理数据格式的转换、加密和解密、数据压缩。
  • 协议:JPEG、MPEG、SSL(Secure Sockets Layer)。

7. 应用层(Application Layer)

  • 功能:直接为用户和应用程序提供服务,负责网络应用程序的接口和协议。
  • 协议:HTTP(HyperText Transfer Protocol)、FTP(File Transfer Protocol)、SMTP(Simple Mail Transfer Protocol)、DNS(Domain Name System)。

2. TCP/IP模型

TCP/IP模型是实际应用中广泛采用的网络模型,简化了OSI模型,将网络通信分为四层:网络接口层、互联网层、传输层和应用层。每一层都有特定的功能和协议。

1. 网络接口层(Network Interface Layer)

  • 功能:负责物理设备上的数据传输,包括网卡、交换机等。
  • 设备:网线、交换机、网桥。
  • 协议:以太网(Ethernet)、ARP(Address Resolution Protocol)、PPP(Point-to-Point Protocol)。

2. 互联网层(Internet Layer)

  • 功能:负责主机间的数据传输和路由选择,提供逻辑地址(如IP地址)。
  • 设备:路由器。
  • 协议:IP(Internet Protocol)、ICMP(Internet Control Message Protocol)、ARP(Address Resolution Protocol)、RARP(Reverse Address Resolution Protocol)。

3. 传输层(Transport Layer)

  • 功能:提供端到端的可靠传输,负责流量控制、错误校验和数据分段重组。
  • 协议:TCP(Transmission Control Protocol)、UDP(User Datagram Protocol)。

4. 应用层(Application Layer)

  • 功能:直接为用户和应用程序提供服务,负责网络应用程序的接口和协议。
  • 协议:HTTP(HyperText Transfer Protocol)、FTP(File Transfer Protocol)、SMTP(Simple Mail Transfer Protocol)、DNS(Domain Name System)、Telnet、SSH(Secure Shell)。

总结

OSI七层模型

  1. 物理层:比特流传输,物理设备标准。
  2. 数据链路层:节点到节点的数据传输,MAC地址寻址。
  3. 网络层:数据包路由选择和转发,逻辑地址(IP地址)。
  4. 传输层:端到端的可靠传输,流量控制和错误校验。
  5. 会话层:管理会话或连接。
  6. 表示层:数据格式转换、加密解密、数据压缩。
  7. 应用层:为用户和应用程序提供服务。

TCP/IP模型

  1. 网络接口层:物理设备上的数据传输。
  2. 互联网层:主机间的数据传输和路由选择。
  3. 传输层:端到端的可靠传输。
  4. 应用层:为用户和应用程序提供服务。

理解这两个模型及其各层的功能和协议,是掌握网络通信的基础。它们帮助我们分清网络通信的不同层次,明确每一层的职责,便于排查网络问题和设计网络应用。

3. TCP / IP 模型补充

TCP/IP模型细节

1. 网络接口层(Network Interface Layer)

功能

  • 负责物理设备上的数据传输。
  • 处理比特流的传输,包括物理连接的建立、维护和断开。

细节

  • 链路层协议:以太网(Ethernet)、Wi-Fi、PPP等协议在这一层运行。
  • MAC地址:每个网络接口都有一个唯一的物理地址(MAC地址),用于局域网内设备的标识和通信。
  • 帧封装:这一层将数据封装成帧进行传输,帧包括目的地址、源地址和数据校验等信息。

2. 互联网层(Internet Layer)

功能

  • 负责主机间的数据传输和路由选择。
  • 提供逻辑地址(IP地址),用于标识网络上的设备。

细节

  • IP协议
    • IPv4:使用32位地址,表示形式如192.168.1.1。
    • IPv6:使用128位地址,表示形式如2001:0db8:85a3:0000:0000:8a2e:0370:7334。
  • 路由选择:互联网层负责选择数据包的传输路径,路由器在这一层工作。
  • 子网划分:通过子网掩码将IP地址空间划分成多个子网,提高网络管理的灵活性。
  • 协议
    • ICMP(Internet Control Message Protocol):用于发送控制消息,如ping和traceroute工具。
    • ARP(Address Resolution Protocol):用于将IP地址解析为MAC地址。
    • RARP(Reverse Address Resolution Protocol):用于将MAC地址解析为IP地址。

3. 传输层(Transport Layer)

功能

  • 提供端到端的可靠传输,确保数据完整到达目的地。
  • 负责流量控制、错误校验和数据分段重组。

细节

  • TCP协议
    • 连接管理:TCP是面向连接的协议,通过三次握手建立连接,通过四次挥手断开连接。
    • 可靠传输:TCP提供可靠的传输,确保数据包按序到达,并通过确认机制检测和重传丢失的数据包。
    • 流量控制:TCP通过窗口机制实现流量控制,防止网络拥塞。
  • UDP协议
    • 无连接:UDP是无连接的协议,数据包独立传输,不保证顺序和可靠性。
    • 低延迟:UDP传输速度快,适用于对实时性要求高的应用,如视频流和在线游戏。

4. 应用层(Application Layer)

功能

  • 直接为用户和应用程序提供服务,负责网络应用程序的接口和协议。

细节

  • HTTP/HTTPS:用于Web数据传输,HTTPS通过SSL/TLS协议提供安全性。
  • FTP:用于文件传输,支持文件上传和下载。
  • SMTP:用于电子邮件的发送,配合POP3和IMAP用于接收邮件。
  • DNS:将域名解析为IP地址,支持互联网的名称解析。
  • Telnet和SSH:用于远程登录和命令执行,SSH提供安全的加密通信。

额外注意事项

  • 端口号:传输层使用端口号来标识应用程序和服务,常见的有HTTP的80端口、HTTPS的443端口、FTP的21端口等。
  • 防火墙:在互联网层和传输层之间,防火墙可以过滤和控制进出网络的数据包,提供网络安全。
  • NAT(Network Address Translation):用于将私有IP地址转换为公共IP地址,通常用于路由器以允许多个设备共享一个公共IP地址。

理解这些细节有助于更全面地掌握TCP/IP模型的各层功能及其在实际网络通信中的应用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/14298.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

研发机构大数据迁移如何保障敏感数据不泄露

随着云计算和大数据技术的飞速进步,越来越多的企业正试图通过数据迁移来提升IT基础设施的效率,减少成本,并增强业务的灵活性。但是,这一过程并非没有它的挑战,尤其是在数据安全方面。数据在转移过程中可能会遭遇黑客攻…

SQL的多表联查

这里我先附上两张表的数据: Orders 表: OrderIDCustomerID1321324NULL Customers 表: CustomerIDCustomerName1Alice2Bob3Charlie4David INNER JOIN 🤝 概念: INNER JOIN(内连接)返回两个表中匹配的记录。如果某条…

解决深度确定问题:使用不相交集合森林

解决深度确定问题:使用不相交集合森林 引言不相交集合森林(DSF)基础按秩合并与路径压缩深度确定问题的解决方案实现MAKE-TREE修改FIND-SET实现FIND-DEPTH实现GRAFT分析最坏情况运行时间结论参考文献 引言 在计算机科学中,树结构是…

时空扭曲:重温相对论的终极挑战,探寻真理的脚步

大家都知道,相对论是爱因斯坦提出的划时代理论,为人类认知时空和引力做出了革命性贡献。但这个理论真的万无一失吗?近日,一项新研究提出了测试时间扭曲的新方法,或许能让我们重新审视相对论在宇宙大尺度上的适用性。 时…

HTML5好看的通用网站模板源码

文章目录 1.设计来源1.1 主界面1.2 模板菜单1 界面1.3 模板菜单2 界面1.4 模板菜单3 界面1.5 下拉菜单1 界面1.6 下拉菜单2 界面1.7 模板菜单4 界面1.8 模板菜单5 界面1.9 界面底部 2.效果和源码2.1 动态效果2.2 源码目录2.3 源代码 源码下载 作者:xcLeigh 文章地址…

Python 造数据神器Faker

大家好,在编写代码过程中,我们经常需要一些假数据来进行测试或者演示。手动创建这些数据不仅耗时,而且容易出错。幸运的是,Python有一个非常有用的库叫做Faker,它可以生成各种类型的假数据,从名字、地址到公…

【驱动】ARM手册引脚寄存器地址(绝对物理地址)查找(以AM437x为例)

1、问题描述 在配置设备树时,经常遇到如下宏: XXX_IOPAD(pa, val)实际定义如下: DRA7XX_CORE_IOPAD(pa, val) AM33XX_IOPAD(pa, val) DM816X_IOPAD(pa, val) DM814X_IOPAD(pa, val) AM4372_IOPAD(pa, val)一般注释中的说明如下: 原文:Macro to allow using the absol…

md5和byte64字符串加密

说明:最近碰到一个需求,网络请求,传递json的时候,必须加密,对字符串加密,然后前端去解密字符串,然后解析json,展示数据,可逆 step1: Md5加密方式 package com.example.…

Java技术精粹:高级面试问题与解答指南(一)

Java 面试问题及答案 问题1:请解释Java中的多态性,并给出一个例子。 答案: 多态性是Java中的一个重要特性,它允许一个引用类型可以指向多种实际类型的对象,并且可以通过这个引用调用实际对象的方法。多态性主要通过继…

JAVA:常见的加密算法简介

一、前言 加密算法是指将明文信息转变为密文信息的过程,即将信息从可读形式(明文)转换为加密形式(密文)的过程。在加密过程中,信息通过加密算法和加密密钥被加密处理,加密后的信息(密…

【代码随想录算法训练Day17】LeetCode 110. 平衡二叉树、LeetCode 257.二叉树的所有路径、LeetCode 404.左叶子之和

Day17 二叉树第四天 LeetCode 110. 平衡二叉树【后序遍历】 平衡二叉树仍是后序遍历,就是获取左右子树的高度然后作差,如果子树就不平衡,那么就直接将-1向上传给父节点,否则该数的高度为左右子树高度的最大值1。 class Solutio…

day 38 435.无重叠区间 763.划分字母区间 56. 合并区间 738.单调递增的数字 968.监控二叉树

435.无重叠区间 思路 为了使区间尽可能的重叠所以排序来使区间尽量的重叠,使用左边界排序来统计重叠区间的个数与452. 用最少数量的箭引爆气球恰好相反。 代码 class Solution {public int eraseOverlapIntervals(int[][] intervals) {Arrays.sort(intervals,(a,…

如何在cPanel面板中开启盗链保护

本周有一个客户,购买Hostease的主机, 客户购买的是Linux虚拟主机,带cPanel面板的。询问我们的在线客服,如何可以防止他的网站上的图片不被盗用。cPanel的盗链保护功能可以帮助客户防止图片被盗链。 盗链(Hotlinking&a…

.NET Core与.NET Framework的区别

.NET Core和.NET Framework是微软提供的两种主要的开发平台,用于构建各种应用程序。虽然它们都基于.NET技术,但在架构、平台支持、性能、开发工具和社区支持等方面存在显著差异。本文将详细探讨.NET Core和.NET Framework的主要区别,帮助开发…

呆马科技----构建智能可信的踏勘云平台

近年来,随着信息技术的快速发展,各个行业都在积极探索信息化的路径,以提升工作效率和服务质量。智慧踏勘云平台是基于区块链和大数据技术构建的全流程智慧可信踏勘解决平台。平台集远程视频、数据显示、工作调度、过程记录为一体,…

有容量限制的车辆路径规划问题(Capacitated Vehicle Routing Problem)

在看matlab的时候发现了这篇文章https://www.frontiersin.org/articles/10.3389/fict.2019.00013/full 仔细阅读一下。(英语渣渣,自学用) The Capacitated Vehicle Routing Problem (CVRP) is an NP-optimization problem (NPO) that has been of great interest …

图像处理之边缘检测(C++)

图像处理之边缘检测(C) 文章目录 图像处理之边缘检测(C)前言一、Roberts算子1.原理2.代码实现 二、Sobel算子1.原理2.代码实现 三、Prewitt算子1.原理2.代码实现 四、Laplacian算子1.原理2.代码实现 五、LOG算子1.原理2.代码实现 …

完全匹配企业需求的替代FTP升级软件怎么找

企业在处理数据传输时,效率和安全性是关键。尽管传统的FTP曾被广泛采用,但因其传输慢、安全性不足和难以管理等问题,已不再满足现代企业的需求。许多企业正在寻找能够满足其需求的FTP替代方案,但市场上选择众多,找到合…

Python01:初入Python(Mac)

Python环境准备 下载Python:官网https://www.python.org/ 下载PyCharm:官网https://www.jetbrains.com/pycharm/download Python与PyCharm的关系 Python(解释器):机器语言—>翻译人员–>翻译成电脑能读懂的 PyC…

STM32应用开发进阶--SPI总线(7脚OLED中景园ss1306+HAL库_硬件SPI/软件模拟SPI)

实现目标 1、掌握SPI总线基础知识; 2、会使用软件模拟SPI总线和STM32硬件SPI总线; 3、 学会STM32CubeMX软件关于SPI的配置; 4、掌握OLED显示屏驱动; 5、具体目标:(1)用STM32硬件SPI驱动OLED显示“你好…