前言
作为一个程序员, 不可能不与网络打交道. 现在我们的手机, 电脑, 不夸张地说, 离开了网络就是一块’废铁’, 它们的作用将大打折扣.. 本文的作用呢, 主要是针对不是非网络专业开发的人员准备的, 以’最短的时间, 了解计网最多的知识’为前提起笔.
目录
- 概述
- 物理层
- 数据链路层
- 网络层
- 传输层
- 应用层
概述
先来了解下各种我们知道, 但是不太了解的专业名词的意思
因特网
image
因特网
因特网是当今世界上最大的网络, 是”网络的网络”. 即因特网是所有网络互连起来的一个巨型网络.
因特网的组成 :
- 边缘部分 : 主机
- 核心部分 : 大量网络和连接这些网络的路由器(此路由器不是我们家用的路由器)
以太网
以太网是现在最常用的局域网通信协议, 以太网上传输的是MAC帧. 由于以太网同一时间只允许一台计算机发送数据, 所以必须有一套检测机制, 那就是CSMA/CD协议 :
- 多点接入 : 多台计算机以多点接入的方式连接在一根总线上
- 载波监听 : 不管是否正在发送, 每个站都必须不停地检测信道
- 碰撞检测 : 边发送边监听
OSI
开放系统互连基本参考模型, 只要遵守这个OSI标准, 任何两个系统都能进行通信. OSI是七层协议体系结构, 而TCP/IP是一个四层协议体系结构, 于是我们采取折中的方法, 学习计算机网络原理的时候往往用的是五层协议的体系结构 : 物理层, 数据链路层, 网络层, 传输层和应用层
image
协议体系结构
物理层
计算机的世界里只有0和1, 正如你现在所看这篇文章的文字, 存储在计算机中也是一大串0和1的组合. 但是这些数字不能在真实的物理介质中传输的, 而需要把它转换为光信号或者电信号, 所以这一层负责将这些比特流(0101)与光电信号进行转换.
如果没有物理层, 那么也就不存在互联网, 不存在数据的共享, 因为数据无法在网络中流动.
数据链路层
数据在这一层不再是以比特流的形式传输, 而是分割成一个一个的帧再进行传输.
MAC地址
又称计算机的硬件地址, 被固化在适配器(网卡)ROM上的占48位的地址. MAC地址可以用来唯一区别一台计算机, 因为它在全球是独一无二的
分组交换
由于数据在这次曾要被分割成一个一个的帧, 由于不同的链路规定了不同的最大帧长, 即MTU(最大传输单元), 凡是超出这个MTU的帧都必须被分块. 例如一台货车一次能运输5吨的货物, 而有条公路限载重2吨, 那么你只好分3次运输.
网桥
网桥工作在数据链路层, 根据MAC帧的目的地址对收到的帧进行转发和过滤.
以太网交换机
实际上就是一个多接口的网桥, 以太网交换机的每个接口都直接与一个单个主机或另一个集线器相连, 可以很容易实现VLAN(虚拟局域网)
以太网的MAC帧
MAC帧的格式为 :
image
MAC帧格式
- 目的地址 : 接收方48位的MAC地址
- 源地址 : 发送方48位的MAC地址
- 类型字段 : 标志上一层使用的是什么协议, 0×0800为IP数据报
网络层
如果只有数据链路层没有网络层, 数据就只能在同一条链路上传输, 不能跨链路传输. 有了网络层, 数据便能跨域不同的数据链路传输.
IP地址
IP地址又称为软件地址, 存储在计算机的存储器上, IPv4地址为32位, IPv6地址为128位
IP地址和MAC地址
- 网络层以上使用IP地址, 数据链路层以下使用MAC地址
- IP地址是逻辑地址, MAC地址是物理地址
- IP分组中首部的源地址和目的地址在传输中不会改变, MAC帧中首部的源地址和目的地址每到一个路由器会改变一次
IP地址分类
IP地址 = {<网络号>, <主机号>}
A类地址 : 0.0.0.0 ~ 127.0.0.0
B类地址 : 128.0.0.0 ~ 191.255.0.0
C类地址 : 192.0.0.0 ~ 223.255.255.0
划分子网之后的IP地址
IP地址 = {<网络号>, <子网号>, <主机号>}
例如某单位拥有一个B类IP地址, 145.13.0.0, 但凡目的地址为145.13.x.x的数据报都会被送到这个网络上的路由器R. 内部划分子网后变成 : 145.13.3.0
, 145.13.7.0
, 145.13.21.0
. 但是对外仍表现为一个网络, 即 145.13.0.0
. 这样路由器R收到报文后, 再根据目的地址发到对应的子网上.
子网掩码
一般由一串1和一串0