Li Kai

  • 主页
  • 所有文章
文章分类 友情链接 关于我

Li Kai

  • 主页
  • 所有文章

4.计算机网络-网络层

2016-07-23

本文简单介绍一下计算及网络中的网络层,主要包括数据的发送过程和网络层协议

1、数据发送过程

对于应用程序

  • 传输层:对数据进行分段(段)
  • 网络层:添加源、目的IP地址(包)
  • 数据链路层:添加源、目的MAC地址(帧)
    • 使用自己的子网掩码判断自己属于哪个网段、目标属于哪个网段
    • 如果属于同一网段:arp协议广播解析目标IP地址的MAC
    • 如果不属于同一网段:发送给路由器(网关),arp网关的MAC地址,然后把数据包发送给路由器
  • 物理层:转化成数字信号(bit)

2、网络层协议

网络层协议分层,ARP协议为IP协议服务,IP协议为ICMP协议和IGMP协议服务。

2-1、ARP协议

将IP地址通过广播,目标MAC地址为全F,获取IP地址的MAC地址。广播不能跨路由。

ARP网络欺骗:(网络执法官软件,可以规定任意两台计算机通或者不通),当计算机ARP广播的时候,网络执法官回复一个不存在的MAC地址。这样发送端发送的数据包全部被交换机丢弃掉了

2-2、ICMP协议

ping命令使用ICMP协议,ping可以查看时延,TTL表示生存周期,每过一个路由器,TTL减1

ping 8.8.8.8 -i 2 通过更改数据包TTL时间,能够跟踪数据包途径的路由器,(通过查看数据包返回的IP地址)

  • Linux TTL=64
  • Windows TTL=128
  • Unix TTL=255

2-3、IGMP协议

  • 点到点:好处,播放流媒体可以快进快退
  • 广播:视频讲课,老师控制计算机,实验室每个学生可以看到同样的内容。(好处,不用发送多份数据,只需要发送一份数据即可)
  • 组播=多播:(同一服务器,播放不同课程,),对服务器绑定多个多播IP地址,接收端设置不同的多播IP,就能接收到不同的数据。(缺点,不能调解视频的播放速率。可以用电视频道来理解多播)

2-4、IP协议

所有能够选路的协议都是IP协议

2-4-1、RIP协议

路由器均配置为RIP协议,周期性在广播路由表,即自己所连得网段信息(RIP协议选取跳数最少的连接),30s更新一次,广播最大的跳数为15

2-4-2、OSPF协议

选路的标准是带宽,而不是最少跳数。

3、IP数据包格式(IP协议)

IP数据包由首部和数据部分组成,首部分为固定部分和可变部分,固定部分有20个字节。

  • 版本:4位,TCP/IP版本号 v4/v6
  • 首部长度:4位,首部一共多长,因为有可变部分,所以有该字段
  • 总长度:2个字节,表示整个IP数据包的总大小(因为数据链路层IP数据包最大是1500字节,所以IP数据包>1500字节时,需要进行分片,才能被数据链路层接收)
  • 标识:2个字节,数据包分片以后的标识
  • 标志:数据包是否分片的标志位,占3位,目前只有两位有意义,最后一位MF=0,表示最后一个分片,MF=1表示后面还有分片。中间位DF=0是允许分片,DF=1时不允许分片。
  • 片偏移:13位

  • 生存时间:1个字节,TTL,每过一个路由器,MAC地址要修改,TTL要减1
  • 协议:数据是什么协议ICMP(1)、IGMP(2)、TCP(6)、UDP(17)、IPv6(41)、OSPF(89)
  • 首部检验和:检验首部是否有错,数据包检验过程如下:

  • 计算机网络

扫一扫,分享到微信

微信分享二维码
5.计算机网络-传输层
3.计算机网络-数据链路层
  1. 1. 1、数据发送过程
  2. 2. 2、网络层协议
    1. 2.1. 2-1、ARP协议
    2. 2.2. 2-2、ICMP协议
    3. 2.3. 2-3、IGMP协议
    4. 2.4. 2-4、IP协议
      1. 2.4.1. 2-4-1、RIP协议
      2. 2.4.2. 2-4-2、OSPF协议
  3. 3. 3、IP数据包格式(IP协议)
收藏文章
登录
表情删除后不可恢复,是否删除
取消
确定
图片正在上传,请稍后...
取消上传
评论内容为空!
  • 评论
1人参与,1条评论
  • 最新评论
2021年1月28日 12:06 likailiche [北京市网友]

效果不错

举报回复
该评论已关闭!
likai博客正在使用畅言云评
去社区看看吧
去热评看看吧
  • 手把手教你如何用golang实现一个timewheel时间轮 | LiKai的博客
    手把手教你如何用golang实现一个timewheel时间轮 | LiKai的博客
  • Golang高级教程(二)类型断言 | LiKai的博客
    Golang高级教程(二)类型断言 | LiKai的博客
  • 算法(二)深度优先搜索DFS | LiKai的博客
    算法(二)深度优先搜索DFS | LiKai的博客
  • 数据结构-队列 | LiKai的博客
    数据结构-队列 | LiKai的博客
  • 手把手教你如何用golang实现一个timewheel时间轮 | LiKai的博客
  • Golang高级教程(二)类型断言 | LiKai的博客
  • 算法(二)深度优先搜索DFS | LiKai的博客
  • 数据结构-队列 | LiKai的博客
