网络层

学习网络层,最重要的就是学习IP协议,它保证了我们的数据有能力从一台主机递达另外一台主机。首先来看看IP协议的报头信息。

IP协议和TCP协议一样,报头都是固定的20个字节。
4位版本号:ip协议有ipv4和ipv6,这个字段标识的一般是我们的ipv4协议。
4位首部长度:即就是IP数据的报头长度。
8位服务类型:3位优先权字段以及舍弃,4位TOS字段和一位保留字段。
16位总长度:标识IP数据段的总长度,包括报头和有效载荷。
16位标识:因为下层mac规定了一次传输的最大单元MTU的大小,一旦超过这个大小,就需要IP协议对数据进行分片,由于到达对方主机的网络层还需要进行组装,因此分片的一组它们的标识id是一样的。
3位标识:一位作为保留,一位标识是否禁止分片,一旦禁止分片,超过MTU大小的数据将会直接丢弃,一位作为分片的结束标识。
13位片偏移:为了能让数据到达对方网络层按序组装,就需要片偏移来。
8位生存时间:就是数据段到达对方主机的最大路由次数,一般为64,为了防止循环路由。
8位协议:即把数据段交给上层的那一个协议。
16位首部校验和:CRC首部校验和。
剩余两项不做解释。


正是由于IP协议的存在,我们才能在全网中用IP地址标识出唯一的一台主机,IP地址分为两个部分,第一部分是网络号,第二部分是主机号。因此我们划分出了5类IP地址。

但是在实际生活中,我们申请了一个类型的地址,比如B类,理论上允许主机上有六万五千多个主机,但是实际上我们用不了那么多,就会造成IP地址资源的浪费,因此我们通过划分子网的技术CIDR来解决。
引入一个子网掩码的概念,来区分网络号和主机号,子网掩码和ip地址进行按位与运算就可以得到网络号。子网掩码是由一串01组成,一般后几位为0.

特殊的IP:IP地址中主机号为全0的,就代表了当前局域网,不能分给主机。
主机号为全1的为广播地址。
127.0.0.1是用于本地环回测试。
一般主机号为1的都代表这这个局域网中的路由器的IP地址。
以前我们知道,ip地址全球唯一标志着一台主机,那么ipv4协议,IP地址一共有32位,就有2的32次方,大概是43亿左右。那么除去一些特殊IP,在实际中,我们接入互联网中的主机不止43亿。那么IP资源就很匮乏,但是要怎么解决这个方法呢,目前有三种方式解决:
1.动态分配IP地址,只把要接入互联网中的主机分配IP地址,即同一个mac地址的主机,每次接入到网络中的IP地址都是不一样的。
2.NET技术。
3.使用IPV6,IPV6使用128位来标识IP地址。
这里我们着重讨论NET技术:
只要一个局域网上的主机不接入到互联网中,那么理论上他们的IP是任意的都可以。但是RFC 1918 规定用于组建私有局域网的IP必须遵循以下几点:
1.以10.*开头,前8位是网络号。
2.192.168.*前16位是网络号,
3.172.16.172.*到172.31,前12位是网络号。
包含在这三个范围之内的IP地址称之为私有IP,其余的称位共有IP.

上图就是利用net技术,合理解决了IP资源的匮乏问题。
一个路由器可以分配两个IP地址,一个是wan口ip,一个是lan口ip(子网ip)。
一般运营商的路由器分配的是共有IP,所以它是全网唯一的,就可以接入到广域网中,它负责一片区域的通讯,它可以构建子网让子网中的路由器来连接,而我们的家庭用户就是这个子网中的一一个个子节点。但是家庭路由器的ip地址属于私有ip,同样的家庭路由器也可以进行子网的划分,让我们的每一个家庭成员都可以上网。每一个家庭成员分配的ip地址属于家庭路由器构建的子网中的一个。它只需要在这个局域网中有效就可以了。那么就解决了ip地址匮乏问题的,当局域网中的主机想要与外网通信的时候,他会把自己的ip地址首先替换成路由器的WAN口ip,然后逐级替换,最后替换成一个共有ip,就能在网络中进行通信,这就是NET技术。由于NET技术的存在,我们两台不同局域网中的主机想要进行直接通信,是不可以的。


路由

我们知道了IP的概念,那么数据如何在网络中传输,就要学习路由,所谓路由,就是在复杂的网络结构中,找到一条通往对方的路劲。路由的过程,就是一跳一跳的过程,所谓一跳,是指在MAC层中,源MAC地址到目的MAC地址之间的帧传输区间。
每一个路由器内都会维护一张路由表,我们可以用route命令来查看。一个数据帧到达路由器的时候,路由器会取出数据目的IP地址,然后和路由表中每一行的子网掩码进行按位与,得到网络号,然后再跟目的网络地址对比,如果是,则向目的网络转发,如果不是,则对比下一条,表中所有的对比完了,还没有结果,那么就发往默认的地址。


数据链路层

在数据链路层,数据通过一帧一帧的数据发往底层的物理层上进行传输。数据链路层主要的有以太网,令牌环网。以太网的帧格式如下:

