网络基础(一)

柔情痞子 提交于 2020-02-16 16:51:48

1. IP的组成与分类

IP最小可以由0.0.0.0一直到255.255.255.255,这些数字中还可以分为Net_ID(网络号码)和Host_ID(主机号码)两部分,以192.168.0.0到192.168.0.255为例:

192.168.0.0 ~ 192.168.0.255这个C类网址说明:

11000000.10101000.00000000.00000000

11000000.10101000.00000000.11111111

|---------------Net_ID----------------|-Host_ID-|

在同一个物理网段内,主机的IP具有相同的Net_ID,并具有独特的Host_ID,那么这些IP群就是同一个网络内的IP网段。

注:当所有的主机都是使用同一个网络设备链接在一起,这个时候这些主机在物理设备上其实是连接在一起的,那么就可以称这些主机在同一个物理网段内了。同一个物理网段内,可以依据不同的IP设置,而设置多个“IP网段”。

(1)Net_ID和Host_ID的限制

在同一个网段内,Net_ID是不变的,而Host_ID是不可重复的,并且HostID是不可同时为0或者同时为1的,因为全部为0表示整个网段的地址(NetWork IP),而全为1则表示为广播的地址(Broadcast IP)

(2)局域网内通过IP广播传递数据

在相同物理网段的主机如果使用相同的网络IP的范围(不可重复),则这些主机都可以通过CSMA/CD的功能直接在局域网中用广播进行网络的链接,即可以直接网卡对网卡传递数据(通过MAC数据帧)。

(3)不同局域网在相同的物理网段的情况

在同一个物理网段内,如果两个主机使用不同的IP网段地址,则由于广播地址的不同,导致无法通过广播的方式来进行连接,此时需要通过路由器(Router)来进行连接,才能将两个网络连接在一起。

(4)网络的大小

党Host_ID的占位越大,即Host_ID的数量越多时,表示同一个网络内可用以设定的主机的IP越多。

2. IP的分级

    A类:    0.XX.XX.XX    ~    127.XX.XX.XX

    B类:128.XX.XX.XX    ~    191.XX.XX.XX

    C类:192.XX.XX.XX    ~    223.XX.XX.XX

    D类:224.XX.XX.XX    ~    239.XX.XX.XX

    E类:240.XX.XX.XX    ~    255.XX.XX.XX

3. IP的种类与获取方式

    IPV4只有两种IP的类别,分别是:

    Public IP:公共IP,有Inter NIC统一规划的IP,这种IP才能连上Internet。

    Private IP:私有IP活保留IP,不能直接连上internet的IP,主要用于局域网络内的主机连接规划。

私有IP也分别在A,B,C三个Class中各保留一段作为私有IP网段,分别是:

    ClassA:    10.0.0.0    ~    10.255.255.255

ClassB:172.16.0.0    ~    172.31.255.255

ClassC:192.168.0.0    ~    192.168.255.255

    以上三个网段是预留使用的,所以并不能作为internet上边的链接使用,只作为内部私有网络的IP使用,有以下几个限制:

    (1)私有IP的路由信息不能对外散播

    (2)使用私有IP地址作为源或目的地址的数据包,不能通过internet来传送

    (3)关于私有IP的参考记录(如DNS),只限于内部网络使用。

特殊的Loopback IP网段   -----lo网络

     lo网络最初是被用来测试操作系统内部循环所用的一个网络。如果机器上没装网卡,但是又想测试下设置的服务器是否可正常工作,这时就可以使用这个回环网络了。

IP的获取方式:

     (1)直接手动配置    -----向ISP申请固定IP的链接环境

     (2)通过拨号获取    ------向ISP申请注册获取账号密码,链接ISP,ISP会根据他们自己的设置让你的操作系统获取正确的网络参数

    (3)自动获取网络参数(DHCP)   -----局域网会有一台主机负责管理所有的计算机的网络参数,你的网络启动时会主动向服务器要求网络参数,获取后,本地主机会自行设定好网络参数。

不管是上边那种获取方式,获取到的都是私有IP,无法架设网站。

4. 子网掩码(NetMask),子网与CIDR

     1. NetMask    ------NetID全为1,HostID全为0

        Class A,B,C的子网掩码表示如下:

       Class A:255.0.0.0,占8位

        Class B:255.255.0.0   占16位

        Class C:255.255.255.0    占24位

        Network IP       ------HostID全为0,子网的第一个起始IP,不可用作主机IP地址

        Broadcast IP   ------HostID全为1,子网的最后一个末尾IP,不可用作主机IP地址

       通常使用如下方法表示一个网络:

               Network/NetMask

               192.168.0.0/255.255.255.0

                192.168.0.0/24                              <<==因为NetID共有24位

5. 路由的概念

        两个网段的数据无法通过广播的方式传递数据了,此时就需要通过IP的路径选择(routing)功能了。使用route命令查询当前主机路由信息。

       不同网络的数据传输:

        (1)查询IP数据包的目的IP地址

        (2)查询目的IP地址是否位于本机所在网络的路由表中

        (3)查询默认路由(Default Gateway)

                   源和目的地址不在同一网络,首先源主机会先分析是否有其他符合的路由设置值,如果没有,则将数据发给默认网关。

        (4)送出数据包到Default gateway后,不理会数据包流向

