热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Linux复习备忘录8

Linux复习备忘录8分类:Linux2012-09-0616:00267人阅读评论(0)收藏举报这个是本系列文章的第八篇,从本篇开始,基本上系统的基本知识都大概介绍完了,下面主

Linux 复习备忘录8

分类: Linux 267人阅读 评论(0) 收藏 举报

    这个是本系列文章的第八篇,从本篇开始,基本上系统的基本知识都大概介绍完了,下面主要涉及网络以及相关应用的配置等等,当然,前面的文章写得有些简单了,主要是打字要时间啊!!!像我这种懒人,能写个提纲给自己提示一下,已经算是超常发挥了。

    首先讲一下TCP/IP协议,这个是事实标准,在国际标准化组织定义了所谓OSI七层协议以后(实际上没有应用)。

    我们可以先看一下分层图:、

8.1 基本知识

    TCP是传输控制协议,IP则指的是网际协议。

    TCP和UDP是建立在IP的基础上,向特定的应用传递分组的传输协议。 

    TCP是一种面向连接的协议,在很大程度上有点像电话。TCP协议时可控可靠传输。UDP是面向分组的服务,类似邮局发信的原理。UDP是无连接协议,它不保证分组的接受顺序和发送顺序,也不保证分组能正确抵达目的地。

8.2 连网技术概述

    TCP/IP协议时一个协议族,不止包含那两个传输层的协议,还包括ICMP,APR等

    IMCP协议是IP协议的底层支持协议,而ARP则是地址解析协议,也是各种考试常考的内容。

    8.2.1 分组和封装

         在网络中,高层的协议对底层并不关心,看上去就是黑盒子,这是计算机中一个很重要的思想,叫做封装。

         数据在网络中以分组的形式传输。每个包都有包头和有效载荷组成。原始的数据单位名称依协议层而定。在链路层上,叫做帧(frame),在IP层上叫做分组(packet),在TCP层上叫做片段(segment);在一个包沿着协议栈向下传输的时候,每个协议都会加上自己的头部,这个嵌套的过程叫做封装,在接收端相对的逆过程叫做解封。

    8.2.2 链路层

        这里面,讲一下链路层的内容,链路层的主要任务是在数据帧上加上帧头,和帧之间的分隔符以便区别不同的帧,组帧也是有标准文件的,约定了帧的格式等信息。

    8.2.3 包的寻址

        寻址基本上有三个方案:

             硬件用MAC;

             软件用IP;

             人用主机名寻址;

        MAC地址我们都应该很熟悉,这个是由网卡出厂时候就初始化的一个地址。当然你可以再系统里面伪装这个地址。不做解释了。

        MAC寻址是基于链路层的寻址方式。而IP地址和硬件地址的映射关系也是在链路层中实现的:ARP协议。此协议位于链路层。

    8.2.4 IP端口

        IP地址标示了计算机的网络接口,但是对于服务和进程来讲,一个地址无法区分不同的进程,所以衍生了端口的概念。在linux系统中,服务程序的端口号都低于1024,当然以root身份运行的进程除外。

8.3 IP地址详解

     IP地址分为网络部分和主机部分。

     8.3.1 分类

          传统上,IP地址分为三类:A、B、C类地址,不过目前其实这套分类已经没有什么实际的意义了。稍微提一下:

                 A类地址:第一个字节值:1-126;

                 B类地址:128-191;

                 C类地址:192-223

     8.3.2 子网和子网掩码

          对于A类和B类网络来说,主机号实在是太多了,至于浪费了大量的地址,所以出现了子网的概念,为了更有效的利用IP地址资源。

          也就是我们可以用子网掩码的形式把一个B类地址化为多个C类地址,掩码意思是:将一个IP地址网络部分的哥哥网络掩码位置设置为1,而主机位为0。常见的掩码形式是:255.255.255.0这个是C类地址的掩码。

          但是随着网络上计算机的增多,这种划分子网的形式也渐渐的不够用了,目前实际上采用的是CIDR无类域路由的方法,在IP/26这种记法中表示了前26位为网络部分,最后一个字节中前两位为网络号的部分,最后字节将变成11000000的掩码形式。所以我们可以将IP/24分为4个IP/26的网络,而本例中,IP/26还剩6位表示主机地址,正常算的话应该是64个主机,但是全0和全1的地址是保留地址,所以真正可以使用的是62个地址。

          有兴趣的同学可以继续研究一下,不再细致描述了,在实际应用中这个基本上用不到,不过算是一个基本的知识。

    8.3.3 CIDR

        这个是无类域路由分类方法的简称,废除了以前固定的ABC分类方法,是子网方法的直接扩展。在上面一小节中也提到了这个名词。大家知道一下就可以了。

    8.3.4 私用地址和NAT

        NAT的相关配置以后还会讲到,这里只是大概提到一下他们的用途。

        我们知道,IP地址需要申请,但是我们内部的网络扩张是很迅速的,而且也没有必要每个内部主机都需要一个外部IP,所以私用地址的概念出现了,由RFC文档规定有一个A类网络、16个B类网络、256个C类网络作为私用地址。

        这些地址都可以在内部自用使用,划分子网和分配地址。

        为了使内部主机能访问外部网络,一般需要一个NAT服务来进行地址和端口的映射,也就是所有内部IP共享一个真的外网地址,当然这个缺点么,就是内部主机外部是无法访问的,不过在某一特定情境下,这似乎是个优点。

