【NetWork】-- 网络原理
2019-07-18 21:00:25 by冲冲
1. 网络拓扑
把网络中的计算机和通信设备抽象为一个点,把传输介质抽象为一条线,由点和线组成的几何图形就是计算机网络的拓扑结构(Network Topology)。
网络拓扑结构的本质是,用传输介质互连各种设备的物理布局。
(1)术语
① 节点。一个“节点”是指一个网络端口。节点划分为“转节点”和“访问节点”两类。“转节点”的作用是支持网络的连接,它通过通信线路转接和传递信息,如交换机、网关、路由器、防火墙设备的各个网络端口等。“访问节点”是信息交换的源点和目标点,通常是用户计算机上的网卡接口。如我们在设计一个网络系统时,通常所说的共有××个节点,其实就是在网络中有多个要配置IP地址的网络端口。
② 结点。一个“结点”是指一台网络设备。
③ 链路。“链路”是两个节点间的线路。
④ 通路。“通路”从发出信息的节点到接收信息的节点之间的一串节点和链路的组合。“通路”与“链路”的区别在于一条“通路”中可能包括多条“链路”。
(2)分类
| 类型 | 优点 | 缺点 | 结构 |
| 总线拓扑 |
易于扩展 线路利用率高 布线简单费用低 |
总线是全网的瓶颈 可靠性不高 维护困难 传输效率低 |
![]() |
| 环型拓扑 |
令牌控制,没有线路竞争 实时性强 传输控制容易 |
维护困难 可靠性不高 |
![]() |
| 星型拓扑 |
易于扩展 可靠性高 方便管理 传输效率高 |
线路利用率低 中心节点是全网的瓶颈 |
![]() |
| 网状拓扑 |
可靠性高 易于扩充 组网灵活 |
费用高 结构复杂 维护困难 |
![]() |
| 树型拓扑 |
易于扩展 成本低 管理较方便 故障隔离较容易 |
根节点是全网的瓶颈 | ![]() |
| 蜂窝拓扑 | |||
| 混合拓扑 |
易于拓展 安装方便 故障诊断和隔离较为方便 |
建设成本比较高 中心节点是全网的瓶颈 |
![]() |
2. OSI七层模型
OSI(Open System Interconnect),开放式系统互联。 通常称为OSI参考模型,它是ISO(国际标准化组织)组织在1985年研究创建的网络互连模型,用于统一网络规范。
| 类型 | 作用 | 类比 |
|---|---|---|
| 应用层 | 为应用提供网络跟身份验证 | 创建业务文件 |
| 表示层 | 确保接收可读 | 转译和加密文件 |
| 会话层 | 建立、管理应用程序之间的对话 | 标注文件的投递地址 |
| 传输层 | 数据传输,使用TCP、UDP协议 | 投递文件 |
| 网络层 | 使用IP识别、网关 | 标注投递路线的各个中转站IP |
| 数据链路层 | 使用MAC地址,交换机、VALN | 拆解文件,以帧单位分组投递 |
| 物理层 | 定义规范、标准各种网线设备接口 | 投递所使用到的硬件工具 |
OSI通信特点:对等通信。源端OSI模型的每一层,与目的端的对等层进行通信,能确保数据分组从源端传送到目的端。每一层都使用自己本层的协议进行通信。

3. TCP/IP五层模型
| 类型 | 作用 |
|---|---|
| 应用层 | 为应用提供网络跟身份验证 |
| 传输层 | 数据传输,使用TCP、UDP协议 |
| 网络层 | 使用IP识别、网关 |
| 数据链路层 | 使用MAC地址,交换机、VALN |
| 物理层 | 定义规范、标准各种网线设备接口 |
注:
1、TCP/IP模型的应用层 相等于是 OSI模型中应用层、表示层、会话层 的三层功能。
2、数据链路层与物理层又合称网络访问层。
3、在每一层都工作着不同的设备。

4、在每一层实现的协议各不同,即每一层的服务不同.。

4. IP地址分类
(1)概念
① MAC地址:物理地址(48位),每台机器出厂时规定的唯一地址。如果根据物理地址来判断某台主机,数据将十分庞大且不利于管理。
② IP地址:逻辑地址 (32位), IP 地址给每个连接在因特网上的主机(或路由器)分配一个在全世界范围是唯一的 32 位的标识符。IP地址可以由用户根据规定进行更改和设置。
(2)格式
每一类IP地址都由两个固定长度的字段组成,IP地址通常用点分十进制的方式来表示。
① 网络号 net-id:它标志主机(或路由器)所连接到的网络。
② 主机号 host-id:它标志该主机(或路由器)。