6. IP与MAC:网络接口层的ARP和RARP协议

        internet上数据传输主要通过IP传递,但是链路层实际传递数据是通过以太网,以太网传递数据主要是通过网卡卡号(MAC),当我们需要了解某个IP配置于哪张以太网网卡时,我们的主机会对整个局域网发出ARP数据包,对方收到数据包,会把他们的MAC地址返回给我们,这样就可以传递数据了,我们会把IP和MAC对应关系保存在ARP table中,可使用arp命令查询ip/mac对应关系。

7. ICMP协议

        ICMP的全称是Internet Control Message Protocol,因特网信息控制协议。ICMP是一个错误的检测和报告的机制,最大的功能就是可以确保我们网络链接状态与链接的正确性。ICMP也是网络层的重要数据包之一,也是纳入到IP的数据包中,也就是说ICMP也是通过IP数据包进行数据传递的。ICMP主要是通过ping和traceroute命令来检测网络的状态。

8. TCP/IP传输层

    

TCP/IP 相关通信协议
应用层 HTTP,FTP,SMTP,POP3,NFS,SSH
传输层 TCP,UDP
网络层 IP,ICMP
网络接口层 LAN,WAN,ARP

     网络层的IP数据包只负责将数据送到正确的目标主机上去,但数据包会不会被正确接收,那就是传输层的任务了。

     1. 面向连接的TCP协议

                         

         报头数据内容

         (1)源端口与目的端口

        (2)数据包序号(seq num)    ----- TCP数据包过大时,大于IP数据包容许长度,就需要进行分段,这个数据包序号就是记录每个数据段的序号,以便数据接收端可以将TCP数据重组。

        (3)回应序号(Ack num)    -----当client收到这个确认码时,表示之前的数据包已经被正确的收下了。

        (4)Data offset    -----报文头中有个Options字段,这个字段的长度是非固定的,为了确认整个TCP数据包的大小,就需要这个标志来说明数据包字段的起始位置。

        (5)Reserved     ----保留字段

       (6)Code(Control Flag)----- 包含6个bit

           1URG:紧急指针标志,为1时表示紧急指针有效,为0则忽略紧急指针。

           2ACK:确认序号标志,为1时表示确认号有效,为0表示报文中不含确认信息,忽略确认号字段。

           3PSHpush标志,为1表示是带有push标志的数据,指示接收方在接收到该报文段以后,应尽快将这个报文段交给应用                   程序,而不是在缓冲区排队。

          4RST:重置连接标志,用于重置由于主机崩溃或其他原因而出现错误的连接。或者用于拒绝非法的报文段和拒绝连接请                   求。

           5SYN:同步序号,用于建立连接过程,在连接请求中,SYN=1ACK=0表示该数据段没有使用捎带的确认域,而连接                     应答捎带一个确认,即SYN=1ACK=1

           6FINfinish标志,用于释放连接,为1时表示发送方已经没有数据发送了,即关闭本方数据流

        (7)Window(滑动窗口)

                  主要是控制数据包流量的,可以告诉对方目前本机的缓冲器(Receive Buffer)还可以接受数据包,当window=0时,代                    表缓冲器已满,应该暂停传输数据。window的但是是byte。

        (8)CheckSum(确认校验码)

                  数据发送前,会进行一个校验动作,并将校验值标注在这个字段上,接受者会对数据包再次进行验证,并比较校验                          值, 符合的话,就接收,否则会认为数据损坏,要求发送端重发该数据。

        (9)Urgent Pointer(紧急数据)

                  这个字段是在URG=1时才会产生作用,可以告知紧急数据的位置。

    2. TCP的三次握手

         A:数据包发起

               当客户端想要对服务器连接时,就必须要发出一个要求链接的数据包,客户端随机选取一个大于1024的端口,然后在TCP的报文头中必须要带有SYN的主动链接(SYN=1),并记下发送链接数据包给服务器端的序号(SEQ NUM=10001)

        B:数据包的接收和确认数据包传送

               当服务器接到这个数据包,并且确定要接收这个数据包,就会开始制作一个同时包含SYN=1,ACK=1的数据包,其中的ack num时要给client确认用的,所以该数据会比A步骤里的seq num多一号(ack num=10001+1),我们服务器也必须确认客户端可以接收我们的数据包才行,所以也会发送一个seq num=20001的数据包给客户端,并且开始等待客户端给我们服务器端的响应。

        C:回送确认数据包

              当客户端收到服务端的ACK(10002)后,就能确认之前那个数据包被服务端正确接收了,接下来如果客户端也同意同服务端建立连接时,就会再次发送一个确认数据包ACK=1给服务器,也就是ack num=20002.

        D:取得最后确认

               在服务器收到带有ACK=1的且ack num=20002序号的数据包时,就能够建立起这次连接了。

    3. 无连接的UDP协议

         UDP的全称是User Datagram Protocol,即用户数据包协议。不提供可靠的传输模式,UDP传输过程中,接收端接收数据后,不会回复响应数据包给发送端,不需要进行三次握手,所以UDP传输较快,并且报头较少,所以可以携带更多的数据。

          

     

    

 

    

 

 

 

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!