基础网络概念(二)CSMA/CD、MAC、MTU、集线器与交换机、全双工与半双工

来源:互联网 发布:excel 引用数据不重复 编辑:程序博客网 时间:2024/06/08 07:05

声明:本文为笔者复习计算机网络相关知识时的摘录,文章中的图片及语句均出自《鸟哥的Linux私房菜》,这里仅作为整理自用。

喜欢鸟哥文章的朋友可以到鸟哥的主页查看:http://linux.vbird.org/


TCP/IP 的网络层相关封包与数据
我们现在知道要有网络的话,必须要有网络相关的硬件,而目前最常见的网络硬件接口为以太网络,包括网络线、网络卡、Hub/Switch 等等。而以太网络上面的传输使用网络卡卡号为基准的 MAC 讯框,配合 CSMA/CD 的标准来传送讯框,这就是硬件部分
在软件部分,我们知道 Internet 其实就是 TCP/IP 这个通讯协议的通称, Internet 是由 InterNIC(注 12) 所统一管理的,  但其实他仅是负责分配 Internet 上面的 IP 以及提供相关的 TCP/IP 技术文件而已。不过 Internet 最重要的就是 IP 啊!所以,  这个小节就让我们来讲讲网络层的 IP 与路由吧!

IP 封包可以达到 65535 bytes 这么大,在比 MAC 大的情况下,我们的操作系统会对 IP 进行拆解的动作:


Time To Live(TTL, 存活时间)
表示这个 IP 封包的存活时间,范围为 0-255。当这个 IP 封包通过一个路由器时, TTL 就会减一,当 TTL 为 0 时,这个封包将会被直接丢弃。说实在的,要让 IP 封包通过 255 个路由器,还挺难的~ ^_^
Protocol Number(协定代码)
来自传输层与网络层本身的其他数据都是放置在 IP 封包当中的,我们可以在IP 表头记载这个 IP 封包内的数据是啥,  在这个字段就是记载每种数据封包的内容啦!在这个字段记载的代码与相关的封包协议名称如下所示:

当然啦,我们比较常见到的还是那个 TCP, UDP, ICMP 说!
Source Address
还用讲吗?当然是来源的 IP 地址,从这里我们也知道 IP 是 32 位喔!
 Destination Address
有来源还需要有目标才能传送,这里就是目标的 IP 地址。

IP 地址的组成与分级


Tips:
什么是物理网段呢?当所有的主机都是使用同一个网络媒体串在一起,  这个时候这些主机在实体装置上面其实是联机在一起的,那么就可以称为这些主机在同一个物理网段内了!  同时并请注意,同一个物理网段之内,可以依据不同的 IP 的设定,而设定成多个『IP 网段』喔!

请注意,同一个 Net_ID 内,不能具有相同的 Host_ID ,否则就会发生 IP 冲突,可能会
造成两部主机都没有办法使用网络的问题! 

IP 在同一网域的意义
那么同一个网域该怎么设定,与将 IP 设定在同一个网域之内有什么好处呢?
    Net_ID 与 Host_ID 的限制:
在同一个网段内, Net_ID 是不变的,而 Host_ID 则是不可重复,此外, Host_ID 在二进制的表示法当中,不可同时为 0 也不可同时为 1 ,因为全为 0 表示整个网段的地址 (Network IP),而全为 1 则表示为广播的地址 (Broadcast IP)
    在区网内透过 IP 广播传递数据
在同物理网段的主机如果设定相同的网域 IP 范围 (不可重复),则这些主机都可以透过 CSMA/CD 的功能直接在区网内用广播进行网络的联机,亦即可以直接网卡对网卡传递数据 (透过 MAC 讯框);
    设定不同区网在同物理网段的情况
在同一个物理网段之内,如果两部主机设定成不同的 IP 网段,则由于广播地址的不同,导致无法透过广播的方式来进行联机。  此时得要透过路由器 (router) 来进行沟通才能将两个网域连结在一起。
    网域的大小
当 Host_ID 所占用的位越大,亦即 Host_ID 数量越多时,表示同一个网域内可用以设定主机的 IP 数量越多。所以说,贵单位公司内的计算机群,或者是你宿舍或家里面的所有计算机,当然都设定在同一个网域内是最方便的,  因为如此一来每一部计算机都可以直接透过 MAC 来进行数据的交流,而不必经由 Router (路由器) 来进行封包的转递呢。

IP的分级


ABC为常用的段,E段是保留段

IP 的种类与取得方式
1. Public IP : 公共 IP ,经由 INTERNIC 所统一规划的 IP,有这种 IP 才可以连上 Internet ;
2. Private IP : 私有 IP 或保留 IP,不能直接连上 Internet 的 IP , 主要用于局域网络内的主机联机规划。
早在 IPv4 规划的时候就担心 IP 会有不足的情况,而且为了应付某些企业内部的网络设定,于是就有了私有 IP (Private IP) 的产生了。私有 IP 也分别在 A, B, C 三个 Class 当中各保留一段作为私有 IP 网段,那就是:
    Class A:10.0.0.0 - 10.255.255.255
    Class B:172.16.0.0 - 172.31.255.255
    Class C:192.168.0.0 - 192.168.255.255

那么万一你又要将这些私有 IP 送上 Internet 呢?这个简单,设定一个简单的防火墙加上 NAT (Network Address Transfer) 服务,你就可以透过 IP 伪装 来使你的私有 IP 的计算机也可以连上 Internet 啰!

3. 特殊的 loopback IP 网段