这里的源地址和目的地址,就是在网络传输中的Mac地址,协议类型是指把帧数据交给上一层的哪一个协议,这里有IP协议,ARP协议,RARP协议。
其中,在IP分片的时候,我们知道,超过了MTU就需要对数据进行分片,以太网中规定的MTU最小是46个字节,最大是1500字节,不足则进行填充,超过则进行分片。MTU是不同的网络对应物理层的限制。我们可以通过ifconfig命令来查看。

IP协议及MAC帧格式相关推荐

  1. 网络基础2(下):IP协议与MAC帧

    "你说不爱了,又依依不舍." (一)传输层(IP协议) IP协议的基本概念 主机:配有IP地址,但是不进行路由控制的设备. 路由器:既配有IP地址,又进行路由控制. 节点:主机 & ...

  2. 【网络篇】第二篇——IP协议与MAC地址详解

    IP协议 理解源IP地址和目的IP地址 网段划分 IP地址的数量限制 私有IP地址和公网IP地址 路由 NAT(网络地址转换) ​编辑NAT IP转换过程 NAPT MAC地址 理解源MAC地址和目的 ...

  3. TCP/IP协议专栏——MAC地址详解——网络入门和工程维护必看

    以太帧格式 前导同步符:共8字节,由7个字节的前同步信号和一个分界符开始字节构成. DA/SA:共6个字节,前3个字节代表供应商代码,后3个字节代表厂商序列号. TPID:标记协议标识符,2个字节,值 ...

  4. 第三篇,网络层的IP协议

    目录 一.前言 二.ipv4分组 2.1 ipv4分组20字节头部格式 2.2 IP数据报分片(涉及的首部字段:标识.标志.片偏移) 2.3 网络层转发分组流程 三.ipv4地址与NAT 3.1 ip ...

  5. 【网络篇】第十七篇——IP协议详解

    IP协议 网络层与数据链路层有什么关系? 基本概念 IP协议格式 分卡与组装 网段划分 IP地址的构成 DHCP协议 IP地址的分类 IP分类的缺点 无分类地址 CIDR 特殊的IP地址 IP地址的数 ...

  6. 利用ARP协议查询服务器的MAC,HTTP报文格式又是怎样的 如何使用ARP协议查询Mac地址...

    浏览器从地址栏得到服务器 IP,接着构造一个 HTTP 报文,其中包括: 请求行包含请求方法.URL.协议版本 请求报头(Request Header):由 "关键字: 值"对组成 ...

  7. 网络基础3-1(细谈IP协议头, 网络层,子网划分,路由选择,数据链路层,以太网帧格式,MAC地址,再谈ARP协议)

    IP协议 IP协议头格式 4位版本号(version): 指定IP协议的版本, 对于IPv4来说, 就是4 4位头部长度(header length): IP头部的长度是多少个.32bit, 也就是 ...

  8. 软件开发架构介绍||OSI七层协议之物理层、数据链路层、网络层、传输层(mac地址、ip协议、断开协议、tcp协议之三次握手四次挥手)

    阅读目录 一.网络编程 一.网络编程 软件开发架构 C/S架构 C:客户端 想体验服务的时候才会去找服务端体验服务 S:服务端 24小时不间断的提供服务,即时监听,随时待命 B/S架构 B:浏览器 想 ...

  9. ARP协议详解,ARP协议执行原理、ARP协议如何根据IP地址寻找Mac地址?

    「作者主页」:士别三日wyx 「作者简介」:CSDN top200.阿里云博客专家.华为云享专家.网络安全领域优质创作者 ARP协议 一.什么是ARP协议 1. Mac地址 2. 网络层的数据 3. ...

最新文章

  1. 才一年,智能车就不再是新势力专利!
  2. android authtype=1,【报Bug】plus.screen.lockOrientation在android里引起闪退
  3. 光流 | OpenCV3实现LK Optical Flow(代码类)
  4. mysql 5.0 修改字符集_修改及查看mysql数据库的字符集
  5. [转载]struts+hibernate遇到的错误总结
  6. MFC小笔记:控件随窗口变化
  7. 关于JQuery全选/反选第二次失效的问题
  8. [Windows小工具]两款屏幕取色拾色器(免安装,1MB左右大小)
  9. php pager,fleaphp常用方法分页之Pager使用方法
  10. Android TV开机优化
  11. SSM汽车销售平台的设计与实现毕业设计源码171619
  12. 用slmgr命令激活正版Win7旗舰版系统
  13. ADNI介绍与数据下载
  14. 打字测试软件源码 vb,打字测试程序 VB代码
  15. windows虚拟化服务器搭建,windows虚拟化服务器搭建
  16. IC设计之CDC(跨时钟域)问题
  17. 砂轮是刀具磨床加工表面粗糙度高的主要因素
  18. Linux系统调用列表
  19. 树形dp树的重心(D - Godfather POJ - 3107)
  20. JAVA使用Springboot+MP+VUE+Swagger前后端分离进行微信支付

热门文章

  1. 高德地图Demo,生成apk发布到手机签名不一致
  2. 阿里云code上传代码
  3. 奥利给!2020年10月程序员工资最新统计,涨了!!!
  4. JAVAweb连接不上数据库原因及解决办法
  5. 实验吧——WEB-认真一点!
  6. VMware虚拟机中设置端口映射
  7. CSS Table(表格)
  8. 【latex】LaTeX调整图片大小的方法;自动调整合适的大小
  9. Mantis 管理Bug
  10. 数据结构考点之n阶矩阵