网络基础

  1. ARP/RARP
  • IP
    1. IP地址
  • ICMP
  • TCP/UDP
  • CSMA/CD
  • 遇到的问题
  • 引用
  • TCP/IP 协定家族中,其层阶关係如下

    TCP/IP 的资料流是逐层传递的

    OSI 7层:前3属网络群组,后4属于使用者群组

    TCP/IP 运作举例

    1. 应用程式阶段:妳打开瀏览器,在瀏览器上面输入网址列,按下 [Enter]。此时网址列与相关资料会被瀏览器包成一个资料, 並向下传给 TCP/IP 的应用层;
    2. 应用层:由应用层提供的 HTTP 通讯协定,將来自瀏览器的资料包起来,並给予一个应用层表头,再向传送层丟去;
    3. 传送层:由於 HTTP 为可靠连线,因此將该资料丟入 TCP 封包內,並给予一个 TCP 封包的表头,向网路层丟去;
    4. 网路层:將 TCP 包裹包进 IP 封包內,再给予一个 IP 表头 (主要就是来源与目標的 IP 囉),向链结层丟去;
    5. 链结层:如果使用乙太网路时,此时 IP 会依据 CSMA/CD 的標准,包裹到 MAC 讯框中,並给予 MAC 表头,再转成位元串后, 利用传输媒体传送到远端主机上。

    IP地址应用于OSI第三层,即网络层,而MAC地址应用在OSI第二层,即数据链路层。
    OSI与TCP/IP

    ARP/RARP

    1. ARP 协定:Address Resolution Protocol,获取目标IP对应的物理地址,实际传输都是靠物理地址.
      ARP 是 TCP/IP 设计者利用乙太网的广播性质﹐设计出来的位址解释协定。
    2. RARP 协定:Reverse Address Resolution Protocol,利用广播,查询网路上其它主机而得到自己的 IP 位址.
    3. PROXY ARP:代理 (Proxy) ARP 通常用来在路由器上代为回答在它后面的某个网路主机的 ARP 请求。
      这是一种欺骗手法﹐因为查询端会以为目標主机就是路由器本身﹐但事实上﹐机器是在另一个网路里面。

    IP


    在局域网内可通过ip广播来传递资料,非目标主机会自动丢弃资料(通过物理地址判断)

    同一局域网内设置成不同ip网段,广播地址不同造成无法透过广播的方式进行连线,需要路由(router)

    IP地址

    1. IP划分

      127 (即二进位的 01111111) 需要特別一提:它是保留给本机回路测试使用的﹐
      它不可以被运用於实际的网路中,其中的 127.0.0.1 则代表任何一台 IP 主机本身.

      • 主机号位置全为0 整个网段的地址
      • 主机号位置全为1 广播地址
    2. 私有IP
      住主要用于组建局域网

      由於 Internet 的爆炸性成长﹐IP 的位址买少见少﹐而且在很多机构里﹐
      也不是所有机器都有必要使用註册的 IP 位址。於是﹐我们就在 A﹑B﹑C 这三个层级里面﹐
      各划出一些位址范围保留给私有位址所用﹐它们分別是﹕

      • 10.0.0.0 - 10.255.255.255
      • 172.16.0.0 - 172.31.255.255
      • 192.168.0.0 - 192.168.255.255

        限制:

      • 私有位址的路由资讯不能对外散播;
      • 使用私有位址作为来源或目的位址的封包﹐不能透过 Internet 来转送;
      • 关於私有位址的参考纪录﹐只能限於內部网路使用
    3. Subnet:划分子网,从Host ID中借位
      Subnet

    4. Supernet:从NET ID中借位使用的是 CIDR (Classless Inter-Domain Routing)技术.可不必理会 IP 的开首字元﹐你可以隨便设定您的 Net Mask 长度。
      Supernet

    ICMP

    ICMP 的全名是『 Internet Control Message Protocol, 网际网路讯息控制协定 』。 基本上,ICMP 是一个错误侦测与回报的机制,最大的功能就是可以確保我们网路的连线状態与连线的正確性!

    ICMP 同样是透过 IP 封包来进行资料传送的啦!因为在 Internet 上面有传输能力的就是 IP 封包啊!

    应用:使用ping 与 traceroute透过 ICMP 封包的辅助来確认与回报网路主机的状態。

    设定防火墙的时候,容易忽略的就是这个 ICMP 的封包(只会记住 TCP/UDP),基本上,ICMP 封包也不应该全部都挡掉喔!

    TCP/UDP

    针对TCP表头,主要注意6个Control FLag.相应的TCP3次握手也主要是从这个来的

    • Urgent data:当 URG 被设定为 1 的时候﹐表示紧急资料的封包,接收端需优先处理。
    • Acknowledge field significant:当 ACK 为 1 的时候﹐表示此封包的 Acknowledge Number 是有效的﹐也就是用来回应上一个封包。一般都会为 1。一般只有只有第一个封包没有设。
    • Push function:如果 PSH 为 1 的时候﹐该封包连同传送缓衝区的其它封包应立即进行传送,而无需等待缓衝区满了才送。接收端必须儘快將此资料交给程式处理。
    • Reset:如果 RST 为 1 的时候﹐连线会被马上结束,而无需等待终止確认手续。
    • Synchronize sequence number:如果 SYN 为 1 时﹐表示要求双方进行同步处理﹐也就是要求建立连线。
    • No more data fro sender (Finish):如果封包的 FIN 为 1 的时候﹐就表示传送结束﹐然后双方发出结束回应﹐进而正式进入 TCP 传送的终止流程。

    TCPHead
    Sequence 和 Acknowledge 是 TCP 传送中的重要检测手段.
    TCPTrans
    UDPHead
    TCP 提供的是一个连线导向(Connection Oriented)的可靠传输.
    UDP 则是一个非连线型(Connectionless)的非可靠传输协定﹐
    它並不会运用確认机制来保证资料是否正確的被接收、
    不需要重传遗失的资料、资料的接收可不必按顺序进行、
    也不提供回传机制来控制资料流的速度。
    因此﹐ UDP 信息可能会在网路传送过程中丟失﹑重复﹑或不依顺序﹐
    而且抵达速度也可能比接收端的处理速度还快。

    • TCP: 传送可靠,程序可省略可靠机制,但速度慢
    • UDP: 传输量大,迅速,但是不可靠,需要程序自行提供可靠机制

    CSMA/CD

    乙太网路的传输协定 CSMA/CD (Carrier Sense Multiple Access with Collision Detection)

    虽然讯框会在整个网段(segment)中用广播的方式传递﹐而且所有节点都会收到讯框﹐
    然而﹐只有目的位址符合自己实体位址的讯框才会被接收下来。
    因此,不管上层协定是哪一种(可以是 TCP/IP 也可以是其它),
    在底层的传送若是使用 Ethernet 的话,就得使用 MAC (Media Access Control) 实体位址.

    1. 监听媒体使用情况 (Carrier Sense):A 主机要发送网路封包前,需要先对网路媒体进行监听,
      確认没有人在使用后, 才能够发送出讯框;

    2. 多点传输 (Multiple Access):A 主机所送出的资料会被集线器复製一份,
      然后传送给所有连接到此集线器的主机! 也就是说, A 所送出的资料,
      B, C, D 三部电脑都能够接收的到!但由於目標是 D 主机,因此 B 与 C 会將此讯框资料丟弃,而 D 则会抓下来处理;

    3. 碰撞侦测 (Collision Detection):该讯框资料附有检测能力,
      若其他主机例如 B 电脑也刚好在同时间发送讯框资料时,
      那么 A 与 B 送出的资料碰撞在一块 (出车祸) ,此时这些讯框就是损毁,
      那么 A 与 B 就会各自隨机等待一个时间, 然后重新透过第一步再传送一次该讯框资料。

    CSMA/CD连线

    每张乙太网路卡出厂时,就会赋予一个独一无二的卡號,那就是所谓的 MAC (Media Access Control)

    1. HUB 单纯的是一个 repeater﹐当它从一个 port (和 TCP 协定的 port 不一样﹐这里
      是指插网路线的接孔)接收信號进来之后﹐会將这个信號原原本本的送到所有其它
      port 上﹐不管哪些 port 是接到哪一台机器。

    2. 而 switch 呢﹖它自己有一份 table﹐记录著哪个 port 接到哪些 MAC 位址设备上。
      当信號从一个 port 进来之后﹐会检查这个 frame 的 destination 是哪个 MAC﹐然
      后按 table 找到这个 MAC 对应的 port ﹐而仅將信號往这个 port 送﹐其它的 port
      就不送了。

    遇到的问题

    1. 网络地址无法访问
      很可能是域名解析的问题. 站长工具超级ping,找出能用的ip,然后改hosts
      http://tool.chinaz.com/dns/ 产看其他地方获得的ip
      https://www.ipaddress.com/ 查看ip

       # 编辑host文件 增加ip映射
       sudo vim /etc/hosts
       192.30.253.112, 192.30.253.113  github.com
      

    引用

    1. 载波侦听多路访问
    2. 基础网络概念
    3. 网络基础

    转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以邮件至 yangbenbo@whu.edu.cn

    文章标题:网络基础

    本文作者:杨本泊

    发布时间:2019-12-15, 22:24:56

    最后更新:2023-07-09, 07:10:12

    原始链接:http://yangbenbo.github.io/2019/12/15/网络基础/

    版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

    目录