OSI/ISO七层模型和TCP/IP四层模型

网络层协议和IP划分

OSI的七层框架

物理层:设备之间的比特流的传输、物理接口、电气特性等。

数据链路层:成帧、用MAC地址访问媒介、错误检测与修正。

网络层:提供逻辑地址、选路。

传输层:可靠与不可靠的传输、传输前的错误检测、流量控。

会话层:对应用会话的管理、同步。

表示层:数据的表现形式、特定功能的实现(如:加密)。

应用层:用户接口。

TCP/IP协议4层模型

应用层:应用层对应于OSI模型的高层,为用户提供所需的各种服务。

传输层:传输层对应OSI参考模型的传输层,为应用层实体提供端到端的通信功能,保证了数据包的顺序传送以及数据的完整性。该层定义了两个主要的协议:传输控制协议(TCP)和用户数据协议(UDP),

网络互联层:网络互联层对应于OSI参考模型的网络层,主要解决主机到主机的通信问题。它所包含的协议设计数据包在整个网络上的逻辑传输。该层有三个主要协议:网络协议(IP)、互联网组管理协议(IGMP)和互联网控制报文协议(ICMP)。

网络接口层:网络接入层与OSI参考模型中的物理层和数据链路层相对应。它负责监视数据在主机和网络之间的交换。事实上,TCP/IP本身并未定义该层的协议,而由参与互联的各网络使用自己的物理层和数据链路层协议,然后与TCP/IP的网络接入层进行连接。地址解析(ARP)工作在此层,即OSI参考模型的数据链路层。

TCP/IP模型与OSI模型对应

netstat –a  查看端口

数据封装过程

TCP/IP模型与OSI模型的比较:

共同点:

OSI参考模型和TCO/IP参考模型都采用了层次结构的概念;都能够提供面向连接和无连接的通信机制。

不同点:

TCP/IP是四层模型,OSI是七层模型;对可靠性要求不同;OSI模型是在协议开发前设计的,具有通用性,TCP/IP是先有协议集然后建立的模型,不适用于非TCP/IP网络;实际是市场应用不同(OSI模型只是理论上的模型,并没有成熟的产品,二TCP/IP已经成为“实际上的国际化标准”)。

网络层协议和IP地址划分

网络层协议:

网络协议(IP)

互联网控制报文协议(ICMP)

IP包头

IP地址的分类

私有IP地址,内网IP地址不用购买,可以重复,但在同一个网段内不能重复;内网IP不能直接访问公网。

子网掩码

变长子网掩码以及子网规则

子网掩码的二进制必须是连续的1,否则就不能用。

网络地址:IP地址与子网掩码做与运算

ICMP协议

ICMP消息通过IP数据报传送,被用来发送错误和控制信息。

ICMP定义了很多信息类型,如:目的不可达、TTL超时、信息请求、信息应答、地址请求、地址应答

