Linux系统学习 五、网络基础—网络通信协议
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系统学习 五、网络基础—网络通信协议的更多相关文章
- Linux系统常用升级的基础包
Linux系统常用升级的基础包 yum -y install lrzsz gcc gcc-c++ make flex autoconf automake vixie-cron libjpeg libj ...
- Linux系统学习笔记:文件I/O
Linux支持C语言中的标准I/O函数,同时它还提供了一套SUS标准的I/O库函数.和标准I/O不同,UNIX的I/O函数是不带缓冲的,即每个读写都调用内核中的一个系统调用.本篇总结UNIX的I/O并 ...
- Linux系统学习 三、网络基础—虚拟机网络配置
Linux网络基础 Linux的ip地址配置 Linux网络配置文件 常用网络命令 虚拟机网络参数配置 1.配置Linux的IP地址 首先配置一个IP地址,让IP生效. ifconfig查看当前网络配 ...
- Linux 系统下10个查看网络与监听的命令
下面列出来的10个基础的每个linux用户都应该知道的网络和监控命令.网络和监控命令类似于这些: hostname, ping, ifconfig, iwconfig, netstat, nslook ...
- Linux 系统应用编程——进程基础
一.Linux下多任务机制的介绍 Linux有一特性是多任务,多任务处理是指用户可以在同一时间内运行多个应用程序,每个正在执行的应用程序被称为一个任务. 多任务操作系统使用某种调度(shedule)策 ...
- 网工的Linux系统学习历程
偶遇篇作为一名通过思科CCNP认证的网络工程师,专注于网络技术.但在日常的工作中,难免不接触到服务器,对于大多数服务器来说,鉴于稳定性等因素的考虑,基本使用的都是Linux系统,包括RHEL.Cent ...
- 老司机浅谈linux系统学习技巧
Linux起源于20世纪70年代,是一种优秀的操作系统系统.初次接触到linux这个系统是在大学期间,这样才发现除了windows外的另外一个有趣系统.开始抱着好奇的心态去了解,随着深入学习,笔者被它 ...
- 说一说本人对linux系统学习的方法和经验
摘要: 相信大伙都听说过linux系统,然而对于这个系统,总使让新手感觉茫然,诺达的系统.下面是一段百度中的介绍: 相信大伙都听说过linux系统,然而对于这个系统,总使让新手感觉茫然,诺达的系统.下 ...
- Linux 系统学习梳理_【All】
第一部分---基础学习 00.Linux操作系统各版本ISO镜像下载 00.Linux系统下安装Vmware(虚拟机) 00.Linux 系统安装[Redhat] 00.Linux 系统安装[Cent ...
随机推荐
- Java程序员月薪三万,需要技术达到什么水平?
最近跟朋友在一起聚会的时候,提了一个问题,说 Java 程序员如何能月薪达到二万,技术水平需要达到什么程度?人回答说这只能是大企业或者互联网企业工程师才能拿到.也许是的,小公司或者非互联网企业拿二万的 ...
- C++做四则运算的MFC计算器(二)栈转换和计算后缀表达式
上篇写了MFC界面搭建,这篇就写实现计算.涉及到数据结构,对新手很不友好. 虽然是MFC程序,但是能灵活地分离后台代码,自行构建控制台程序. 上篇文章链接:C++做四则运算的MFC计算器(一)MFC界 ...
- 拓展 centos 7
查看端口的占用情况 Centos6/contos7(ECS) 使用 netstat 查询系统上有多少TCP 多少UDP会话 netstat -tun -t: tcp -u: udp -a: all 表 ...
- Apollo 分布式配置中心(补充)
1. Namespace 1.1. 什么是Namespace Namespace是配置项的集合,类似于一个配置文件的概念. Apollo在创建项目的时候,都会默认创建一个“application ...
- WebShell代码分析溯源(九)
WebShell代码分析溯源(九) 一.一句话变形马样本 <?php $e = $_REQUEST['e'];$arr = array($_POST['pass'] => '|.*|e', ...
- Entity Framework Core Code First 项目实践
Entity Framework Core Code First 实践 任何一种技术的出现都是为了解决一系列特定的问题,只有了解了技术所要解决的关键问题,才能理解它的真正用途,之后,才能在实践中用好它 ...
- Python如何运行程序
人生苦短,我用Python. 作为一个开发人员,如何写代码是必须要知道的,代码如何运行也是有必要了解的.通过了解代码如何运行,可指导我们写出效率更高的代码.下午看了<Python学习手册> ...
- 2019QM大作业2-weyl半金属Landau Level
目录 说明 for cnblog QM大作业2--weyl半金属的Landau Level \(\boldsymbol{Abstract}\) 说明 Landau Level 自旋与pauli mat ...
- 成套销售交货组与BOM 546719 - FAQ: Delivery group and BOM in the delivery
交货组:将需要同时交互给客户的项目捆绑在一起,按行项目中最后交货日期做完交货组的计划行日期 1.如果销售订单标记为完全交货,则所有行项目都会分配到同一个交货组中 删除交货单是会给出警告 2.为母键行项 ...
- 46.QT-自带库QSerialPort串口使用
之前一章学习的是第三方库使用: 34.QT-qextserialport第三方库制作串口助手(并动态检测在线串口,附带源码) 本章来学习自带serial库 1.QSerialPortInfo QLis ...