文章目录

  • 一、计算机网络背景
  • 二、网络协议分层
    • 2.1 协议分层
    • 2.2 OSI七层
    • 2.3 TCP/IP四层
  • 三、网络传输基本流程
    • 3.1 网络传输流程图
    • 3.2 数据包的封装和分用
  • 四、网络中的地址管理
    • 4.1 IP地址
    • 4.2 几组概念
    • 4.3 Mac地址

一、计算机网络背景

网络把主机连接起来,而互连网(internet)是把多种不同的网络连接起来,因此互连网是网络的网络。而互联网(Internet)是全球范围的互连网。

计算机网络主要包括三部分:

  1. 计算机 (可以包括客户端、服务器)
  2. 网络设备 (路由器、交换机、防火墙等)
  3. 传输介质(可以分为有线和无线的)

按照地域范围可以对网络进行如下分类:

  • 局域网 :小范围内的私有网络,一个家庭内的网络、一个公司内的网络、一个校园内的网络都属于局域网。
  • 广域网:把不同地域的局域网互相连接起来的网络。运营商搭建连接远距离区域的广域网。
  • 互联网:由世界各地的局域网和广域网连接起来的网络。互联网是一个开放、互联的网络,不属于任何个人和任何机构。

主机之间的通信方式

  • 客户-服务器(C/S):客户是服务的请求方,服务器是服务的提供方。
  • 对等(P2P):不区分客户和服务器。

二、网络协议分层

“协议” 是一种约定.

计算机之间的传输媒介是光信号和电信号. 通过 “频率” 和 “强弱” 来表示 0 和 1 这样的信息. 要想传递各种不同的信息, 就需要约定好双方的数据格式.

网络协议, 就是人为约定一个共同的标准,让这些不同厂商之间生产的计算机能够相互顺畅的通信。

2.1 协议分层


为什么要分层? 主要是为了解耦,使得某一层的改变对整体不影响。这是对网络传输的封装,也是一种面向对象的思想。

2.2 OSI七层

OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范;
把网络从逻辑上分为了7层. 每一层都有相关、相对应的物理设备,比如路由器,交换机;
OSI 七层模型是一种框架性的设计方法,其最主要的功能使就是帮助不同类型的主机实现数据传输;
它的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整. 通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯;
但是, 它既复杂又不实用;更多的是TCP/IP四层模型.

2.3 TCP/IP四层

在TCP/IP协议中,它们被简化为了四个层次。
和 OSI 七层网络协议的主要区别如下

  • 应用层、表示层、会话层三个层次提供的服务相差不是很大,所以在 TCP/IP 协议中,它们被合并为应用层一个层次。
  • 由于数据链路层和物理层的内容很相似,所以在 TCP/IP 协议中它们被归并在网络接口层一个层次里。

