jjzjj

Linux网络管理OSI和TCP/IP

Sure云小硕 2023-07-28 原文

  • 😘作者简介:一名99年运维岗位员工。
  • 👊宣言:人生就是B(birth)和D(death)之间的C(choise),做好每一个选择。
  • 🙏创作不易,动动小手给个点赞加关注吧,有什么意见评论区告诉我,一起学习。

目录

前言

 OSI简介

OSI七层结构/功能

TCP/IP四层结构和TCP/IP五层结构与OSI七层结构的关系

OSI和TCO/IP的区别

TCP/IP协议族

TCP/IP数据单元/DU

封装和解封装

数据封装过程


前言

        本篇文章不教大家命令了,开始学一些理论知识吧,本篇文章分享一下网络管理知识:OSI和TCP/IP,并且学习两者之间的区别。


 OSI简介

OSI:Open System Interconnection 开放系统互联模型;

开放式系统互联:

        国际标准化组织(ISO)制定;

        定义了不同计算机互联的标准;

        设计和描述,计算机网络通信的框架;

全世界网络通信的工作分为7层:应用层,表示层,会话层,传输层(运输层),网络层,数据链路层,物理层。


OSI七层结构/功能

  • 应用层:应用程序/原始数据
  • 表示层:格式/压缩/加密
  • 会话层:会话/全双工/半双工
  • 传输层(运输层):分段/重组/端口号
  • 网络层:IP地址/寻址/路由
  • 数据链路层:MAC地址/局域网/
  • 物理层:传输介质/比特流

记忆这些的口诀:应(应用层)表(表示层)会(会话层)传(传输层)往(网络层)树(数据链路层)屋(物理层)。


TCP/IP四层结构和TCP/IP五层结构与OSI七层结构的关系

        OIS的物理层和数据链路层在TCP/IP四层结构中被统称为网络接口层,OSI 中的应用层、表示层、会话层在TCP/IP四层结构和TCP/IP五层结构中被统称为应用层。如下图所示。


OSI和TCO/IP的区别

区别:

  1. TCP/IP是一个协议簇,而OSI是一个模型;
  2. TCP/IP是五层结构,而OSI是七层结构;
  3. TCP/IP的第三层仅支持IP协议,OSI支持所有的网络层协议。

联系:

  1. OSI引入了服务、接口、协议、分层的概念,而TCP/IP借鉴了OSI的概念;
  2. OSI先有模型,后有协议,先有标准,后进行实践,而TCP/IP先有协议和应用再提出了模型,且是参照的OSI模型。

TCP/IP协议族

Transmission Control Protocol/InternetProtocol,传输控制协议/互联网协议的简写

应用层HTTP/超文本传输协议/网站
Telnet/远程连接协议/远程控制
FTP/文件传输协议
SMTP/简单邮件传输协议/Email
DNS/域名服务/WWW
传输层TCP/传输控制协议/可靠
UDP/用户数据报协议/不可靠
网络层IP/互联网协议/寻址
ICMP/网络消息管理协议/测试
数据链路层MAC
物理层网线
光纤

TCP/IP数据单元/DU

信息从生产到接收,也会有些变化。

为了方便交流,通信模型不同的模块对信息加工,并进行统一命名。

TCP/IP五层结构数据数据类型
应用层数据AP   DU(应用数据单元)

传输层数据

segment   DU(分段数据)
网络层数据packet   DU(包,数据)
数据链路层数据frame   DU(帧,数据)
物理层数据bit   DU(比特,数据)

封装和解封装

        信息从一台计算机产生,经过TCP/IP模型,后传递到另一台计算机,这个通信过程就像,快递从厂家包装到顾客收到货拆包一样,我们把这个通信过程,称作数据的封装(发送)和数据解封装(接收),从而更好的理解,数据通信原理。

TCP/IP结构功能示例
应用层应用程序/原始数据/QQ等
格式/压缩/加密快速传递,安全传递
会话/全双工/半双工身份信息,电话/对讲机
传输层分段/重组/端口号传输效率
网络层IP地址/寻址/路由总目标,全球地址
数据链路层MAC地址/局域网/分段目标,局部地址,邮递员
物理层传输介质/比特流电流/光/无线信号/4G/5G

数据封装过程

  1. (应用层)用户信息转换为数据,以便在网络上传输。
  2. (传输层)数据转换为数据段,并在发送方和接收方主机之间建立一条可靠的连接。
  3. (网络层)数据段转换为数据包或数据报,并在报头中放上逻辑地址,这样每一个数据包都可以通过互联网络进行传输。
  4. (数据链路层)数据包或数据报转换成帧,以便在本地网络中传输。在本地网段上,使用硬件地址唯一标识每一台主机。
  5. (物理层)帧转换为比特流,采用数字编码和时钟方案。

