物理层和链路层网络

术语

链路
是一对相邻结点间的物理线路,中间没有任何其他的交换结点。

数据链路
除了物理线路外,还必须有通信协议来控制这些数据的传输。


数据链路层的协议数据单元(PDU)

串行线路
使用点对点信道的数据链路层,设备之间通过串口线连接,不能广播

MAC地址
硬件地址又称物理地址或MAC地址,因为该地址用于MAC帧中。它是IEEE802标准为局域网规定的48位的全球地址(简称地址),指的是局域网上每台计算机中固化在适配器的ROM中的地址,在同一个局域网能,mac地址一定不能重复。

简介

我们的Internet(WAN)由无数个局域网(LAN)组成,以太网标准是当今主流的局域网标准,以太网标准是指IEEE802.3以及其派生出来的整个协议族。IEEE802标准定义了ISO/OSI七层网络模型中的的物理层和数据链路层。

物理层网络包括电缆,光纤,终端设备,中继器,等,提供在设备之间进行数据传输的能力。

数据链路层包括操作系统上的设备驱动和对应的网络接口卡,他们和物理层沟通一起处理与传输介质(电缆光纤)接口的细节,有标识标识不同的设备,在不同的设备间建立连接,传输数据,断开连接的能力。链路层的工作在于,将数据从一个网口发往另一个网口,最终送达目的网口。

在TCP/IP协议族中,链路层网络主要有三个功能:

  • 为IP层发送和接收数据
  • 为ARP模块发送ARP请求和接收ARP应答
  • 为RARP模块发送RARP请求和接收RARP应答

以太网协议

DIX Ethernet V2 是世界上第一个局域网产品(以太网)的规约。RFC894
IEEE 的 802.3 标准。RFC1042
DIX Ethernet V2 标准与 IEEE 的 802.3 标准只有很小的差别,因此可以将 802.3 局域网简称为“以太网”。
严格说来,“以太网”应当是指符合 DIX Ethernet V2 标准的局域网

虽然802.3 标准和以太网标准差别很小,但是帧格式却是其中一种,在链路层我们的数据通常有两种封装格式,分别是以太网封装和IEEE802封装,802标准也是不断演进的,比如说开始没有vlan,后来有了,所以一个数据包,通过不同线路不同交换设备,他的封装格式也可能是不一样的。具体的两种格式的区别不再细说,这毕竟只是笔记。

串行线路和PPPOE

网络中有很多线路是串行线路,比如电信公司建了很多串行通信网络,设备之间通过串行接口和串口线相连。
串行线路时,最初我们使用SLIP协议,他有很多缺点,已经被淘汰,后来我们使用更好的PPP协议,调制解调器的拨号上网,使用的是PPP(Point-to-Point Protocol)协议。PPP协议和SLIP协议的优劣见网络。
因为以太网的迅速发展,我们使用PPPOE,即 PPP over Ethernet,在以太网协议中包装符合ppp协议的数据。目前家庭拨号上网,几乎都是使用ADSL,基于PPPOE协议。
PPPOE以太网帧的格式:

link header PPP Header IP Data link trailer
14bit 8bit 38~1492bit 4bit

PPPHeader中的内容和协议暂不学习。

关于我们为什么要使用PPPOE,有人这么说:

PPP是为串行通信设计的,现在它与以太网(Ethernet)相结合,成为在以太网络中转播PPP帧信息的技术。也称PPP over Ethernet,即PPPoE协议。PPP协议与以太网并不是兼容的东西,因此用户经常感到十分的迷惑,为什么要将以太网与PPP结合在一起呢?
如果我们将TCP/IP通信与公路交通相比的话,那么基本的TCP/IP协议就是这个城市的街道网。街道上有许多的路口(或者停车点),人们在马路上可以很容易地上车或者下车。但是人们不知道每条街上有多少辆车在跑,而且每新增加一个路口将带来新的管理任务,因为你将更不清楚有多少人,有多少车在街道上跑了。PPP就好比铁路,人们只能在固定的站点上上车或者下车,因此对乘客的管理和控制也相对容易(比如上车必须买票。)因此不妨再打个比喻,PPPoE就象是在街道上跑的火车,事实上这不是不可能的,比如电车轨道,地铁。它带来的好处是显而易见的,首先它不影响城市里其它的交通,其次还给你带来铁路的优点,比如流量的控制。
有些ISP并不是通过串行链路与用户相连的,这种情况下PPPoE也可以带来部分好处;使用串行链路的ISP早已经在调制解调器通信上使用PPP了,另一方面,DSL提供商通过以太网,而不是串行链路通信,因此PPPoE可以满足许多人的需要。并且,许多人对于PPPoE的附加能力感到特别满意。因为PPPoE允许ISP们对用户的登录安全进行控制和测量用户流量。

