zoukankan      html  css  js  c++  java
  • 计算机网络原理精讲第四章--网络层

    4.1 基本概念

    4.2 网络层提供的服务


    负责在不同网络之间尽力转发数据包,基于数据包的IP地址转发,不负责丢失重传,不负责数据包顺序

    4.3 网络层如何转发数据包

    发送端
    1、应用程序准备要传输的文件
    2、传输层 将文件分段并编号
    3、网络层 添加目标IP地址、源IP地址
    4、数据链路层 分两张情况,一种使用自己的子网掩码判断自己在哪个网段;另一种使用自己的子网掩码,判断目标地址在哪个网段;如果是同一个网段,就使用ARP协议广播解析目标IP地址的MAC地址;如果不是同一个网段,则将数据发送给网关,交给路由器选择下一跳,直到到达目标地址

    4.4 网络设备和OSI参考模型

    计算机通信过程,本网段通信和跨网段通信的过程

    4.5 网络层协议

    4.5.1 IP协议

    引自wiki:网际协议(英语:Internet Protocol,缩写:IP;也称互联网协议)是用于分组交换数据网络的一种协议。IP是在TCP/IP协议族中网络层的主要协议,任务仅仅是根据源主机和目的主机的地址来传送数据。为此目的,IP定义了寻址方法和数据报的封装结构。

    4.5.2 ARP协议

    将IP地址通过广播,目标MAC地址是FF-FF-FF-FF-FF-FF,解析目标IP地址的MAC地址,广播不能跨路由

    4.5.3 网际控制报文协议 ICMP

    ping命令学习ICMP

    4.5.4 Internet组播管理协议 IGMP

    网路群组管理协议(英语:Internet Group Management Protocol,缩写:IGMP)是用于管理网路协议多播组成员的一种通信协议。IP主机和相邻的路由器利用IGMP来创建多播组的组成员。像ICMP用于单播连接一样,IGMP也是IP多播说明的一个完整部分。 IGMP为互联网协议的一种,属于开放系统链接(OSI) 模块的第三层协议,IP主机用它将主机的多点发送成员人数报告给临近的多点发送路由器

    4.5.5 RIP协议

    引自wiki:路由信息协议(英语:Routing Information Protocol,缩写:RIP)是一种内部网关协议(IGP),为最早出现的距离向量路由协定。属于网络层,其主要应用于规模较小的、可靠性要求较低的网络,可以通过不断的交换信息让路由器动态的适应网络连接的变化,这些信息包括每个路由器可以到达哪些网络,这些网络有多远等。
    用于配置动态路由,适用于小规模网络

    4.5.6 OSPF协议

    引自wiki:开放式最短路径优先(英语:Open Shortest Path First,缩写为 OSPF)是对链路状态路由协议的一种实现,隶属内部网关协议(IGP),故运作于自治系统内部。采用戴克斯特拉算法(Dijkstra's algorithm)被用来计算最短路径树。它使用“代价(Cost)”作为路由度量。链路状态数据库(LSDB)用来保存当前网络拓扑结构,路由器上属于同一区域的链路状态数据库是相同的(属于多个区域的路由器会为每个区域维护一份链路状态数据库)。OSPF分为OSPFv2和OSPFv3两个版本,其中OSPFv2用在IPv4网络,OSPFv3用在IPv6网络。OSPFv2是由RFC 2328定义的,OSPFv3是由RFC 5340定义的。
    用于配置动态路由,适用于大中型规模网络

    4.6 ipv4的IP数据包格式(重点)


    数据部分来自传输层

    上图中,一行代表32个比特,等于4个字节,固定部分一共5行,总共20个字节
    各个字段意义如下

    版本:用来表示TCP/IP协议的版本,例如ipv4、ipv6
    首部长度:规定首部的长度
    区分服务:区分不同的流量进行排队(QOS),十六进制表示
    总长度:16个比特表示,一个数据包最大可用2的16次方减1对于65535个字节表示
    标识:用于给网络层数据包分片标识,根据标识组装成完整的数据包
    标志:标志(flag)占3位比特,用于表示数据包是完整的还是其中一个分片。目前只有前两位有意义,标志字段的最低位是MF(More Fragment)。MF=1表示后面"还有分片"。MF=0表示最后一个分片。标志字段中间一位是DF(Don't Fragment)。只有当DF=0时才允许分片。当数据包不分片时,这3位是 "010" 表示
    片偏移:记录分片后每个数据包的第一个字节占完整数据包的第多少个字节(从0计算),再除以8表示
    生存时间:在IP数据包中,用来表示数据包的生存时间,每经过一个路由器,生存时间减一;Linux下默认64,window128,Unix默认255
    协议:用来表示数据部分的数据是属于什么协议的,常见的协议号十进制表示的有ICMP协议1,IGMP协议2,TCP协议6,UDP协议17,ipv6协议41,OSPF协议89
    首部校验和:接收端用此来校验数据包的正确性,最后计算结果为0,则保留数据包,否则认为数据包在传输过程中被修改了,丢弃数据报
    源地址:源ip地址
    目的地址:目标ip地址
    可选字段(长度可变):用于一些自定义设计,在ipv6格式的数据包中已取消
    填充:当可选部分不够位数时,用来填充的部分
    数据部分:如果不分片,数据包的数据最大不超过1480字节

  • 相关阅读:
    CALayer 的一些重要属性
    [Google] Inorder Successor in Binary Search Tree, Solution
    [LeetCode] Container With Most Water, Solution
    [C++ Summary]
    [LeetCode] Count and Say, Solution
    [LeetCode] Construct Binary Tree from Preorder and Inorder Traversal, Solution
    [LeetCode] Convert Sorted List to Binary Search Tree, Solution
    [FaceBook] Hanoi Moves, Solution
    逻辑题汇总
    [Facebook] Products of all elements
  • 原文地址:https://www.cnblogs.com/AutoSmart/p/11005415.html
Copyright © 2011-2022 走看看