先介绍五层协议

  • 物理层: 负责光/电信号的传递方式. 比如现在以太网通用的网线(双绞 线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤, 现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等. 集线器(Hub)工作在物理层.
  • 数据链路层: 负责设备之间的数据帧的传送和识别. 例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作. 有以太网、令牌环网, 无线LAN等标准. 交换机(Switch)工作在数据链路层.
  • 网络层: 负责地址管理和路由选择. 例如在IP协议中, 通过IP地址来标识一台主机, 并通过路由表的方式规划出两台主机之间的数据传输的线路(路由). 路由器(Router)工作在网路层.
  • 传输层: 负责两台主机之间的数据传输. 如传输控制协议 (TCP), 能够确保数据可靠的从源主机发送到目标主机.
  • 应用层: 负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等. 我们的网络编程主要就是针对应用层

TCP/IP将数据链路层和物理层合并为网络接口层。

一般而言

对于一台主机, 它的操作系统内核实现了从传输层到物理层的内容;
对于一台路由器, 它实现了从网络层到物理层;
对于一台交换机, 它实现了从数据链路层到物理层;
对于集线器, 它只实现了物理层;

三、网络传输基本流程

3.1 网络传输流程图

同一个网段内的两台主机进行文件传输.

跨网段的主机的文件传输. 数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器

3.2 数据包的封装和分用

  • 不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报 (datagram),在链路层叫做帧(frame).
  • 应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装(Encapsulation).
  • 首部信息中包含了一些类似于首部有多长,载荷(payload)有多长,上层协议是什么等信息.
  • 数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,根据首部中的 "上层协议字段"将数据交给对应的上层协议处理.

报文就是数据报,报头就是当前层添加的数据首部。除去报头的部分叫有效载荷。

报头有什么作用吗?
在解包分用的时候需要报头的数据来知道当前层进行某种协议决策,即怎么往上解包。

几乎每一层协议的报头都要包含两个字段

  1. 当前报文的有效载荷要交付给上层的哪一个协议。(分用)
  2. 几乎报头都有明确报头和有效载荷的边界


四、网络中的地址管理

4.1 IP地址

IP地址(Internet Protocol Address)是指互联网协议地址,又叫网际协议地址。
IP地址是IP协议(IP协议是为计算机网络相互连接进行通信而设计的协议)提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理MAC地址的差异。

IP地址的作用:

IP地址用来标识网络中的设备,具有IP地址的设备可以在同一网段内或跨网段通信。(后续会介绍网络中的主机如何通过IP地址进行通信的)

IP地址包括两部分,第一部分是网络号,表示IP地址所属的网段,第二部分是主机号,用来唯一标识本网段上的某台网络设备。

IP协议有两个版本, IPv4和IPv6. 现在提到的大部分都是指IPv4

  • 对于IPv4来说, IP地址是一个4字节, 32位的整数;
  • 我们通常也使用 “点分十进制” 的字符串表示IP地址, 例如 192.168.0.1 ; 用点分割的每一个数字表示一个字节, 范围是 0 - 255;

例:点分十进IP地址(100.4.5.6),实际上是32位二进制数(01100100.00000100.00000101.00000110)。

4.2 几组概念

  1. 网络地址
    IP地址由网络号(包括子网号)和主机号组成,网络地址的主机号为全0,网络地址代表着整个网络。

  2. 广播地址

广播地址通常称为直接广播地址,是为了区分受限广播地址。

广播地址与网络地址的主机号正好相反,广播地址中,主机号为全1。当向某个网络的广播地址发送消息时,该网络内的所有主机都能收到该广播消息。

  1. 组播地址
    D类地址就是组播地址。

先回忆下A,B,C,D类地址吧:
A类地址以0开头,第一个字节作为网络号,地址范围为:0.0.0.0~127.255.255.255;(modified @2016.05.31)
B类地址以10开头,前两个字节作为网络号,地址范围是:128.0.0.0~191.255.255.255;
C类地址以110开头,前三个字节作为网络号,地址范围是:192.0.0.0~223.255.255.255。
D类地址以1110开头,地址范围是224.0.0.0~239.255.255.255,D类地址作为组播地址(一对多的通信);
E类地址以1111开头,地址范围是240.0.0.0~255.255.255.255,E类地址为保留地址,供以后使用。
注:只有A,B,C有网络号和主机号之分,D类地址和E类地址没有划分网络号和主机号。

  1. 255.255.255.255

该IP地址指的是受限的广播地址。受限广播地址与一般广播地址(直接广播地址)的区别在于,受限广播地址只能用于本地网络,路由器不会转发以受限广播地址为目的地址的分组;一般广播地址既可在本地广播,也可跨网段广播。例如:主机192.168.1.1/30上的直接广播数据包后,另外一个网段192.168.1.5/30也能收到该数据报;若发送受限广播数据报,则不能收到。

注:一般的广播地址(直接广播地址)能够通过某些路由器(当然不是所有的路由器),而受限的广播地址不能通过路由器。

  1. 0.0.0.0

常用于寻找自己的IP地址,例如在我们的RARP,BOOTP和DHCP协议中,若某个未知IP地址的无盘机想要知道自己的IP地址,它就以255.255.255.255为目的地址,向本地范围(具体而言是被各个路由器屏蔽的范围内)的服务器发送IP请求分组。

  1. 回环地址

127.0.0.0/8被用作回环地址,回环地址表示本机的地址,常用于对本机的测试,用的最多的是127.0.0.1。

  1. A、B、C类私有地址
    私有地址(private address)也叫专用地址,它们不会在全球使用,只具有本地意义。
    A类私有地址:10.0.0.0/8,范围是:10.0.0.0~10.255.255.255
    B类私有地址:172.16.0.0/12,范围是:172.16.0.0~172.31.255.255
    C类私有地址:192.168.0.0/16,范围是:192.168.0.0~192.168.255.255

4.3 Mac地址

如同每一个人都有一个名字一样,每一台网络设备都用物理地址来标识自己,这个地址就是MAC地址。MAC地址也叫物理地址,大多数网卡厂商把MAC地址烧入了网卡的ROM中。

网络设备的MAC地址是全球唯一的。

MAC地址包含两部分:

  • 长度为48位, 及6个字节. 一般用16进制数字加上冒号的形式来表示(例如: 08:00:27:03:fb:19)
  1. 前24比特是组织唯一标识符(OUI,Organizationally Unique Identifier),由IEEE统一分配给设备制造商
  2. 后24位序列号是厂商分配给每个产品的唯一数值,由各个厂商自行分配(这里所说的产品可以是网卡或者其他需要MAC地址的设备)。

MAC地址作用

数据链路层基于MAC地址进行帧的传输。发送端使用接收端的MAC地址作为目的地址发送数据帧。

总结:
计算机中的两套地址

  1. 从哪里(源头),到哪里(目的)去。 ---- IP地址,传输过程中不会改变
  2. 上一站从哪来,下一站往哪去。 ---- Mac地址,传输过程中会变化。

计算机网络(一)——网络基础相关推荐

  1. 【计算机网络】网络基础必知必会

    网络基础必知必会 网络协议的体系结构 OSI 参考模型:应用层.表示层.会话层.传输层.网络层.数据链路层.物理层 五层协议的体系结构:应用层.传输层.网络层.数据链路层.物理层 TCP / IP 体 ...

  2. 【计算机网络】网络基础(一)

    1.数据通信网络基本概念 通信是指人与人.人与物.物与物之间通过某种媒介和行为进行的信息传递与交流. 网络通信是指终端设备之间通过计算机网络进行的通信,如下图所示3个网络通信案例: 数据通信网络由路由 ...

  3. 【计算机网络】网络基础

    1. 计算机网络分类(按规模) 局域网:覆盖范围10公里以下,一般以学校.公司等为单位组建 广域网:覆盖范围几十公里到几万公里,横跨国家.大洲,形成全球性计算机网络 城域网:位于局域网与广域网之间,覆 ...

  4. 【计算机网络】网络基础知识和TCP/IP协议族

    一.计算机网络产生 二.概要----七层 三.计算机使用模式的演变 四.OSI参考模型 五.OSI参考模型中各个分层的作用 六.OSI参考模型----通信处理举例 七.网络的构成要素 八.TCP/IP ...

  5. 【计算机网络】网络基础(二)

    本章主要对TCP/IP模型的网络层的初阶内容进行概括性讲述. 1.IP地址 当我们在配置计算机的IP地址时,是否会遇到下面的情形: 这是由于IP地址配置不正确造成的.在网络通信中,IP地址用来识别终端 ...

  6. 计算机网络有哪些技能知识,网络基础知识及操作技能.ppt

    网络基础知识及操作技能 主讲人 李春报 一.计算机网络概述 1.计算机网络的概念 计算机网络是把分布在不同地理位置上的计算机.终端,用通信设备和通信线路连结起来,再配以相应的网络软件,从而使众多计算机 ...

  7. 计算机网络——网络基础_网络命令的使用(配置主机IP、ipconfig、ping、tracert、arp实战)

    实验二  网络基础_网络命令的使用 一.配置主机的IP地址 实验目的 1.能打开Windows 10的命令窗口,在窗口中执行命令. 2.掌握IP设置的基本方法. 实验装置和工具 一台连入本地局域网或互 ...

  8. 计算机网络子网的特定主机地址,网络基础之IP地址和子网掩码

    原标题:网络基础之IP地址和子网掩码 今天来看下IP地址和子网掩码. 子网掩码是每个网络工程师必须要掌握的基础知识,只有掌握它,才能够真正理解TCP/IP协议的设置.下边我们一起来复习复习. 一.IP ...

  9. 计算机网络建设中涉及到哪些硬件,网络基础知识入门

    网络基础知识入门 导语:随着计算机的广泛应用和网络的流行,我们应该要知道一些网络基础知识,下面是小编收集整理的网络基础入门知识,欢迎参考! 计算机网络是什么 这是首先必须解决的一个问题,绝对是核心概念 ...

  10. 计算机网络——网络基础知识

    摘要 随着Internet技术的迅速发展,越来越多的计算机连入了Internet.很多公司也将自己公司的局域网接入了Internet.如何快速地访问Internet站点,提高网络的安全性,成为了当今的 ...

最新文章

  1. 知乎热议!学完Python之后,我的编程能力竟然退化了!
  2. Python轻松爬取Rosimm写真网站全部图片
  3. UNIX高手应该保持的习惯
  4. java强克隆_java之克隆clone解密
  5. Data Science Challenge / Competition
  6. mysql 单标递归_MySql8 WITH RECURSIVE递归查询父子集的方法
  7. Sql UNION 合并多个结果集并排序
  8. CRUD 还能这么玩?
  9. LINUX下载编译uuid
  10. html中多个div分开排列,CSS+DIV设计实例:多个DIV排列时居中
  11. 什么是 npm ?npm 下载安装使用
  12. phpstud使用教程_phpstudy使用方法详细图文教程
  13. [JZOJ3461] 小麦亩产一千八
  14. ios开发 多人语音聊天_iOS语音提醒开发总结
  15. Python3快速入门—5.函数
  16. spider mysql_MySQL存储引擎之Spider内核深度解析
  17. mybatis替代mysql_怎样将mybatis替换成nutz,求大神指导
  18. 网络攻防之——指纹识别工具
  19. TCP协议客户端与服务器端一般的通信过程
  20. 电子元器件行业经销商管理平台高效协同,优化经销商系统渠道链条

热门文章

  1. 小米应用商店 总是自动更新
  2. EasyAR 开发技巧----截屏
  3. 鲁大师html5是什么意思,鲁大师真会玩,没有数据的机型上榜是几个意思
  4. shell中的kill命令
  5. python制作小人,[Python设计模式] 第13章 造小人——建造者模式
  6. 正则表达式-获取小括号内的内容
  7. 笔记本Ubuntu 设置合盖不自动休眠
  8. 用微pe装完win7系统蓝屏00000007b
  9. 网上书城之动态实现前端界面书籍分类新书上架热销书籍
  10. 转载: 8天学通MongoDB——第六天 分片技术