我这么理解:以太网是高速公路,修建高速公路的电信公司在高速路的入口修建了管理站,也就是串行线路,使用ppp协议,也就是以太网数据包进来,他都给数据包在里面加一层ppp头部,这就是pppoe了,相当于每个车进站,收费站都给驾驶员发一张卡,驾驶员拿卡进高速公路。数据包从收费站出去的时候,ppp头部被剥掉,相当于出公路的时候退卡。电信公司通过ppp中的数据,实现对用户带宽的控制,流量监视,收费等各项功能.这种在以太网帧里面,ip数据包外面,插入ppp首部的协议,叫做pppoe.

环回接口

大多数系统支持环回接口:

  • 任何传给环回接口的数据,传入ip层输入队列.
  • 当发送的数据是本机某个网口的ip地址,那么将数据直接送到环回接口.
  • 不经过物理网口发出去,如果是广播,多播地址时,数据复制一份交给环回接口。

MTU

除去以太网首部和尾部外,链路层所支持的以太网帧的最大长度,如果ip层将超过这个长度的数据传给链路层,链路层会直接丢弃,且不产生任何错误信息,所以MTU得设置一定要正确,绝对不能大于物理设备允许的值。由于以太网传输电气方面的限制,每个以太网帧都有最小的大小64bytes,最大不能超过1518bytes,去掉以太网首部和尾部,以太网链路层的MTU,最大是1500.
另外:

  • 如果链路层运行pppoe协议,那么要扣掉8字节的pppoe头部,最大MTU要设置成1492,如果是vxlan,最大是1472
  • 如果使用vxlan,虚拟机的mtu最大为1450 = 1500 – 20(ip头) – 8(udp头) – 8(vxlan头) – 14(以太网头)
  • 如果使用gre网络,虚拟机的mtu最大为1462 = 1500 – 20(ip头) – 4(gre头) – 14(以太网头)

后续需要待完善部分

网口设备在链路层的地址,即mac地址,是这个网口的身份证号,在一个局域网内,这个地址不能重复。也正是因此,所以我们理论上可以局域网内通过mac地址通信,传输数据。但是在不同局域网之间通信,我们还需要ip地址,详细下一节再讨论。

局域网会限制一个链路层网络的大小,防止广播风暴,所以链路层网络有它的边界所在,在不同局域网之间的数据传输,需要经过路由器。

vlan,vxlan,gre的部分

PPPOE帧的格式