热评话题
  • 数据结构-队列 | LiKai的博客
  • 算法(五)回溯 | LiKai的博客
  • SQL基础教程(四) | LiKai的博客
  • Golang高级教程(一)for-range, switch, select使用 | LiKai的博客
  • Python高级用法 | LiKai的博客
  • 算法(三)二分查找 | LiKai的博客
  • 算法(八)最短路径 | LiKai的博客
关闭
按钮 内容不能为空!
立刻说两句吧! 查看1条评论
  • 你收到0条新通知
  • 你有0条评论收到赞同
  • 你有0条新回复
  • 本日畅言云评热评新鲜出炉啦!
  • 你有0个任务已完成
  • 你收获0个畅言云评足迹
© 2021 Li Kai
Hexo Theme Yilia by Litten
  • 文章分类
  • 友情链接
  • 关于我

tag:

  • test
  • 数据结构
  • shell
  • 计算机网络
  • 数据库
  • 负载均衡
  • ovn
  • 算法
  • linux
  • kubernetes
  • sql
  • python
  • openstack
  • designate
  • neutron
  • golang
  • timewheel

    缺失模块。
    1、请确保node版本大于6.2
    2、在博客根目录(注意不是yilia根目录)执行以下命令:
    npm i hexo-generator-json-content --save

    3、在根目录_config.yml里添加配置:

      jsonContent:
        meta: false
        pages: false
        posts:
          title: true
          date: true
          path: true
          text: false
          raw: false
          content: false
          slug: false
          updated: false
          comments: false
          link: false
          permalink: false
          excerpt: false
          categories: false
          tags: true
    

  • 手把手教你如何用golang实现一个timewheel时间轮

    2021-04-04

    #算法#golang#timewheel

  • Golang线程池实现百万级高并发

    2021-03-21

    #golang

  • 基于ECMP的多活负载均衡策略

    2020-12-12

    #负载均衡

  • neutron metadata 服务详解

    2020-10-11

    #openstack#neutron

  • ovn为外部主机提供dhcp服务

    2020-09-20

    #ovn

  • Neutron网络troubleshooting

    2020-09-09

    #openstack#neutron

  • kubernetes中pod的自动伸缩

    2020-04-05

    #kubernetes

  • Golang高级教程(二)类型断言

    2020-02-04

    #golang

  • Golang高级教程(一)for-range, switch, select使用

    2020-02-02

    #golang

  • Kubernetes容器安全之Apparmor

    2020-01-04

    #kubernetes

  • 网络性能测试

    2019-09-19

    #计算机网络

  • 算法(十一)刷题常用语法python/go

    2019-07-18

    #算法#python#golang

  • 算法(十)快速排序

    2019-07-10

    #算法#python#golang

  • 算法(九)记忆化搜索

    2019-06-08

    #算法

  • linux常用指令

    2019-03-31

    #linux

  • OpenStack Designate简介

    2019-03-03

    #openstack#designate

  • 算法(八)最短路径

    2018-12-09

    #算法

  • 算法(七)并查集

    2018-10-21

    #算法

  • 算法(六)二叉树

    2018-09-19

    #算法

  • 算法(五)回溯

    2018-07-19

    #算法

  • Python yield使用

    2018-07-09

    #python

  • 算法(四)前缀和

    2018-07-05

    #算法

  • 算法(三)二分查找

    2018-05-19

    #算法

  • 算法(二)深度优先搜索DFS

    2018-04-20

    #算法

  • Python装饰器

    2018-04-19

    #python

  • Python高级用法

    2018-04-09

    #python

  • 算法(一)单调栈

    2018-03-19

    #算法

  • Python单例模式

    2018-03-08

    #python

  • Python编程规范

    2017-05-09

    #python

  • SQL基础教程(四)

    2017-04-19

    #数据库#sql

  • SQL基础教程(三)

    2017-04-11

    #数据库#sql

  • SQL基础教程(二)

    2017-03-24

    #数据库#sql

  • SQL基础教程(一)

    2017-03-19

    #数据库#sql

  • 9.计算机网络-QOS

    2016-08-19

    #计算机网络

  • 8.计算机网络-网络安全(下)

    2016-08-08

    #计算机网络

  • 7.计算机网络-网络安全(上)

    2016-08-01

    #计算机网络

  • 6.计算机网络-应用层

    2016-07-27

    #计算机网络

  • 5.计算机网络-传输层

    2016-07-24

    #计算机网络

  • 4.计算机网络-网络层

    2016-07-22

    #计算机网络

  • 3.计算机网络-数据链路层

    2016-07-17

    #计算机网络

  • 2.计算机网络-物理层

    2016-07-14

    #计算机网络

  • 1.计算机网络概述

    2016-07-09

    #计算机网络

  • Hash算法实现之MD5

    2016-04-09

    #算法

  • 数据结构-链表

    2016-04-02

    #数据结构

  • 数据结构-队列

    2016-04-01

    #数据结构

  • 数据结构-栈

    2016-03-31

    #数据结构

  • Shell基础

    2016-03-27

    #shell

  • Hello World

    2016-03-24

    #test

  • 我的博客园
  • 我的CSDN1
  • 我的CSDN2
李凯
研究生毕业于北邮
现就职于腾讯

一名奋斗在
OpenStack(Python)
Kubernetes(Golang)
的搬运工