注:
1、网络号的前位是类别位,分别是0、10、110。凭借类别号能判断网络类别。
2、32位的总长度,由于A、B、C 三类网络号的长度不同,导致ABC 类地址的主机号字段的字节数分别为3、2、1(一个字节8位)。
私有IP范围:
|
类 |
私有IP地址范围 |
|
A |
10.0.0.0~10.255.255.255 |
|
B |
172.16.0.0~172.31.255.255 |
|
C |
192.168.0.0~192.168.255.255 |
公有IP范围:
|
类 |
公有IP地址范围 |
|
A |
1.0.0.0~9.255.255.255和11.0.0.0~127.255.255.255 |
|
B |
128.0.0.0~172.15.255.255和172.32.0.0~191.255.255.255 |
|
C |
192.0.0.0~192.167.255.255和192.169.0.0~223.255.255.255 |
27.0.0.0~127.255.255.255为环回地址
IP地址的ABC三段,由子网掩码区分
DHCP
DHCP技术:动态分配IP的技术,由DHCP服务器分配。
防范DHCP攻击的方法:设置唯一端口。
具体步骤:
1、客户端向DHCP服务器发送广播请求;
2、DHCP服务器广播回复客户端;
3、客户端向DHCP服务器单独发送请求;
4、DHCP服务器为客户端发送分配的IP。
DNS
DNS为域名解析系统。用户将一个域名发送至DNS服务器,由DNS服务器解析这个域名,得到相应的IP地址,发送到客户端,客户再由IP地址访问网站。
TCP
TCP协议是一种可靠地面向连接的有排序的准确的传输协议。其经过三次握手确定传输,比较可靠。
TCP/IP应用层
应用层协议主要包括如下几个:FTP、TELNET、DNS、SMTP、RIP、NFS、HTTP。
FTP(File Transfer Protocol)是文件传输协议,一般上传下载用FTP服务,数据端口是20H,控制端口是21H。
Telnet服务是用户远程登录服务,使用23H端口,使用明码传送,保密性差、简单方便。
DNS(Domain Name Service)是域名解析服务,提供域名到IP地址之间的转换。
SMTP(Simple Mail Transfer Protocol)是简单邮件传输协议,用来控制信件的发送、中转。
RIP (Router Information Protocol)是路由信息协议,用于网络设备之间交换路由信息。
NFS (Network File System)是网络文件系统,用于网络中不同主机间的文件共享。
HTTP(Hypertext Transfer Protocol)是超文本传输协议,用于实现互联网中的WWW服务。###ARP
地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。ARP缓存中包含一个或多个表,它们用于存储IP地址及其经过解析的MAC地址。ARP命令用于查询本机ARP缓存中IP地址-->MAC地址的对应关系、添加或删除静态对应关系等。
需要注意的是,通过ARP,向目标主机发送数据包,第一个包因为寻找主机会丢失,后续包会传输成功
主机到主机的通信过程
主机A需要发送一个数据包到主机B,在整个传输流程中,源和目的IP地址是保持不变的(不考虑NAT),源和目的MAC地址是随着具体链路的变化而变化。以下分为两种情况讨论:
1、主机A和主机B不跨交换机
主机A在本机的路由表中查询匹配主机B的IP的网络号,如果能够查询到,说明主机B和主机A在同一网段(通常是在同一局域网内),则下一跳即为主机B。主机A在ARP缓存中查找主机B的MAC地址(如没有则先发送ARP广播),然后将数据包封装成帧发送至通信线路上。该帧的源MAC是主机A的MAC地址,目的MAC是主机B的MAC地址。
如果主机A和主机B是网线直连的,那么主机B直接收到主机A发来的帧。
2、主机A和主机B跨交换机
如果主机A和B是通过交换机相连的,交换机的某个端口收到主机A发来的帧,然后根据帧中的目的MAC地址在MAC地址表中查询对应的转发端口。如果找到了,直接从该端口转发出去;如果没找到,则在除了接收到数据包以外的所有端口进行转发(广播)。
参考:
https://www.cnblogs.com/qishui/p/5428938.html
https://blog.csdn.net/OUOll/article/details/88303448
【NetWork】-- 网络原理的更多相关文章
- linux基础-第十四单元 Linux网络原理及基础设置
第十四单元 Linux网络原理及基础设置 三种网卡模式图 使用ifconfig命令来维护网络 ifconfig命令的功能 ifconfig命令的用法举例 使用ifup和ifdown命令启动和停止网卡 ...
- 【centos6 , 7】 网络原理、网络配置
第一部分:网络原理: 一.网络编址 (主要使用IP编址) 1.ip编址是一个双层编址方案,一个ip地址标识一个主机(或一个网卡接口) 2.现在应用最为广泛的是IPv4编址,已经开始逐渐向IPv6编址转 ...
- kubernetes pod infra container网络原理
刚开始接触kubernetes时,对kubelet的--pod-infra-container-image参数非常不能理解,不理解为什么我的业务应用需要依赖一个第三方的容器: 上文入门级kuberne ...
- vCenter 部件关系简介 & 网络原理
目录 目录 主机和集群 vCenter Datacenter Cluster Host Virtual Machine Folder Resource Pool Template 数据存储 Datas ...
- core java 10~12(多线程 & I/O & Network网络编程)
MODULE 10 Threads 多线程-------------------------------- 进程: 计算机在运行过程中的任务单元,CPU在一个时间点上只能执行一个进程,但在一个时间段上 ...
- 【BZOJ】【1834】【ZJOI2010】Network 网络扩容
网络流/费用流 这题……我一开始sb了. 第一问简单的最大流…… 第二问是要建费用流的图的……但是是在第一问的最大流跑完以后的残量网络上建,而不是重建…… 我们令残量网络上原有的弧的费用全部为0(因为 ...
- bzoj1834: [ZJOI2010]network 网络扩容
努力看了很久样例一直过不了...然后各种输出中间过程啊巴拉巴拉弄了1h,没办法了...然后突然想到啊原来的边可以用啊为什么不用...于是A了...感人肺腑 #include<cstdio> ...
- BZOJ 1834: [ZJOI2010]network 网络扩容(最大流+最小费用最大流)
第一问直接跑最大流.然后将所有边再加一次,费用为扩容费用,容量为k,再从一个超级源点连一条容量为k,费用为0的边到原源点,从原汇点连一条同样的边到超级汇点,然 后跑最小费用最大流就OK了. ---- ...
- ZOJ 1542 POJ 1861 Network 网络 最小生成树,求最长边,Kruskal算法
题目连接:problemId=542" target="_blank">ZOJ 1542 POJ 1861 Network 网络 Network Time Limi ...
- BZOJ_1834_[ZJOI2010]network 网络扩容_费用流
BZOJ_1834_[ZJOI2010]network 网络扩容_费用流 题意: 给定一张有向图,每条边都有一个容量C和一个扩容费用W.这里扩容费用是指将容量扩大1所需的费用. 求: 1.在不扩容的 ...
随机推荐
- xshell连接VMware中的Linux
[前言]最近想压测一下ITOO的考试系统,所以想在自己电脑上安装一下linux,然后安装一下jmeter进行压测一下. 不过为什么要连接xshell呢,因为在虚拟机上总是会和主机切换鼠标,而且也不能粘 ...
- python中函数里面冒号和函数后面的箭头是什么含义
函数里参数后的冒号其实是参数的类型建议,但是只是建议,就算你不按约定传也不会报错.而后面的箭头,则是函数返回值的类型建议.
- PTA数据结构 习题2.1 简单计算器 (20分)
习题2.1 简单计算器 (20分) 模拟简单运算器的工作.假设计算器只能进行加减乘除运算,运算数和结果都是整数,四种运算符的优先级相同,按从左到右的顺序计算. 输入格式: 输入在一行中给出一个四则运算 ...
- Using C++ in VS Code
Using C++ in VS Code Get Started with C++ and Windows Subsystem for Linux in Visual Studio Code ...
- spring提供的可拓展接口
接口:SmartLifecycle(https://www.jianshu.com/p/7b8f2a97c8f5)
- 力扣 - 剑指 Offer 39. 数组中出现次数超过一半的数字
题目 剑指 Offer 39. 数组中出现次数超过一半的数字 思路1(排序) 因为题目说一定会存在超过数组长度一半的一个数字,所以我们将数组排序后,位于length/2位置的一定是众数 代码 clas ...
- css3鼠标悬停图片边框线条动画特效
css3鼠标经过内容区时,边框线条特效效果制作. html: <div class="strength grWidth hidden"> <div class ...
- Linux命令查看内存、整体负载、端口查看、进程查看、vim编辑器(3)
一.资源占用命令 1.查看内存(free) free命令默认是以kb为单位显示的. free -m用Mb单位来显示. free -h显示单位 . free -h -s 3 ,每隔三秒刷新一次,如果 ...
- Java 读取PDF中的表格
一.概述 本文以Java示例展示读取PDF中的表格的方法.这里导入Spire.PDF for Javah中的jar包,并使用其提供的相关及方法来实现获取表格中的文本内容.下表中整理了本次代码使用到的主 ...
- sqlmap--tamper使用技巧
apostrophemask.py 适用数据库:ALL 作用:将引号替换为utf-8,用于过滤单引号 使用脚本前: tamper("1 AND '1'='1") 使用脚本后: 1A ...