tcp/ip 卷一 读书笔记(2)物理层和链路层网络的更多相关文章

  1. tcp/ip 卷一 读书笔记(5)arp和rarp 同网段和不同网段之间的通信过程

    arp和rarp 同网段和不同网段之间的通信过程 IPv6中已经没有arp rarp协议,所以这里都是IPv4. 链路层使用以太网地址来确定目的地址,应用则常使用ip地址通信 arp协议是指从ip地址 ...

  2. tcp/ip 卷一 读书笔记(3)为什么既要有IP地址又要有MAC地址

    网络层 首先明确一点,并不是所有的网络之间传输数据都需要mac地址和ip地址,比如说点对点线路之间的通信就没有MAC地址,网络层使用ipx协议时就没有ip地址,但是在当前的主流网络中,我们都使用ip地 ...

  3. tcp/ip 卷一 读书笔记(1)tcp/ip 概述

    TCP/IP协议概述 术语 广域网 WAN 局域网 LAN TCP/IP四层网络模型 TCP/IP通常被认为是一个四层协议系统 网络接口层 包括arp,rarp协议,包括操作系统中的网卡驱动程序和对应 ...

  4. 《图解tcp/ip》读书笔记(二)

    <图解tcp/ip>读书笔记(二) 本周主要阅读的是本书的第三章--数据链路. 当然了,从某些角度讲,我认为这一章就是计算机网络的最基本的内容之一.整章讲述了数据链路层的作用和相关技术,主 ...

  5. 《图解tcp/ip》读书笔记(一)

           我先讲三句话:        一."万物互联的时代到了."我们生活在这样一个互联网急速发展的时代,也许很快就会发现,你能接触到的一切都可以连接到互联网了,电脑.手机这 ...

  6. 《图解TCP/IP》读书笔记

    一.国际惯例:书托 这是一本图文并茂的网络管理技术书籍,旨在让广大读者理解TCP/IP的基本知识.掌握TCP/IP的基本技能. 书中讲解了网络基础知识.TCP/IP基础知识.数据链路.IP协议.IP协 ...

  7. 《图解TCP/IP》读书笔记(转)

    reference: https://www.cnblogs.com/edisonchou/p/5987827.html 一.国际惯例:书托 这是一本图文并茂的网络管理技术书籍,旨在让广大读者理解TC ...

  8. C#基础知识之图解TCP IP》读书笔记

    一.网络基础知识 1. 计算机使用模式的演变 2.协议 协议就是计算机与计算机之间通过网络实现通信事先达成的一种“约定”.这种“约定”使那些由不同厂商的设备.不同的CPU以及不同的操作系统组成的计算机 ...

  9. TCP/IP协议精华笔记

    1.简介 TCP/IP协议并非单指TCP协议.IP协议,它是一组包括TCP协议和IP协议,UDP(User Datagram Protocol)协议.ICMP(Internet Control Mes ...

随机推荐

  1. 【转】GPS基线解算模式

    GPS基线向量是利用2台或2台以上GPS接 收机所采集的同步观测数据形成的差分观测值,通过参数估计得方法所计算出的两两接收机间的三维坐标差.与常规地面测量中所测定的基线边长不同,基线向量是 既具有长度 ...

  2. root cause org.apache.ibatis.ognl.OgnlException: source is null for getProperty(null, "XXX")

    在执行一个查询语句的时候,mybatis报错:root cause org.apache.ibatis.ognl.OgnlException: source is null for getProper ...

  3. vsftpd安装和使用 Linux系统和window系统

    vsftpd 安装(Linux)一.安装系统环境 centos 6.9 64位二.vsftpd版本 vsftpd-2.2.2-24.el6.x86_64三.安装步骤1.安装 执行 yum -y ins ...

  4. 什么是SSL

    什么是SSL 简单来说,在我们使用的浏览器中都默认信任着全世界多个最权威的CA机构(证书颁发机构),如下图: 上图中,受信任的根证书颁发机构列表里的都是我们浏览器中默认信任的CA机构,我们只需要向他们 ...

  5. StringBuffer和String需要注意的

    首先,StringBuffer的toString方法和String的subString方法都是在新生成了一个新的String. 最近做的一个功能,多线程的从SQLite数据库中读取数据.将数据拼成在M ...

  6. POJ 3537 Crosses and Crosses [Multi-SG]

    传送门 我也不知道为什么枚举vis必须加上一个边界才能A 以后还是都加上吧 #include <iostream> #include <cstdio> #include < ...

  7. Microsoft Visual Studio 中出现 Windows has triggered a breakpoint in xxx.exe的一个解决方案

    今天在用VS发布Release版本的过程中,碰到了一个问题,就是程序编译没有问题,但是在运行过程中出现了 根据经验,此类问题一般都是由于程序开发过程中的代码编写不规范导致内存写覆盖或者是使用了不同版本 ...

  8. Python中的浅拷贝与深拷贝

    编者注:本文主要参考了<Python核心编程(第二版)> 以下都是参考资料后,我自己的理解,如有错误希望大家不吝赐教. 大家有没有遇到这样一种情况,对象赋值后,对其中一个变量进行修改,另外 ...

  9. JS声明对象时属性名加引号与不加引号的问题

    般情况下属性名加引号和不加引号是都可以的,效果是一样的. var obj = { name : '你好', 'age' : 1, }; document.write( obj['name'] + '& ...

  10. (二)异步方法BeginInvoke和EndInvoke

    .Net framework可以让你异步调用任何方法,你可以定义一个与你要调用的方法的签名相同的委托.公共语言运行时将自动为该委托定义与签名相同的BeginInvok和EndInvoke方法. Beg ...