注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Travel,Discover

Time ends everything~

 
 
 

日志

 
 

网络基础概念复习  

2010-03-20 18:23:00|  分类: 工作日志 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
以太网络
以太网络在发展时就使用一种名为 CSMA/CD (Carrier-Sense Multiple Access with Collision Detection) 的技术。 这种技术的特点就是当节点想要在网络媒介上面传输数据时, 会先侦测该媒介上面是否有其它的节点正在使用,确定没有其它节点在使用该媒介时,该节点才会开始传送数据。 并且,当节点开始传送数据时,节点也能够同时侦测是否有发生碰撞的现象。(注:任何一个具有 MAC 的网络媒介接在该网络上面,就称为一个节点"node", 所以,一部主机就是一个 node !) 不过,事实上在这样的共享媒介环境下,当网络相当忙碌时, 数据的碰撞 (collision) 还是会发生的!)
在以太网络内,我们就是以 MAC (Media Access Control, 媒介存取控制)来管理数据传送的。 而 MAC 其实就是一个帧( frame ), 你可以把它想成是一个在网络线上面传递的包裹, 而这个包裹是整个网络硬件上面传送数据的最小单位。 也就是说,网络线可想成是一条『一次仅可通过一个人』的独木桥, 而 MAC 就是在这个独木桥上面动的人。


Hub与Switch的区别

Hub 是网络共享媒介, Hub 将所有来自 PC 的 frame 再次送出去给所有的 PC 而已,所以它是个共享媒体。
Switch 则不然!Switch 内部具有微处理器以及内存,这个内存可以记录每个 switch port 与其连接的 PC 的 MAC 地址,所以,当来自 switch 两端的 PC 要互传数据时, 每个frame将不会透过CSMA/CD 的监听,而是透过 switch 直接将该 frame 送到目标主机上头去! 也就是说, switch 不是个共享媒介,且 switch 的每个端口 (port) 都具有独立的带宽。


OSI七层模型
  1. 物理层: 定义了最基础的网络硬件标准,包括各种网络线、各种无线联机方式,各种设备规范等等
  2. MAC层:Frame,帧格式、错误控制、流量控制、检查数据传输错误,ARP(解析MAC与IP对应)
  3. 网络层: Packet,route,隐藏物理层与MAC层
  4. 传输层: TCP/UDP/ICMP,发送端接收端的联机,数据包的格式与传送流程控制,传输过程的侦测检查,重传机制
  5. 会话层: 3次握手
  6. 表示层: 数据格式转换成网络标准格式,数据的加密解密
  7. 应用层: 网络应用程序相关,包括档案的读取、复制、开启、关闭
可以将各个分层想成是一个一个的大袋子, 而且每个袋子都必须要包含在下一个袋子内,例如 IP 的袋子必须要装在 MAC 帧的袋子内。所以,由于最后被传送的袋子(物理层)的限制,我必须要将例如 10Mbytes 的档案先切成数个小包, 然后将这些小包给它包到 TCP 的袋子内,这个袋子记载了我的数据内容;然后这个袋子还要装到 IP 这个袋子内,IP 这个袋子会记录我的地址以及要传送到的目的地的地址;最后再将这个 IP 的袋子装到 MAC 的帧袋子内, 这个袋子就记录了可以在同一区域内传递袋子的网卡卡号了。


IP 与 MAC

192.168.0.0~192.168.0.255 这个 C Class 的说明:
11000000.10101000.00000000.00000000
11000000.10101000.00000000.11111111
|-----------------Net_ID-----------------|----host----|
一个网域当中的定义是『在同一个物理网段内,主机的 IP 具有相同的 Net_ID ,并且具有独特的 Host_ID』;
在同一个网段内,Net_ID 是不变的,而 Host_ID 则是不可重复,此外, Host_ID 在二进制的表示法当中,不可同时为 0 也不可同时为 1 ,例如上面的例子当中, 192.168.0.0 ( Host_ID 全部为 0 )以及 192.168.0.255 ( Host_ID 全部为 1 ) 不可用来作为网段内主机的 IP 设定,也就是说,这个网段内可用来设定主机的 IP 是由 192.168.0.1 到 192.168.0.254。
在同一个网域之内,每一部主机都可以透过 MAC 讯框的格式传递资料, 并透过 ARP 协议与广播封包 (broadcast) 取得 MAC 与 IP 的对应后,直接利用 MAC 讯框传递数据。
在同一个物理网段之内,如果两部主机设定成不同的 IP 网段,则两部主机无法直接以 MAC 讯框格式进行数据的传递,因为广播封包无法查询到 MAC 与 IP 的对应。
当 Host_ID 所占用的位越大,亦即 Host_ID 数量越多时,表示同一个网域内可用以设定主机的 IP 数量越多。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
IP 的分级
以二进制说明 Network 第一个数字的定义:
A Class : 0xxxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx==>NetI_D 的开头是 0
               |----net----|-------------------host-------------------|