好了,那么除了这个预留的 IP 网段的问题之外,还有没有什么其他的怪东西呢?当然是有啦!不然鸟哥干嘛花时间来唬 XX 呢?没错,还有一个奇怪的 Class A 的网域,那就是 lo 这个奇怪的网域啦 (注意:是小写的 o 而不是零喔)!这个 lo 的网络是当初被用来作为测试操作系统内部循环所用的一个网域,同时也能够提供给系统内部原本就需要使用网络接口的服务 (daemon) 所使用
简单的说,如果你没有安装网络卡在的机器上面, 但是你又希望可以测试一下在你的机器上面设定的服务器环境到底可不可以顺利运作,这个时候怎么办, 嘿嘿!就是利用这个所谓的内部循环网络啦!这个网段在 127.0.0.0/8 这个 Class A,而且默认的主机 (localhost) 的 IP 是 127.0.0.1 呦!所以啰,当你启动了你的 WWW 服务器,然后在你的主机的 X-Window 上面执行 http://localhost 就可以直接看到你的主页啰!而且不需要安装网络卡呢!测试很方便吧!
此外,你的内部使用的 mail 怎么运送邮件呢?例如你的主机系统如何 mail 给root 这个人呢?嘿嘿!也就是使用这一个内部循环啦!当要测试你的 TCP/IP 封包与状态是否正常时,可以使用这个呦!(所以哪一天有人问你嘿!你的主机上面没有网络卡,  那么你可以测试你的 WWW 服务器设定是否正确吗?这个时候可得回答:当然可以啰!使用 127.0.0.1 这个 Address 呀! ^_^ ) 


IP 的取得方式
基本上,主机的 IP 与相关网域的设定方式主要有:
直接手动设定(static):  你可以直接向你的网管询问可用的 IP 相关参数,然后直接编辑配置文件 (或使用某些软件功能) 来设定你的网络。 常见于校园网络的环境中,以及向 ISP 申请固定 IP 的联机环境;
透过拨接取得:  向你的 ISP 申请注册,取得账号密码后,直接拨接到 ISP ,你的 ISP 会透过他们自己的设定,让你的操作系统取得正确的网络参数。  此时你并不需要手动去编辑与设定相关的网络参数啦。目前台湾的 ADSL 拨接、光纤到大楼、光纤到府等,大部分都是使用拨接的方式。  为因应用户的需求,某些 ISP 也提供很多不同的 IP 分配机制。包括 hinet, seednet 等等都有提供 ADSL 拨接后取得固定 IP 的方式喔! 详情请向你的 ISP 洽询。
自动取得网络参数 (DHCP):  在局域网络内会有一部主机负责管理所有计算机的网络参数,你的网络启动时就会主动向该服务器要求 IP 参数, 若取得网络相关参数后,你的主机就能够自行设定好所有服务器给你的网络参数了。最常使用于企业内部、 IP 分享器后端、  校园网络与宿舍环境,及缆线宽带等联机方式。


Netmask, 子网与 CIDR (Classless Interdomain Routing)


子网切分
刚刚提到 Class C 还可以继续进行子域 (Subnet) 的切分啊,以
192.168.0.0 ~192.168.0.255 这个情况为例,他要如何再细分为两个子域呢?我们已
经知道 Host_ID 可以拿来当作 Net_ID,那么 Net_ID 使用了 25 bits 时,就会如下
所示:



例题:



无层级 IP: CIDR (Classless Interdomain Routing)

路由概念
我们知道在同一个区网里面,可以透过 IP 广播的方式来达到资料传递的目的。但如果是非区网内的数据呢? 这时就得要透过那个所谓的邮局 (路由器) 的帮忙了。

下列图示当中共有两个不同的网段,分别是 Network A 与 Network B,这两个网段是经由一部路由器 (Server A) 来进行数据转递的,好了,那么当 PC01 这部主机想要传送数据到 PC11 时, 他的 IP 封包该如何传输呢?


我们知道 Network A(192.168.0.0/24) 与 Network B(192.168.1.0/24) 是不同网段,所以 PC01 与 PC11 是不能直接互通数据的。不过,  PC01 与 PC11 是如何知道他们两个不在同一个网段内?这当然是透过 Net_ID 来发现的!那么当主机想要传送数据时,他主要的参考是啥? 很简单!是『路由表 (route table)』,每部主机都有自己
的路由表』, 让我们来看一看预设的情况下, PC01 要如何将数据传送到 PC02 呢?
1.    查询 IP 封包的目标 IP 地址:
当 PC01 有 IP 封包需要传送时,主机会查阅 IP 封包表头的目标 IP 地址;
2.    查询是否位于本机所在的网域之路由设定:
PC01 主机会分析自己的路由表,当发现目标 IP 与本机 IP 的 Net_ID 相同时(同一网域),则 PC01 会直接透过区网功能,将数据直接传送给目的地主机。 
3.    查询预设路由 (default gateway):
但在本案例中,  PC01 与 PC11 并非同一网域,因此 PC01 会分析路由表当中是否有其他相符合的路由设定, 如果没有的话,就直接将该 IP 封包送到预设路由器 (default gateway) 上头去,在本案例当中 default gateway 则是 Server A 这一部。
4.    送出封包至 gateway 后,不理会封包流向
当 IP 由 PC01 送给 Server A 之后,  PC01 就不理会接下来的工作。而 Server A 接收到这个封包后, 会依据上述的流程,也分析自己的路由信息,然后向后继续传输到正确的目的地主机上头

Tips:
Gateway / Router :网关/路由器的功能就是在负责不同网域之间的封包转递 (IP Forwarding),由于路由器具有 IP Forwarding 的功能,并且具有管理路由的能力,  所以可以将来自不同网域之间的封包进行转递的功能。此外,你的主机与你主机设定的 Gateway 必定是在同一个网段内喔!
阅读全文
1 0