zoukankan      html  css  js  c++  java
  • TCP/IP详解卷一03

    1.IP协议:不可靠(unreliable):不能保证IP数据报能成功到达目的地

          无连接(connectionless):IP并不维护任何关于后续数据报的状态信息,每个数据报的处理是相互独立的。IP数据报可以不按照顺序接收。

    2.命令:ifconfig和netstat

    3.IP首部(20个字节):

        4位版本(IPv4)---4位首部长度(32bit的数目)---8位服务类型(TOS分别代表:最小时延、最大吞吐量、最高可靠性和最小费用)---总长度字段(整个IP数据报的长度,以字节为单位)---16位标识(标识字段唯一地标识主机发送的每一份数据报,通常每发送一份报文值就会加1 )----3位标志字段(        )---13位片偏移字段(         )----8位生存时间(TTL,生存时间字段设置数据报可以经过的最多路由器数,TTL的初始值由源主机设置(32或64),一旦经过一个处理它的路由器,它的值就会减一,当该字段的值为0时,就会被丢弃,并发送ICMP报文通知源主机)---8位协议字段(根据它可以识别是哪个协议向IP传送协议) ----16位首部检验和字段(根据IP首部计算的检验和码。它不对首部后面的数据进行计算。ICMP、IGMP、UDP和TCP在它们各自的首部中均含有同时覆盖首部和数据检验和码)---32位源IP地址----32位目的IP地址-----任选项

        注意:计算数据报的IP检验和:1。 检验和字段置为0。2。对首部中每个16bit进行二进制反码求和,将结果存在检验和字段中。当收到一份IP数据报后,同样对首部中每个16bit进行二进制反码的求和。由于接收方在计算过程中包含了发送方存在的首部中的检验和,因此,如果首部在传输过程中没有任何差错,那麽接收方计算的结果应该全为1,如果不全为1(即检验和错误),那麽IP就丢弃收到的数据报。但是不生成差错报文,由上层去发现丢失的数据报并进行重传。

    4.IP路由选择

      在一般的体制中,IP可以从TCP、UDP、ICMP和IGMP接收数据报并进行发送,或者从一个网络接口接收数据报(待转发的数据报)并进行发送。IP层在内存中有一个路由表。

      工作过程:当收到一份数据报并进行发送时,对该表搜索一次。当数据报来自某个网络接口时,IP会首先检查目的IP地址是否为本机的IP地址之一或者IP广播地址。如果确实是这样,数据报就被送到由IP首部协议字段所指定的协议模块进行处理。如果数据报的目的不是这些地址,那麽,(1)如果IP层被设置为路由表的功能,那麽就对数据报进行转发;否则,就会数据报被丢弃。

      路由表中的每一项包含的信息:

        (1)目的IP地址

        (2)下一站或者下一跳的路由器(next-hop router)

        (3)标志(1。指明目的IP地址是网络地址还是主机地址2。指明下一站路由器是否是真正的路由器的IP地址)

        (4)为数据报的传输指定一个网络接口

    IP路由选择是逐跳地(hope-by-hope )进行的。需要完成以下功能:

        (1)搜索路由表,寻找能与目的IP地址完全匹配的表目

        (2)搜索路由表,寻找能与目的网络号相匹配的表目

        (3)搜索路由表,寻找标为‘“默认(default)”的表目

             (4)如果以上操作都没有被执行,就会返回一个“主机不可达”或者“网络不可达”的错误。

      IP路由选择的另一个基本特性:为一个网络指定一个路由器,而不必为每一个主机指定一个路由器,从而极大地缩小了路由表的规模。

      IP路由选择的关键点:

        (1)大多数主机和路由器可以用默认路由来处理任何目的,除非它在本地局域网上

        (2)数据报中的目的IP地址始终不发生任何变化,所有的路由选择决策都是基于这个目的IP地址

        (3)每个链路层可能具备不同的数据帧首部,而且链路层的目的地址始终指向下一站的链路层地址。

    5.子网寻址:将主机号再分成一个子网号和一个主机号,可以缩小Interest路由表的规模。

    6.子网掩码:

        6.1给定IP地址和子网掩码以后,主机就可以确定IP数据报的目的是:(1)本子网上的主机(2)本网络中其他子网中的主机(3)其他网络上的主机

        6.2在给定两个IP地址和子网掩码后,IP路由选择功能一直进行这样的比较

    7.特殊情况的IP地址

     0:所有比特位全为0;-1表示所有比特位都为1;netid,subnetid和hostid分别表示不全为0或者全1的对应字段。子网号栏为空表示该地址并没有进行子网划分。

    8.ifconfig命令

        ifconfig -a

        ifconfig (interface)

    9.netstat命令

        netstat -i(打印出接口信息)

        netstat -n(打印出ip地址,不是主机名称)

        netstat -in(每个接口的MTU,输入分组数,输入错误,输出分组数,输出错误,冲突以及当前输出队列长度) 

      

        

      

      

  • 相关阅读:
    基于Python的人脸动漫转换
    let 与 var的区别
    【LeetCode】汇总
    【HDU】4632 Palindrome subsequence(回文子串的个数)
    【算法】均匀的生成圆内的随机点
    【LeetCode】725. Split Linked List in Parts
    【LeetCode】445. Add Two Numbers II
    【LeetCode】437. Path Sum III
    【LeetCode】222. Count Complete Tree Nodes
    【LeetCode】124. Binary Tree Maximum Path Sum
  • 原文地址:https://www.cnblogs.com/any000yna/p/7459574.html
Copyright © 2011-2022 走看看