B Class : 10xxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx ==>NetI_D 的开头是 10
               |------------net------------|------------host----------|
C Class : 110xxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx ==>NetI_D 的开头是 110
               |--------------------net-------------------|---host----|
三种分级在十进制的表示:
A Class : 0.xx.xx.xx ~ 126.xx.xx.xx
B Class : 128.xx.xx.xx ~ 191.xx.xx.xx
C Class : 192.xx.xx.xx ~ 223.xx.xx.xx
127.xx.xx.xx 这个 A Class 的网段拿到操作系统当中,来做为内部的回路测试!所以,127.0.0.1 就不可以用来做为其它网络卡的网络网域之设定。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Netmask 与子网络的划分
192.168.0.0~192.168.0.255 这个 C Class 的 Netmask 说明
11000000.10101000.00000000.00000000
11000000.10101000.00000000.11111111
|-------------------Net_ID---------------|----host---|
11111111.11111111.11111111.00000000 <== Netmask 二进制
255 . 255 . 255 . 0 <== Netmask 十进制

Class A, B, C 三个等级的 Netmask 表示方式:
A Class : 11111111.00000000.00000000.00000000 ==> 255. 0. 0. 0
B Class : 11111111.11111111.00000000.00000000 ==> 255.255. 0. 0
C Class : 11111111.11111111.11111111.00000000 ==> 255.255.255. 0

在 192.168.0.0 ~ 192.168.0.255 这个 IP 网段里面的相关网络参数就有:
Netmask: 255.255.255.0 <==网域定义中,最重要的参数
Network: 192.168.0.0 <==第一个 IP
Broadcast: 192.168.0.255 <==最后一个 IP
可用以设定成为主机的 IP 数:
192.168.0.1 ~ 192.168.0.254

我们已经知道 Host_ID 可以拿来当作 Net_ID,那么 Net_ID 使用了 25 bits 时,就会如下所示:
原本的 C Class 的 Net_ID 与 Host_ID 的分别
11000000.10101000.00000000.00000000 Network: 192.168.0.0
11000000.10101000.00000000.11111111 Broadcast: 192.168.0.255
|------------------Net_ID----------------|----host---|
切成两个子网络之后的 Net_ID 与 Host_ID 为何?
11000000.10101000.00000000.0 0000000 多了一个 Net_ID 了, 为0
11000000.10101000.00000000.1 0000000 多了一个 Net_ID 了, 为1
|----------------------Net_ID--------------------|----host---|
第一个子网络
Network:    11000000.10101000.00000000.0 0000000 192.168.0.0
Broadcast: 11000000.10101000.00000000.0 1111111 192.168.0.127
                 |--------------------Net_ID----------------|---host--|
Netmask:   11111111.11111111.11111111.1 0000000 255.255.255.128
所有 IP 与网域表示式:
192.168.0.0/25 或 192.168.0.0/255.255.255.128

第二个子网络
Network:    11000000.10101000.00000000.1 0000000 192.168.0.128
Broadcast: 11000000.10101000.00000000.1 1111111 192.168.0.255
                 |---------------------Net_ID---------------|---host--|