8.4 ARP地址解析协议

     ARP协议应该是比较重要的一个协议。IP包是根据IP地址发送的。在链路层上必须采用实际硬件地址来传送数据,所以产生了ARP协议。每个计算机在内存中都维护了一张叫做ARP缓存的表,保存了近期ARP查询的结果。

对于这个协议,记住是通过广播形式来发挥作用就可以了,还有条命令:arp,可以显示ARP缓存的内容。

8.5 将一台主机加入网络

     作为系统管理员,有时候需要将一台主机加入网络。

     我们需要完成的操作主要有:

          1,分配IP地址和主机名;

          2,设置网络接口;

          3,设置默认路由;

          4,指定一个DNS服务器。

     8.5.1 分配IP地址和主机名

            可能涉及的文件是/etc/hosts以及hostname这个命令,这不是本节的重点,此节涉及另一个比较重要的命令:ifconfig

            这个命令可以说是非常熟悉大家,win系统下也有类似的命令,ipconfig.

            这条命令的基本格式:

                  Ifconfig   interface  address options ....

              举个例子:

                  Ifconfig  eth0 192.168.100.1 netmask 255.255.255.0  up

                      ---interface 是命令所应用的硬件接口名称。在大多数系统上市eth0.

                         Address是IP地址,如果是静态分配的话。

                         Netmask 是子网掩码,这个概念大家不陌生

                         Up 是启动接口的意思。

                     这里提及一下,mii-tool命令可以查询并设置特定接口的参数,必然全/半双工模式等,不过这里面的东西除非必要,一般默认不需要改变。

     8.5.2 配置默认路由

          其实就是指定一下网关的地址。

          命令:

           Route  add  default  gw gateway-IP-address

     8.5.3 配置DNS

           配置DNS,其实关键是配置/etc/resolv.conf文件。只要编辑这个文件,添加相应的DNS服务器地址就可以了。

    未完待续.....


推荐阅读
  • 本文介绍了如何使用 Google Colab 的免费 GPU 资源进行深度学习应用开发。Google Colab 是一个无需配置即可使用的云端 Jupyter 笔记本环境,支持多种深度学习框架,并且提供免费的 GPU 计算资源。 ... [详细]
  • malloc 是 C 语言中的一个标准库函数,全称为 memory allocation,即动态内存分配。它用于在程序运行时申请一块指定大小的连续内存区域,并返回该区域的起始地址。当无法预先确定内存的具体位置时,可以通过 malloc 动态分配内存。 ... [详细]
  • 1.tarzxfapache-activemq-5.12.0-bin.tar.gztarzxfapache-activemq-5.12.0-bin.tar.gz2.cdapac ... [详细]
  • HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送www方式的数据。HTTP协议采用了请求响应模型。客服端向服务器发送一 ... [详细]
  • 在将Web服务器和MySQL服务器分离的情况下,是否需要在Web服务器上安装MySQL?如果安装了MySQL,如何解决PHP连接MySQL服务器时出现的连接失败问题? ... [详细]
  • 本文旨在探讨信息安全专业的职业规划路径,结合个人经历和专家建议,为即将毕业的学生提供实用的指导。 ... [详细]
  • 本文总结了《编程珠玑》第12章关于采样问题的算法描述与改进,并提供了详细的编程实践记录。参考了其他博主的总结,链接为:http://blog.csdn.net/neicole/article/details/8518602。 ... [详细]
  • 本文介绍了如何使用Flume从Linux文件系统收集日志并存储到HDFS,然后通过MapReduce清洗数据,使用Hive进行数据分析,并最终通过Sqoop将结果导出到MySQL数据库。 ... [详细]
  • 本文详细介绍了如何在 Linux 系统上安装 JDK 1.8、MySQL 和 Redis,并提供了相应的环境配置和验证步骤。 ... [详细]
  • 本文介绍了如何通过安装 rpm 包来使用 resize2fs 和 ext2online 工具进行系统文件的扩容。提供了详细的步骤和注意事项。 ... [详细]
  • 【妙】bug称它为数组越界的妙用
    1、聊一聊首先跟大家推荐一首非常温柔的歌曲,跑步的常听。本文主要把自己对C语言中柔性数组、零数组等等的理解分享给大家,并聊聊如何构建一种统一化的学习思想 ... [详细]
  • 在 CentOS 6.4 上安装 QT5 并启动 Qt Creator 时,可能会遇到缺少 GLIBCXX_3.4.15 的问题。这是由于系统中的 libstdc++.so.6 版本过低。本文将详细介绍如何通过更新 GCC 版本来解决这一问题。 ... [详细]
  • 本文详细介绍了如何在Linux系统(以CentOS为例)上彻底卸载Zimbra邮件系统,包括停止服务、删除文件和用户等步骤。 ... [详细]
  • Linux下MySQL 8.0.28安装指南
    本文详细介绍了在Linux系统上安装MySQL 8.0.28的步骤,包括下载数据库、解压数据包、安装必要组件和启动MySQL服务。 ... [详细]
  • 本文介绍了 Linux 系统中用于定期执行任务的 cron 服务及其配置方法。通过 crond 和 crontab 命令,用户可以轻松地安排系统和用户级别的周期性任务。 ... [详细]
author-avatar
ppqq21
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有