有关Linux网络管理OSI和TCP/IP的更多相关文章

  1. ruby - i18n Assets 管理/翻译 UI - 2

    我正在使用i18n从头开始​​构建一个多语言网络应用程序,虽然我自己可以处理一大堆yml文件,但我说的语言(非常)有限,最终我想寻求外部帮助帮助。我想知道这里是否有人在使用UI插件/gem(与django上的django-rosetta不同)来处理多个翻译器,其中一些翻译器不愿意或无法处理存储库中的100多个文件,处理语言数据。谢谢&问候,安德拉斯(如果您已经在ruby​​onrails-talk上遇到了这个问题,我们深表歉意) 最佳答案 有一个rails3branchofthetolkgem在github上。您可以通过在Gemfi

  2. ruby - 从 Ruby 中的主机名获取 IP 地址 - 2

    我有一个存储主机名的Ruby数组server_names。如果我打印出来,它看起来像这样:["hostname.abc.com","hostname2.abc.com","hostname3.abc.com"]相当标准。我想要做的是获取这些服务器的IP(可能将它们存储在另一个变量中)。看起来IPSocket类可以做到这一点,但我不确定如何使用IPSocket类遍历它。如果它只是尝试像这样打印出IP:server_names.eachdo|name|IPSocket::getaddress(name)pnameend它提示我没有提供服务器名称。这是语法问题还是我没有正确使用类?输出:ge

  3. ruby-on-rails - 获取 inf-ruby 以使用 ruby​​ 版本管理器 (rvm) - 2

    我安装了ruby​​版本管理器,并将RVM安装的ruby​​实现设置为默认值,这样'哪个ruby'显示'~/.rvm/ruby-1.8.6-p383/bin/ruby'但是当我在emacs中打开inf-ruby缓冲区时,它使用安装在/usr/bin中的ruby​​。有没有办法让emacs像shell一样尊重ruby​​的路径?谢谢! 最佳答案 我创建了一个emacs扩展来将rvm集成到emacs中。如果您有兴趣,可以在这里获取:http://github.com/senny/rvm.el

  4. ruby - 用 Ruby 编写一个简单的网络服务器 - 2

    我想在Ruby中创建一个用于开发目的的极其简单的Web服务器(不,不想使用现成的解决方案)。代码如下:#!/usr/bin/rubyrequire'socket'server=TCPServer.new('127.0.0.1',8080)whileconnection=server.acceptheaders=[]length=0whileline=connection.getsheaders想法是从命令行运行这个脚本,提供另一个脚本,它将在其标准输入上获取请求,并在其标准输出上返回完整的响应。到目前为止一切顺利,但事实证明这真的很脆弱,因为它在第二个请求上中断并出现错误:/usr/b

  5. ruby-on-rails - 事件管理员日期过滤器日期格式自定义 - 2

    是否有简单的方法来更改默认ISO格式(yyyy-mm-dd)的ActiveAdmin日期过滤器显示格式? 最佳答案 您可以像这样为日期选择器提供额外的选项,而不是覆盖js:=f.input:my_date,as::datepicker,datepicker_options:{dateFormat:"mm/dd/yy"} 关于ruby-on-rails-事件管理员日期过滤器日期格式自定义,我们在StackOverflow上找到一个类似的问题: https://s

  6. 网络编程套接字 - 2

    网络编程套接字网络编程基础知识理解源`IP`地址和目的`IP`地址理解源MAC地址和目的MAC地址认识端口号理解端口号和进程ID理解源端口号和目的端口号认识`TCP`协议认识`UDP`协议网络字节序socket编程接口`sockaddr``UDP`网络程序服务器端代码逻辑:需要用到的接口服务器端代码`udp`客户端代码逻辑`udp`客户端代码`TCP`网络程序服务器代码逻辑多个版本服务器单进程版本多进程版本多线程版本线程池版本服务器端代码客户端代码逻辑客户端代码TCP协议通讯流程TCP协议的客户端/服务器程序流程三次握手(建立连接)数据传输四次挥手(断开连接)TCP和UDP对比网络编程基础知识

  7. ruby - (Ruby || Python) 窗口管理器 - 2

    我想用这两种语言中的任何一种(最好是ruby​​)制作一个窗口管理器。老实说,除了我需要加载某种X模块外,我不知道从哪里开始。因此,如果有人有线索,如果您能指出正确的方向,那就太好了。谢谢 最佳答案 XCB,X的下一代API使用XML格式定义X协议(protocol),并使用脚本生成特定语言绑定(bind)。它在概念上与SWIG类似,只是它描述的不是CAPI,而是X协议(protocol)。目前,C和Python存在绑定(bind)。理论上,Ruby端口只是编写一个从XML协议(protocol)定义语言到Ruby的翻译器的问题。生

  8. ruby-on-rails - 事件管理员和自定义方法 - 2

    这是我在ActiveAdmin中的自定义页面ActiveAdmin.register_page"Settings"doaction_itemdolink_to('Importprojects','settings/importprojects')endcontentdopara"Text"endcontrollerdodefimportprojectssystem"rakedataspider:import_projects_ninja"para"OK"endendend我想做的是,当我单击“导入项目”按钮时,我想在Controller中执行rake任务。但是我无法访问该方法。可能是什

  9. ruby-on-rails - (Ruby,Rails) 基于角色的身份验证和用户管理...? - 2

    我正在寻找用于Rails的优质管理插件。似乎大多数现有的插件/gem(例如“restful_authentication”、“acts_as_authenticated”)都围绕着self注册等展开。但是,我正在寻找一种功能齐全的基于管理/管理角色的解决方案——但不是简单地附加到另一个非基于角色的解决方案。如果我找不到,我想我会自己动手......只是不想重新发明轮子。 最佳答案 RyanBates最近做了两个关于授权的railscast(注意身份验证和授权之间的区别;身份验证检查用户是否如她所说的那样,授权检查用户是否有权访问资源

  10. ruby - 检查网络文件是否存在,而不下载它? - 2

    是否可以在不实际下载文件的情况下检查文件是否存在?我有这么大的(~40mb)文件,例如:http://mirrors.sohu.com/mysql/MySQL-6.0/MySQL-6.0.11-0.glibc23.src.rpm这与ruby​​不严格相关,但如果发件人可以设置内容长度就好了。RestClient.get"http://mirrors.sohu.com/mysql/MySQL-6.0/MySQL-6.0.11-0.glibc23.src.rpm",headers:{"Content-Length"=>100} 最佳答案

随机推荐