Netmask:   11111111.11111111.11111111.1 0000000 255.255.255.128
所有 IP 与网域表示式:
192.168.0.128/25 或 192.168.0.128/255.255.255.128
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
IP 的种类与取得方式
私有 IP 也分别在 A, B, C 三个 Class 当中各保留一段作为私有 IP 网段,那就是:
? A Class:10.0.0.0 - 10.255.255.255
? B Class:172.16.0.0 - 172.31.255.255
? C Class:192.168.0.0 - 192.168.255.255
由于这三个 Class 的 IP 是预留使用的,所以并不能直接作为 Internet 上面的连接之用,不然的话,到处都有相同的IP了
私有IP连上Internet:设定一个防火墙+NAT,透过IP伪装,使私有IP的计算机也能连上Internet。
IP协议表头主要参数项:TTL、protocol、source IP、destination IP


网络层之路由概念
网关/路由器的功能就是在负责不同网域之间的封包转递 ( IP Forwarder ),由于路由器具有 IP Forwarder 的功能,并且具有管理路由的能力, 所以可以将来自不同网域之间的封包进行转递的功能。此外,主机与主机设定的Gateway 必定是在同一个网段内喔!
每一部主机里面都会存在着一个路由表 ( Route table ),数据的传递将依据这个路由表进行传送!而一旦封包已经经由路由表的规则传送出去后, 那么主机本身就已经不再管封包的流向了,因为该封包的流向将是下一个主机 (也就是那部 Router )来进行传送,而 Router 在传送时,也是依据 Router 自己的路由表来判断该封包应该经由哪里传送出去的!
route结果中的destination其实就是network网段,与netmask一起组合成一部主机或者网域。


TCP/UDP与端口port
Linux 环境下, 各网络服务与 port number 的对应预设给他写在 /etc/services 档案内喔!
不过如果是 client 端的话,由于 client 端都是主动向 server 端要数据, 所以 client 端的 port number 就使用随机取一个大于 1024 以上且没有在用的 port number 来进行联机了。
注意:小于 1023 以下的埠口要启动时, 启动者的身份必须要是 root 才行

       连接端口                          服务名称与内容
       20                                    FTP-da
ta,档案传输协议所使用的主动数据传输端口
       21                                    FTP,档案传输协议的命令通道
       22                                    SSH,较为安全的远程联机服务器
       23                                    Telnet,早期的远程联机服务器软件
       25                                    SMTP,简单邮件传递协议,用在作为 mail server 的端口
       53                                    DNS,用在作为名称解析的领域名称服务器
       80                                    WWW,这个重要吧!就是全球信息网服务器
       110                                   POP3,邮件收信协议,办公室用的收信软件都是透过它
       443                                  https,有安全加密机制的WWW服务器
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
三次握手
网络基础概念复习 - Ya.Zhu - Travel,Discover

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
TCP 封包确实是比较可靠的,因为通过三向交握嘛!不过,也由于三向交握的缘故, TCP 封包的传输速度会较慢。 至于 UDP 封包由于不需要确认对方是否有正确的收到数据,故表头数据较少,也因为如此所以 UDP 就可以在 Data 处填入更多的数据了。同时 UDP 比较适合需要实时反应的一些数据流,例如实时通讯软件或者是影像实时传送软件等, 就可以使用这类的封包传送说。
UDP 传输协议并不考虑联机要求、联机终止与流量控制等特性, 所以使用的时机是当数据的正确性不很重要时,例如上面提到的实时通讯软件啊!
另外,很多的软件其实是同时提供 TCP 与 UDP 的传输协议的,举例来说,查询主机名称的 DNS 服务就同时提供了 UDP/TCP 协议。由于 UDP 较为快速,所以我们 client 端可以先使用 UDP 来与服务器联机。 但是当使用 UDP 联机却还是无法取得正确的数据时,便转换为较为可靠的TCP传输协议来进行数据的传输。 这样可以同时兼顾快速与可靠的传输!
ICMP 的全称是『 Internet Control Message Protocol, 因特网讯息控制协议 』。 基本上,ICMP 是一个错误侦测与回报的机制,最大的功能就是可以确保我们网络的联机状态与联机的正确性! 同样的,ICMP 封包也是必须要装在 IP 封包的 Data 内才行喔!


DNS
Domain Name System (DNS) , DNS 这个服务的最大功能就是在进行『主机名称与该主机的 IP 的对应』的一项协议。在 Linux 里面,DNS 主机 IP 的设定就是在 /etc/resolv.conf 这个档案里面!

  评论这张
 
阅读(209)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018