Linux系统学习 五、网络基础—网络通信协议的更多相关文章

  1. Linux系统常用升级的基础包

    Linux系统常用升级的基础包 yum -y install lrzsz gcc gcc-c++ make flex autoconf automake vixie-cron libjpeg libj ...

  2. Linux系统学习笔记:文件I/O

    Linux支持C语言中的标准I/O函数,同时它还提供了一套SUS标准的I/O库函数.和标准I/O不同,UNIX的I/O函数是不带缓冲的,即每个读写都调用内核中的一个系统调用.本篇总结UNIX的I/O并 ...

  3. Linux系统学习 三、网络基础—虚拟机网络配置

    Linux网络基础 Linux的ip地址配置 Linux网络配置文件 常用网络命令 虚拟机网络参数配置 1.配置Linux的IP地址 首先配置一个IP地址,让IP生效. ifconfig查看当前网络配 ...

  4. Linux 系统下10个查看网络与监听的命令

    下面列出来的10个基础的每个linux用户都应该知道的网络和监控命令.网络和监控命令类似于这些: hostname, ping, ifconfig, iwconfig, netstat, nslook ...

  5. Linux 系统应用编程——进程基础

    一.Linux下多任务机制的介绍 Linux有一特性是多任务,多任务处理是指用户可以在同一时间内运行多个应用程序,每个正在执行的应用程序被称为一个任务. 多任务操作系统使用某种调度(shedule)策 ...

  6. 网工的Linux系统学习历程

    偶遇篇作为一名通过思科CCNP认证的网络工程师,专注于网络技术.但在日常的工作中,难免不接触到服务器,对于大多数服务器来说,鉴于稳定性等因素的考虑,基本使用的都是Linux系统,包括RHEL.Cent ...

  7. 老司机浅谈linux系统学习技巧

    Linux起源于20世纪70年代,是一种优秀的操作系统系统.初次接触到linux这个系统是在大学期间,这样才发现除了windows外的另外一个有趣系统.开始抱着好奇的心态去了解,随着深入学习,笔者被它 ...

  8. 说一说本人对linux系统学习的方法和经验

    摘要: 相信大伙都听说过linux系统,然而对于这个系统,总使让新手感觉茫然,诺达的系统.下面是一段百度中的介绍: 相信大伙都听说过linux系统,然而对于这个系统,总使让新手感觉茫然,诺达的系统.下 ...

  9. Linux 系统学习梳理_【All】

    第一部分---基础学习 00.Linux操作系统各版本ISO镜像下载 00.Linux系统下安装Vmware(虚拟机) 00.Linux 系统安装[Redhat] 00.Linux 系统安装[Cent ...

随机推荐

  1. Yii2中多表关联查询

    准备条件: 1.首先准备两张表: customer(用户表)(id, name) order(订单表)(id, customer_id, price) customer 表和 order 表之间是一对 ...

  2. 前端小白webpack学习(二)

    前一篇写了自我总结的webpack定义:为JavaScript服务的静态模块打包器 和几大基本概念 entry.output.plugins.loaders等.指路前端小白webpack学习(一) 下 ...

  3. UWP GridView切换数据时界面闪动

    在选择数据时,比如1-10集,和11-20集切换时,GridView需要切换对应的数据,但是会发生界面闪动. 这是默认的Item Transition导致的. 可以去掉默认的转换效果. <Gri ...

  4. 理解MVVM在react、vue中的使用

    理解MVVM在react.vue中的使用 一:什么是MVC.为什么不用MVC 1:MVC的含义: M(modal):是应用程序中处理数据逻辑的部分. V (view)  :是应用程序中数据显示的部分. ...

  5. springboot~yml里的自定义配置~续

    之前写了关于读取自定义配置的文章springboot~yml里的自定义配置,而今天主要说一下对复杂配置信息的读取方法,我们简单的配置用@Value注解就可以了,而结构复杂的一般使用@Configura ...

  6. 当Python遇上AI(一)

    Infi-chu: http://www.cnblogs.com/Infi-chu/ 一.什么是学习 如果要给学习下一个定义,那么根据某百科给出的定义是——学习,是指通过阅读.听讲.思考和实践等途径获 ...

  7. Mac-关于升级macOS Catalina后,终端试用问题

    xcrun: error 在终端输入 git clone *****后,提示: xcrun: error: invalid active developer path (/Library/Develo ...

  8. SVN 创建发行版/分支版的步骤

    最近看了很多 Git 与 SVN 的比较,很多都说 SVN 做分支很慢,不知道是从何说起.有可能大家都不清楚,SVN 做分支的正确步骤,特此介绍一下. SVN 服务器后台使用 Berkeley DB ...

  9. 《软件安装》VMware 安装 centos8

    上期问题回顾 搞技术的同学应该都听过docker,那么请问docker和虚拟机有什么区别呢? 传统的虚拟机架构是:物理机 -> 宿主机操作系统 -> Hypervisor支持 -> ...

  10. shell 脚本里的$(( ))、$( )、``与${ }的区别

    shell  脚本里的命令执行 1. 在bash中,$( )与` `(反引号)都是用来作命令替换的. 命令替换与变量替换差不多,都是用来重组命令行的,先完成引号里的命令行,然后将其结果替换出来,再重组 ...