Похожие презентации:
Технологии разработки мобильных приложений
1.
ТЕХНОЛОГИЯ РАЗРАБОТКИМОБИЛЬНЫХ
ПРИЛОЖЕНИЙ
2.
ПОЧЕМУ ANDROID?Наиболее популярная система в наше время
Огромный выбор смартфонов от 50$ (iOS от 299$)
Система с открытым исходным кодом
25$ за аккаунт разработчика (iOS – 99$ каждый год)
Катализатор экономического роста
3.
ANDROID: ТОГДА И СЕЙЧАСПервый смартфон T-Mobile G1 (2008 год)
Планшеты, часы, телевизоры…
Разработка под Android
Java
2008 – Java 6
2013 – Java 7
2017 – Java 8
4.
РАЗРАБОТКА ПОД ANDROIDJava
Kotlin
до 2017 – поддержка с помощью плагинов
2017 – поддержка в Android Studio 3.0 из
коробки
Библиотеки поддержки
com.android.support:appcompat-v7:27.0.1
com.android.support:design:27.0.1
com.android.support: support-v13:27.0.1
и другие
Библиотеки добавляются в файл gradle уровня app.
5.
ВНУТРЕННЯЯ АРХИТЕКТУРА ANDROIDДом
Приложения
Контакты
Телефон
Браузер
…
Платформа приложений
Диспетчер ресурсов
…
…
…
Библиотеки
Выполняемая среда
…
OpenGL|ES
SGL
Драйвер
дисплея
…
FreeType
SSL
SQLite
WebKit
libc
Драйвер
камеры
Ядро Linux
Драйвер
Bluetooth
Основные библиотеки
Виртуальная машина
…
…
…
…
6.
УСТАНОВКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯУстановка инструмента Java SE Development Kit 8
Установка интегрированной среды разработки Android Studio
Установка виртуального эмулятора/подключение
физического устройства
7.
СТРУКТУРА ПАПОК ПРОЕКТА8.
СТРУКТУРА ПАПОК ПРОЕКТА9.
НАДПИСЬ (TEXTVIEW)Изменение размера:
android:textSize="14sp"
Определение в XML
<TextView
android:id="@+id/textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/text" />
Использование надписи в коде активности
TextView tV = (TextView)
findViewById(R.id.textview);
textView.setText("Some other string");
10.
ТЕКСТОВОЕ ПОЛЕ (EDITTEXT)Определение в XML
<EditText
android:id="@+id/edit_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="@string/edit_text" />
Атрибут android:inputType="number"
phone - предоставляет клавиатуру для ввода номеров.
textPassword - для ввода пароля.
textCapSentences - первое слово с прописной буквы.
textAutoCorrect - исправляет вводимый текст.
Использование в коде активности
EditText editText = (EditText)
findViewById(R.id.edit_text); String text =
11.
КНОПКА (BUTTON)Определение в XML
<Button android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_text" />
Использование в коде активности
android:onClick="onButtonClicked"
Затем в активности определяется метод следующего
вида:
/** Вызывается при щелчке на кнопке */
public void onButtonClicked(View view) {
// Сделать что-то по щелчку на кнопке
12.
ЭЛЕМЕНТЫ УПРАВЛЕНИЯ13.
ПЕРЕКЛЮЧАТЕЛИ (RADIOBUTTON)Определение в XML
<RadioGroup android:id="@+id/radio_group"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<RadioButton android:id="@+id/radio_circle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/circle" />
<RadioButton android:id="@+id/radio_square"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/square" />
</RadioGroup>
14.
ЭЛЕМЕНТЫ УПРАВЛЕНИЯраскрывающийся список (Spinner)
графическое представление (ImageView)
графическая кнопка (ImageButton)
прокручиваемые представления (ScrollView)
уведомления (Toast)
Toast.LENGTH_LONG=3,5 с
Toast.LENGTH_SHORT=2 с
15.
ANDROID MANIFEST16.
СТРУКТУРА МАНИФЕСТАтег <application>
тег <activity>
тег <service>
тег <receiver>
тег <provider>
permissions
<uses-permission>
17.
INTENTЗапустить другое приложение
Открыть файл
Перейти на другой экран
Бывают: явные (explicit) и неявные (implicit)
Activity 1
Intent
Activity 2
Activity 3
18.
ИНТЕНТЫ ОБЫЧНО СОДЕРЖАТИмя компонента
Действие – action (ACTION_VIEW, ACTION_SEND и др.)
Категория – category
Данные – data
Дополнительные параметры
19.
ДЕЙСТВИЯ И КАТЕГОРИИ ИНТЕНТАДействия:
ACTION_SEND
ACTION_DIAL
• ACTION_EDIT
Категории – category (CATEGORY_LAUNCHER,
CATEGORY_BROWSABLE)
Данные – data (URI)
20.
ДАННЫЕ И ДОПОЛНИТЕЛЬНЫЕ ПАРАМЕТРЫ ИНТЕНТАДанные – data (URI)
Дополнительные параметры – extras*
*Например, при создании объекта Intent для отправки
сообщения электронной почты с методом ACTION_SEND можно
указать получателя с помощью ключа EXTRA_EMAIL, а тему
сообщения - с помощью ключа EXTRA_SUBJECT.
21.
INTENT FILTERactivity
service
22.
ОПРЕДЕЛЕНИЕ РАЗМЕРОВРазмер экрана (small, normal, large, extra-large)
Плотность экрана (dpi – dots per inch): ldpi, mdpi
(~160dpi), hdpi, xhdpi, xxhdpi, xxxhdpi
Разрешение экрана
dp = длина в пикселях * 160 / плотность экрана
px = dp * плотность экрана / 160
px – пиксели
in – inch, дюйм – примерно 2,54 см
pt – point, точка – 1/72 дюйма
sp – пиксели, не зависящие от масштаба, применяются
при указании размеров шрифтов текста
23.
ОСНОВНЫЕ КОМПОНЕНТЫ ANDROID-ПРИЛОЖЕНИЯApplication
Activity
Service
BroadcastReceiver
ContentProvider
24.
ОСНОВНЫЕ КОМПОНЕНТЫ ANDROID<activity android:name=“.MainActivity”></activity>
<service android:name=“.CustomService”/>
public class CustomReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// TODO: start service
}
}
ContentProvider
25.
CONTEXTДоступ к ресурсам
Доступ к системным возможностям устройства
Динамическое изменение интерфейса
Создание файлов
26.
ЖИЗНЕННЫЙ ЦИКЛ ПРИЛОЖЕНИЯЖизненный цикл приложения в Android жёстко
контролируется системой и зависит от нужд пользователя,
доступных ресурсов
Android всегда уничтожает активити, а не компоненты
27.
ПРИОРИТЕТЫ ПРОЦЕССОВ В ANDROIDПроцессы
переднего
плана
Видимые
процессы
Служебные процессы
Фоновые процессы
Пустые процессы
28.
ОСНОВНЫЕ МЕТОДЫ ЖИЗНЕННОГО ЦИКЛАResumed
(visible)
onResume()
onStart()
Create
d
onCreate()
Started
(visible)
onResume()
onStart()
onRestart()
onPause()
Paused
(partly visible)
onStop()
Stopped
(hidden)
onDestroy()
Destroye
d
29.
ONRESUME() И ONPAUSE()Метод onResume() вызывается после onStart(). Также может
вызываться после onPause().
onPause():
сохраняет незафиксированные данные
деактивирует и выпускает монопольные ресурсы
останавливает воспроизведение видео, аудио и анимацию
30.
ONSTOP() И ONRESTART()Метод onStop() вызывается, когда окно становится невидимым
для пользователя. Всегда сопровождает любой вызов метода
onRestart().
Если окно возвращается в приоритетный режим после вызова
onStop(), то в этом случае вызывается метод onRestart(). Всегда
сопровождает любой вызов метода onStart().
31.
ПОРЯДОК ВЫЗОВА МЕТОДОВ ЖИЗНЕННОГО ЦИКЛА ПРИЗАПУСКЕ ДОЧЕРНЕЙ ACTIVITY
ACTIVITY 1
onCreate()
onStart()
onResume()
*Запуск второй активити*
onPause()
ACTIVITY 2
onCreate()
onStart()
onResume()
onStop()
*возврат назад*
onPause()
onRestart()
onStart()
32.
УНИЧТОЖЕНИЕ АКТИВИТИСистема считает за нормальное поведение:
нажатие кнопки “назад”
вызов метода finish()
Система сохраняет стейт при следующих случаях:
изменении конфигурации (поворот экрана, смена языка,
доступность клавиатуры)
уничтожение фоновой Activity при нехватке памяти для рабочей
Activity
33.
КЛАССИФИКАЦИЯ АКТИВИТИАктивити верхнего уровня
Активити категорий
Активити детализации/редактирования
34.
ИНТЕРФЕЙС. VIEW И VIEWGROUP<ViewGroup>
//Иерархическая структура
разметки, XML правила
<View/>
<View/>
<ViewGroup>
<View/>
<View/>
</ViewGroup>
</ViewGroup>
35.
LINEARLAYOUTКорневой LinearLayout
(фиолетовый):
android:orientation=“vertical”
Вложенный LinearLayout
(малиновый):
android:orientation=“horizontal”
android:weightSum=“4”
Кнопки горизонтального LinearLayout:
android:layout_weight=“1” / ”2”
android:layout_width=“0dp”
36.
РЕАЛИЗАЦИИ VIEWGROUPLinearLayout
RelativeLayout
FrameLayout
ConstraintLayout
37.
РАЗМЕР VIEW-ЭЛЕМЕНТОВАтрибуты:
layout_height – высота
layout_width – ширина
layout_weight (LinearLayout) – вес
weight_sum (LinearLayout)
Значения высоты и ширины:
конкретные значения (40dp)
wrap_content – по содержимому
match_parent – до краёв родителя
38.
РАСПОЛОЖЕНИЕ VIEW-ЭЛЕМЕНТОВАтрибуты:
layout_margin – внешний отступ
padding – внутренний отступ
gravity – притяжение элементов внутри текущего элемента
layout_gravity – притяжение элементов относительно
родительского
39.
РАБОТА С РЕСУРСАМИ ПРИЛОЖЕНИЯ@android:drawable/ic_search_category_default – ссылка на иконку
поиска
android:text="@string/example_text" – задаём текст из строкового
ресурса в xml
mTextView.setText(R.string.app_name); – задаём текст из строкового
ресурса в коде
android:src="@android:drawable/ic_delete" – устанавливаем png
drawable с помощью атрибута src у ImageView
40.
ACTIVITY BACKSTACKСтарт
Активити 2
Старт
Активити 3
Активити переднего плана
Активити
Активити
1
2
Активити
1
Back Stack
Back Stack
Активити
3
Активити
2
Активити
1
Back Stack
Переход назад (back)
Активити
3
Activity 3
destroyed
Активити
2
Активити
1
Back Stack
41.
LAUNCHMODEЗначения:
standard (по умолчанию)
singleTop
singleTask
singleInstance
42.
INTENTFLAGS. TASKAFFINITYФлаги:
FLAG_ACTIVITY_NEW_TASK
FLAG_ACTIVITY_SINGLE_TOP
FLAG_ACTIVITY_CLEAR_TOP
43.
НАЗНАЧЕНИЕ АДАПТЕРАДанные:
Финляндия
Швеция
Эстония
(массив строк)
Адаптер
создаёт View
для
отображения
данных
Финляндия
Швеция
Эстония
44.
СПИСОК ГОТОВЫХ АДАПТЕРОВArrayAdapter<T>
CursorAdapter
SimpleAdapter
ResourceCursorAdapter
SimpleCursorAdapter
// набор данных, которые свяжем со списком
final String[] balticContries = new String[] { “Finland”, “Sweden”,
“Estonia” };
ListViewbalticContries = (ListView) findViewById(R.id.listView);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
R.layout.list_item, balticContries)*;
listView.setAdapter(adapter);
45.
ARRAYADAPTER. ОПРЕДЕЛЕНИЕ LISTVIEW В XMLArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
R.layout.list_item, balticContries)*;
<ListView
android:id=“@+id/list_options”
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
android:entries=“@array/options” />
<string-array name=“options”>
<item>Sport</item>
<item>Contact</item>
<item>Stores</item>
</string-array>
46.
ОБРАБОТКА ЩЕЛЧКОВ LISTVIEWAdapterView.OnItemClickListener
itemClickListerner = new
AdapterView.OnItemClickListener(){
public void
onItemClick(AdapterView<?> listView, View
itemView, int position, long id) {
if (position == 0) {
Intent = new
Intent(MainActivity.this,
TargetActivity.class);
startActivity(intent);
}
}
47.
RECYCLERVIEW48.
КОМПОНЕНТЫ RECYCLERVIEWLayoutManager – размещает элементы
ItemAnimator – анимирует элементы
Adapter – создаёт элементы
ItemDecoration – дорисовывает элементы
ViewHolder – кэширует findViewById
49.
ОСНОВНОЕ API ADAPTERpublic ViewHolder onCreateViewHolder(ViewGroup parent, int
viewType)
public void onBindViewHolder(ViewHolder holder, int position)
public int getItemCount()
50.
ФРАГМЕНТФрагмент зависит от активити
Должен быть встроен в активити
Фрагмент не обязан быть частью макета активити
51.
ФРАГМЕНТЫ. ФИЛОСОФИЯ ПРОЕКТИРОВАНИЯПоявились в Android версии 3.0 (API уровня 11)
Динамичность и гибкость пользовательских
интерфейсов
Повторное использование фрагментов
52.
СОЗДАНИЕ ФРАГМЕНТАИЛИ
Активити A
Активити B
Активити A с двумя
фрагментами
53.
СОЗДАНИЕ ФРАГМЕНТАДля создания фрагмента необходимо создать подкласс класса
Fragment.
Класс Fragment имеет код, во многом схожий с кодом Activity. Он
содержит методы обратного вызова, аналогичные методам
операции, такие как:
onCreate(), onStart(), onPause() и onStop()
onCreate()
onCreateView()
onPause()
Подкласс DialogFragment
54.
РЯД ПОДКЛАССОВDialogFragment
ListFragment
PreferenceFragment
public View onCreateView()
55.
ДОБАВЛЕНИЕ ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСАpublic class CameraFragment extends Fragment {
public CameraFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup
container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_camera,
container, false);
}
}
56.
ДОБАВЛЕНИЕ ФРАГМЕНТА В АКТИВИТИОбъявить фрагмент в файле макета активити
Или программным способом, добавив фрагмент в
существующий объект ViewGroup
57.
SHAREDPREFERENCESМетоды получения объекта SharedPreferences:
getSharedPreferences()
getPreferences()
PreferenceManager.getDefaultSharedPreferences()
Константа доступа: Context.MODE_PRIVATE
58.
ФОРМАТ JSON{
“name”:”Тонких Артём Петрович”,
“age”:42,
“kids”:[
{
“name”:”Тонких Артём Артёмович”,
“age”:8,
“kids”:null
}
]
}
59.
ПРОЦЕССЫ И ПОТОКИПроцесс – глобальная сущность, выделенные ресурсы
Поток – внутренняя сущность процесса, выполняет
программный код
60.
ПРОБЛЕМЫ МНОГОПОТОЧНОСТИ61.
МНОГОПОТОЧНОСТЬ В ANDROIDПользователь
нажал на кнопку
Запрос
передаётся
в фоновый
поток
Запуск
фонового
потока
Показ
результата
Загрузка
Сетевой
запрос
BG
Thread
Результат
передаётся
в главный
поток
Завершение
фонового
потока
UI
Thread
62.
THREAD И RUNNABLEpublic class MyThread extends
Thread{
@Override
public void run() {
//do something
}
}
new Thread (new Runnable() {
@Override
public void run() {
//do something
}
});
new MyThread().start();
63.
SYNCHRONIZED. WAIT/NOTIFYThread 2
Thread 1
1
3
synchronized
2
if (condition()){
wait()
}
4
5
notify()
6
64.
NOTIFYALL. VOLATILEПоток 2
Поток 1
1
3
synchronized
2
if (condition()){
wait()
}
4
5
7
notify()
6
65.
EXECUTORSERVICE. CALLABLE. FUTUREExecutorService executorService =
Executors.newFixedThreadPool(4);
Future<String> future = executorService.submit(new
Callable<String>() {
@Override
public String call() throws Exception {
//do something
return result;
}
});
while (!future.isDone()) {
TimeUnit.MILLISECONDS.sleep(100);
}
String result = future.get();
66.
ИНСТРУМЕНТЫ ДЛЯ ОБЕСПЕЧЕНИЯ МНОГОПОТОЧНОСТИService + BroadcastReceiver
AsyncTask
HandlerThread / HaMeR
Loaders
67.
ВИДЫ SERVICEService – это компонент приложения, который
используется для выполнения долгих операций в
бэкграунде, без взаимодействия с пользовательским
интерфейсом.
Foreground – заметно для пользователя
Background – незаметно для пользователя
Bound – взаимодействие через интерфейс
68.
СОЗДАНИЕ SERVICEpublic class MyService extends Service {
public CustomService() {
}
@Override
@Nullable
public Ibinder onBind(Intent intent) {
return null;
}
}
69.
ЖИЗНЕННЫЙ ЦИКЛ SERVICECall to bindService()
Call to startService()
onCreate()
onStartCommand()
Active
LifeTime
onCreate()
onBind()
Service running
Clients are bound to service
The service is stopped
by itself or a client
All clients unbind by
calling unbindService()
onUnbind()
onDestroy()
onDestroy()
Service shut down
Service shut down
Bounded service
Unbounded service
70.
СОЗДАНИЕ BROADCASTRECEIVER•Добавляем новый класс, отнаследованный от
BroadcastReceiver
•Переопределяем метод onReceive()
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//TODO: do something
}
}
71.
ОТПРАВКА СООБЩЕНИЙМы можем использовать BroadcastReceiver, чтобы передавать
свои собственные сообщения.
Intent intent = new Intent();
intent.setAction (“ru.rosdistant.edu.SOMETHING_JUST_HAPPEN”);
intent.putExtra (“ARG_DATA”, “SOME_VALUE”);
sendBroadcast(intent);
72.
ИНТЕРФЕЙС ASYNCTASKmSampleTask.execute(10L) // запуск задачи
mSampleTask.cancel(true) // отмена задачи
class SampleTask extends AsyncTask<Long, Integer, String> {
void onPreExecute(); // UI-поток перед фоновой операцией
String doInBackground(Long… longs); // фоновый поток
void onPostExecute(String s); // UI-поток после фоновой операции
void publishProgress(1,2,3,4); // внутри фоновой операции
void onProgressUpdate(Integer… values); // в UI-потоке
boolean isCanceled(); // внутри фоновой операции
void onCanceled(); // в UI-потоке
}
73.
DOWNLOADIMAGETASKprivate class DomnloadImageTask extends AsyncTask<String, Void, Bitmap> {
@Override
protected void onPreExecute() {
mProgressBar.setVisibility(View.VISIBLE);
}
@Override
protected Bitmap doInBackground(String… strings) {
return getBitmap(strings[0]);
}
@Override
protected void onPostExecute(Bitmap bitmap) {
mImageView.setImageBitmap(bitmap);
mProgressBar.setVisibility(View.INVISIBLE);
}
}
74.
ИЗБАВЛЯЕМСЯ ОТ УТЕЧКИprivate class DomnloadImageTask extends AsyncTask<String, Void, Bitmap> {
private WeakReference<MainActivity> mActivityWeakReference;
private DomnloadImageTask(MainActivity activity) {
mActivityWeakReference = new WeakReference<>(activity);
}
//----@Override
protected void onPostExecute(Bitmap bitmap) {
MainActivity activity = mActivityWeakReference.get();
if (activity != null) {
activity.getImageView().setImageBitmap(bitmap);
activity.getProgressBar().setVisibility(View.INVISIBLE);
}
}
75.
О ПРОЦЕССАХ И ПОТОКАХКаждое приложение в Android по умолчанию работает в своем
собственном процессе, в своей области памяти. В память чужого
процесса попасть нельзя, это гарантируется системой.
Первый поток, запущенный в процессе, называется главным потоком.
Главный поток – main thread – UI thread – в контексте Android
синонимы.
MainThread не уничтожается сам
Почему MainThread не умирает?
•Благодаря Looper.
Что делает Looper?
•Looper в бесконечном цикле проверяет MessageQueue.
76.
HAMER = HANDLER + MESSAGE + RUNNABLEЧто такое MessageQueue?
•Очередь объектов Message, которые нужно обработать.
Как сообщения попадают в MessageQueue?
•Handler, связанный с Looper, отправляет сообщения в очередь
Looper.
Кто обрабатывает сообщения?
•В сообщении есть ссылка на Handler, который это сообщение
должен обработать
77.
HANDLERHandler handler = new Handler();
Handler bgHandler = new Handler(bgLooper);
Handler mainHandler = new Handler(Looper.getMainLooper());
handler.post (new Runnable() {
@Override
public void run() {
}
});
handler.postDelayed (new Runnable(), 4000);
78.
MESSAGEmHandler.obtainMessage(MESSAGE_WHAT, dataObject).sendToTarget ();
mHandler = new Handler {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case MESSAGE_WHAT: {
DataObject dataObject = (DataObject) msg.obj;
doSomething(dataObject);
msg.recycle() } } } };
mHandler.post (new Runnable() {
@Override
public void run() {
doSomething(dataObject); } });
Message message = Message.obtain(mAnotherHandler,
MESSAGE_ANOTHER_WHAT, anotherObject);
79.
LOADERMANAGERLoader – это API, позволяющее загружать данные из
различных источников (сервер, БД, content-provider) вне
зависимости от жизненного цикла.
LoaderManager – класс, который запускает Loader. Для
получения экземпляра менеджера – LoaderManager
getSupportLoaderManager()
Loader<D> initLoader(int id, Bundle args,
LoaderManager.LoaderCallbacks<D> callback)
Loader<D> restartLoader(int id, Bundle args,
LoaderManager.LoaderCallbacks<D> callback)
80.
LOADERCALLBACKSLoader<D> restartLoader(int id, Bundle args,
LoaderManager.LoaderCallbacks<D> callback)
boolean hasRunningLoaders();
Loader<D> getLoader(int id);
void destroyLoader(int id);
LoaderManager.LoaderCallbacks содержит методы, которые
вызываются при определенных событиях у лоадера
onCreateLoader(int, Bundle)
onLoadFinished(Loader<D>, D)
onLoaderReset(Loader<D>)
Loader – базовый класс. Наследуемся от него, если нужно
сделать какую-то уникальную реализацию. Иначе можно
использовать системные реализации.
81.
CONTENTPROVIDERSContentProvider – механизм, который инкапсулирует доступ к
данным, дополнительно позволяя обращаться к ним из разных
процессов.
ContentProvider позволяет безопасно делиться данными с
другими приложениями
Телефонная книга
•Чаты
•Банки
82.
СПОСОБЫ ХРАНЕНИЯ ДАННЫХ В ANDROIDPersistence:
•Общие сведения (SharedPreferences)
•Файлы
• Internal Storage
• External Storage
•БД / ORM
83.
EXTERNAL STORAGE И БАЗЫ ДАННЫХ•External Storage (неструктурированные данные)
• SD-карта
•Базы данных и ORM-обёртки (структурированные данные)
• SQLite
84.
РАЗРЕШЕНИЯ ВО ВРЕМЯ ВЫПОЛНЕНИЯ•обычные (normal)
•опасные (dangerous)
public static int checkSelfPermission(@NonNull Context context,
@NonNull String permission)
•Менеджер пакетов.PERMISSION_GRANTED
•Менеджер пакетов.PERMISSION_DENIED
java.lang.Исключение безопасности
ActivityCompat.requestPermissions(this, new String[]
{Manifest.permission.WRITE_EXTERNAL_STORAGE},
REQUEST_CODE);
85.
СЕРВЕР•физический
Почтовый
клиент
•программный
Почтовый
клиент
Почтовый
клиент
Почтовый
сервер
Почтовый
клиент
Почтовый
клиент
Почтовый
клиент
86.
HTTPHyperText Transfer Protocol
•Запрос к серверу (Request)
•Ответ от сервера (Response)
1. Стартовая строка запроса
URI METHOD HTTP/VERSION
METHOD – это метод HTTP-запроса
URI – идентификатор ресурса
VERSION – версия протокола.
2. Заголовки (Headers)
3. Тело сообщения (Body)
87.
OKHTTP3•HttpURLConnection
•HTTP-клиент Apache
1. Пул соединений
2. Gziping
3. Кэширование
4. Восстановление после сетевых ошибок
5. Редиректы
6. Повторы
7. Поддержка синхронных и асинхронных вызовов
8. Перехватчики
88.
RETROFIT2Основные возможности Retrofit:
•Вся сила OkHttp
•API Interfaces
•Call Adapters
•Converters
•Задание параметров URL и поддержка параметров запроса
•Преобразование объектов в тело запроса
•Многостраничный запрос и загрузка файлов
89.
РЕАКТИВНОЕ ПРОГРАММИРОВАНИЕИспользование потоков:
•Переменные
•Пользовательский ввод
•Свойства
•Кэш
•Структуры данных
Реализации реактивного подхода:
•ReactJS
•Bacon.js
•ReactiveX
90.
ДОСТОИНСТВА РЕАКТИВНОГО ПРОГРАММИРОВАНИЯЕсли вы не хотите...
...писать много, а делать мало
То в реактивном подходе...
...пиши мало, делай много!
...часами дебажить простую логику
...обеспечение связи данных друг с
другом!
...чтобы всё по умолчанию тупило
...оптимизация потоков данных по
умолчанию!
...чтобы приложение падало
целиком и полностью
...проводить махинации с
индикаторами ожидания
...создавать переиспользуемые
компоненты
...никакой exception не пройдет мимо!
...индикаторы ожидания сами
появляются, где надо!
...компоненты будут
переиспользуемыми по умолчанию!
91.
RXJAVA2Тип источника
Flowable<T>
Описание источника
Поддерживает backpressure.
Observable<T>
Излучает 0 или n элементов и завершается с успехом
или ошибкой. Не поддерживает backpressure.
Single<T>
Излучает либо один элемент, либо событие ошибки.
Реактивная версия вызова метода.
Maybe<T>
Успешно с элементом, или без элемента, или без ошибок.
Реактивная версия типа Optional.
Либо завершается с успехом, либо с событием ошибки.
Он никогда не излучает элементы. Реактивная версия
типа Runnable.
Completable
92.
РЕАКТИВНАЯ СХЕМА ДАННЫХИсточники:
•горячие (hot)
•холодные (cold)
https://github.com/Froussios/Intro-ToRxJava/blob/master/Part%203%20%20Taming%20the%20sequence/6.%20Hot%20and%20Cold%20o
bservables.md
93.
ИСТОЧНИКИBackpressure (обратное давление) – явление, которое можно
встретить в порождающем потоке, где некоторые асинхронные
операции не могут обрабатывать значения достаточно быстро
и нуждаются в замедлении работы производителя.
https://habr.com/ru/post/336268/
94.
OBSERVER И SUBSCRIBERpublic interface Observer<T> {
void onSubscribe(@NonNull Disposable d);
void onNext(@NonNull T t);
void onError(@NonNull Throwable e);
void onComplete();
}
95.
ПРАКТИКА С RXJAVA2implementation 'io.reactivex.rxjava2:rxjava:2.1.8’
implementation 'io.reactivex.rxjava2:rxandroid:2.0.1’
Observable.just(«Тонких Артём Петрович")
Observable.fromIterable()
Observable.fromArray()
Observable.fromCallable()
Observable.fromFuture()
Observable.interval()
subscribe()
subscribe(Consumer<? super T> onNext)
96.
СМЕШИВАНИЕ ОТОБРАЖЕНИЯ И ЛОГИКИ@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mRecyclerView.setAdapter(mProjectsAdapter);
ApiUtils.getApiService().getProjects(BuildConfig.API_QUERY)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe( response -> {
mErrorView.setVisibility(View.GONE);
mRecyclerView.setVisibility(View.VISIBLE);
mProjectsAdapter.addData(response.getProjects(), true);
},
throwable -> {
mErrorView.setVisibility(View.VISIBLE);
mRecyclerView.setVisibility(View.GONE); });}
97.
MVCТонких Артём Петрович, 1978
― Model – бизнес-логика
― View – отображение
―Controller – обработка ввода
View!=android.view.View
98.
SOLIDS – Принцип единой ответственности (SRP)
A class should have only one reason to change.
Каждый объект должен иметь одну ответственность и эта
ответственность должна быть полностью инкапсулирована в класс.
O – Принцип открытости/закрытости (OCP)
Software entities (classes, modules, functions, etc) should be open for
extension, but closed for modification.
Программные сущности (классы, модули, функции и т.д.) должны
быть открыты для расширения, но закрыты для изменения
L – Принцип заменяемости (LSP)
I – Принцип разделения интерфейсов (ISP)
D – Принцип инверсии зависимостей (DIP)
99.
ПРИМЕР ОТКРЫТОСТИ-ЗАКРЫТОСТИpublic abstract class AbstractEntity { … }
public class AccountEntity extends AbstractEntity { … }
public class RoleEntity extends AbstractEntity { … }
public interface IRepository<AbstractEntity>{
void save(AbstractEntity entity); }
public class AccountRepository implements IRepository<AccountEntity>{
public void save(AccountEntity entity) {
// специфические действия для AccountEntity
}
}
public class RoleRepository implements IRepository<RoleEntity>{
public void save(RoleEntity abstractEntity) {
// специфические действия для RoleEntity
}
}
100.
ПРИМЕР ПРИНЦИПА ИНВЕРСИИ ЗАВИСИМОСТЕЙpublic class Reporter
{
public void sendReports()
{
ReportBuilder reportBuilder = new ReportBuilder();
List<Report> reports = reportBuilder.createReports();
if (reports.size() == 0)
throw new NoReportsException();
EmailReportSender reportSender = new
EmailReportSender();
for (Report report : reports)
{
reportSender.send(report);
}
}}
101.
MVPpublic interface SampleView {
void setData(List<Item>items);
}
public class SamplePresenter {
private SampleView mView;
public SamplePresenter(SampleView view) {
mView = view;
}
void loadData() {
//load data from server
}
}
mView.setData(items);
102.
SAMPLEACTIVITY (MVP)public class SampleActivity extends AppCompatActivity
implements SampleView {
private SamplePresenter mPresenter;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mPresenter = new SamplePresenter(this);
button.SetOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mPresenter.loadData(); } }); }
@Override
public void setData(List<Item> items) { }
}
103.
MOXYpublic class ProjectsFragment
extends MvpAppCompatFragment
implements ProjectsView {
@InjectPresenter
public ProjectsPresenter mPresenter;
@ProvidePresenter
ProjectsPresenter providePresenter() {
D someDependency = new D;
return new
ProjectsPresenter(someDependency);
}
//остальной код
}
104.
MVPVIEWpublic interface ProjectsView extends BaseView, MvpView {
@StateStrategyType(value = SingleStateStrategy.class)
void showProjects(@NonNull List<Project> projects);
@StateStrategyType(value = SkipStrategy.class)
void openProfileFragment(@NonNull String username);
}
AddToEndStrategy – выполнить команду и добавить команду в конец
очереди
AddToEndSingleStrategy – выполнить команду, добавить ее в конец
очереди и удалить все ее предыдущие экземпляры
SingleStateStrategy – выполнить команду, очистить очередь и
добавить в нее команду
SkipStrategy – выполнить команду
OneExecuteStrategy – выполнить команду
при первой возможности
105.
MVVMModel – данные и методы их получения, сохранения, обработки
View – визуальное представление данных, экран
ViewModel – абстракция представления, прослойка между View и
Model
public class ViewModel {
private String mUserName;
void updateUserName() {
mUserName = “Тонких Артём Петрович”;
}
}
106.
ПРЕИМУЩЕСТВА И НЕДОСТАТКИ MVVMПреимущества:
•Компоненты слабо связаны
•Databinding уменьшает количество кода
•Несколько View → одна ViewModel
Недостатки:
•Показ Toast и диалогов
•Показ анимаций или данных с задержкой
•Необходимость обработки команды во View
107.
DATABINDING LIBRARY<?xml version=“1.0” encoding=“utf-8”?>
<layout xmlns:android=“http://schemas.android.com/apk/res/android”>
<data>
<variable name=“user” type=“ru.rosdistant.edu.User” />
</data>
<LinearLayout
android:layout_width=“match_parent”
android:layout_height=“match_parent”
android:orientation=“vertical”>
<TextView android:text=“Username” />
<TextView android:text=“@{user.name}” />
</LinearLayout>
</layout>
108.
НАБОРЫ ПРОТОКОЛОВ И ОТРАСЛЕВЫЕ СТАНДАРТЫНазвание
уровня
Уровень
приложений
Транспортный
уровень
Межсетевой
уровень
Уровень
доступа к сети
TCP/IP
ISO
HTTP, DNS
DHCP, FTP
TCP,
UDP
IPv4, IPv6,
ICMPv4,
ICMPv6
ACSE, ROSE
TRSE, SESE
TP0, TP1, TP2,
TP3, TP4
CONP/CMNS,
CLNP/CLNS
AppleTalk
Novell Netware
AFP
NDS
ATP, AEP,
NBP, RTMP
SPX
AARP
IPX
Ethernet, PPP, Frame Relay, ATM, WLAN
109.
РАЗРАБОТКА ПРОТОКОЛА TCP/IP29.10.1969
1970
1972
1972
1972
Передача первого сообщения от ЭВМ к ЭВМ
Система ALOHAnet становится операционной, первой
сетью пакетной радиосвязи
Первая программа управления электронной почтой
Оформлена спецификация Telnet (RFC 318)
Для обозначения назначения получателя введён знак
@
1981
1982
1984
Оформлены протоколы TCP и IP (RFC 793 и RFC 791)
Создан протокол внешней маршрутизации (EGP)
Вводится служба доменных имён (DNS)
1985
Утверждён протокол передачи файлов FTP (RFC 765)
110.
НАБОР ПРОТОКОЛОВ TCP/IPУровень приложений
Система имён DNS
Конфигурация узла BOOTP, DHCP
Электронная почта SMTP, POP, IMAP
Передача файлов FTP, TFTP
Веб HTTP
Транспортный
уровень
UDP, TCP
Межсетевой уровень
IP, NAT
Поддержка IP ICMP
Протоколы маршрутизации OSPF, EIGRP
Уровень сетевого
доступа
ARP, PPP, Ethernet, драйверы интерфейсов
111.
СТАНДАРТЫ ИНТЕРНЕТАРабочая группа № 1
IETF
Internet
Society
(ISOC)
IESG
Рабочая группа № 2
IAB
Исследовательская
группа № 1
IRTF
IRSG
Исследовательская
группа № 2
112.
IANA И ICANNIP-адреса
IANA
ICANN
Имена
доменов
Номера
портов
TCP/UDP
113.
ОРГАНИЗАЦИИ ПО СТАНДАРТИЗАЦИИ В ОБЛАСТИЭЛЕКТРОНИКИ И СВЯЗИ
Рабочие и исследовательские группы IEEE 802:
рабочая группа протоколов LAN верхнего уровня 802.1
рабочая группа Ethernet 802.3
рабочая группа по беспроводным локальным сетям 802.11
рабочая группа по беспроводным персональным сетям
802.15
рабочая группа по широкополосному беспроводному
доступу 802.16
группа TAG по радиорегулированию 802.18
рабочая группа по сосуществованию сетей 802.19
114.
ПРЕИМУЩЕСТВА ИСПОЛЬЗОВАНИЯ МНОГОУРОВНЕВОЙМОДЕЛИ
Модель OSI
Уровень приложений
Уровень представлений
Сеансовый уровень
Транспортный уровень
Сетевой уровень
Канальный уровень
Физический уровень
Набор протоколов
TCP/IP
Модель TCP/IP
HTTP, DNS, DHCP, FTP
Уровень приложений
TCP, UDP
IPv4, IPv6,
ICMPv4, ICMPv6
Транспортный уровень
PPP, Frame Relay, Ethernet
Интернет
Уровень сетевого
доступа
115.
ЭТАЛОННАЯ МОДЕЛЬ OSI7. Уровень приложений
6. Уровень представлений
5. Сеансовый уровень
4. Транспортный уровень
3. Сетевой уровень
2. Канальный уровень
1. Физический уровень
116.
МОДЕЛЬ ПРОТОКОЛОВ TCP/IPУровни модели
TCP/IP
Уровень
приложений
Транспортный
уровень
Межсетевой
уровень
Назначение уровня
Отображает данные для пользователя,
а также обеспечивает кодирование
и управление сеансами связи
Поддерживает связь между различными
устройствами в разных сетях
Определяет наилучший путь через сеть
Управляет устройствами и средами
Уровень
передачи данных, из которых состоит
сетевого доступа
сеть
117.
СРАВНЕНИЕ МОДЕЛЕЙ OSI И TCP/IPМодель OSI
Модель TCP/IP
7. Уровень приложений
6. Уровень представлений
5. Сеансовый уровень
Уровень приложений
4. Транспортный уровень
3. Сетевой уровень
2. Канальный уровень
1. Физический уровень
Транспортный
уровень
Интернет
Уровень сетевого
доступа
118.
СЕГМЕНТАЦИЯ СООБЩЕНИЯСегментация – разделение сообщения на части
Мультиплексирование – чередование частей по мере их
движения через среду передачи данных
Множество сеансов связи чередуется, предоставляя
каждому пользователю часть полосы пропускания
119.
ЕДИНИЦА ПРОТОКОЛА ДАННЫХ (PDU)Данные
Сегмент
Пакет
Кадр
(зависит от среды передачи)
Биты
120.
СЕТЕВЫЕ АДРЕСАФизический
уровень
Канальный
уровень
Сетевой
уровень
Биты
Логические
Физические
временных
сетевые
адреса
параметров
адреса
назначения
и
назначения
и источника
синхронизации
и источника
Транспортный
уровень
Верхние
уровни
Номера
процессов
(портов)
назначения
и источника
Кодированные
данные
приложения
121.
АДРЕСА КАНАЛЬНОГО УРОВНЯАдрес источника – физический адрес сетевой интерфейсной
платы устройства, которое передаёт пакет
Адрес места назначения – физический адрес сетевой
интерфейсной платы устройства, которое получает пакет. Это
адрес ближайшего транзитного маршрутизатора или
устройства назначения
122.
УСТРОЙСТВА В ОДНОЙ СЕТИКанальный уровень
Заголовок кадра Ethernet
Сетевой уровень
Заголовок IP-пакета
Назначение Источник
Источник
CC-CC-CC- AA-AA-AAСеть
Узел
110
CC-CC-CC
AA-AA-AA 192.168.1.
Назначение
Сеть
Узел
192.168.1.
9
Данные
123.
УСТРОЙСТВА В УДАЛЁННОЙ СЕТИКанальный уровень
Заголовок кадра
Ethernet
Назначение Источник
11-11-1111-11-11
AA-AAAA-AAAA-AA
Сетевой уровень
Заголовок IP-пакета
Источник
Назначение
Сеть
Устройство
Сеть
192.168.1.
110
172.16.1.
Устройств
о
99
Данные
124.
ФИЗИЧЕСКИЙ УРОВЕНЬУровень приложений
Уровень представлений
Сеансовый уровень
Транспортный уровень
Сетевой уровень
Канальный уровень
Физический уровень
125.
СРЕДСТВА ПОДКЛЮЧЕНИЯ ФИЗИЧЕСКОГО УРОВНЯМедный кабель
Оптоволоконный кабель
Беспроводная сеть
126.
СТАНДАРТЫ ФИЗИЧЕСКОГО УРОВНЯОрганизации:
ISO
TIA/EIA
ITU
ANSI
IEEE
FCC и ETSI
127.
ФУНКЦИИ ФИЗИЧЕСКОГО УРОВНЯФункциональные области:
физические компоненты
кодирование
способы передачи сигналов
128.
ПРОПУСКНАЯ СПОСОБНОСТЬ (BANDWIDTH)Unit of Bandwidth
Bits per second
Abbreviation Equivalence
b/s
1 b/s = fundamental unit of bandwidth
Kilobits per second kb/s
Megabits per second Mb/s
Gigabits per second Gb/s
1 kb/s = 1,000 bps = 10^3 bps
1 Mb/s = 1,000,000 bps = 10^6 bps
1 Gb/s = 1,000,000,000 bps = 10^9 bps
Terabits per second
1 Tb/s = 1,000,000,000,000 bps = 10^12 bps
Tb/s
129.
ПРОИЗВОДИТЕЛЬНОСТЬПример
результата
тестирования
скорости
130.
ТИПЫ ФИЗИЧЕСКИХ СРЕДСТВ ПОДКЛЮЧЕНИЯСтандарты для средств подключения на основе медного
кабеля:
тип кабеля
пропускная способность
тип разъёмов
назначение и цветовая маркировка контактов разъёмов
максимально допустимая длина
131.
ХАРАКТЕРИСТИКИ МЕДНЫХ КАБЕЛЕЙИсточники помех:
ЭМП или РЧП
переходные помехи
Меры повышения защищённости:
выбор типа и категории кабеля
проектирование кабельной инфраструктуры с обходом
источников помех
соблюдение правил прокладки и подключения кабелей
132.
ТИПЫ МЕДНЫХ КАБЕЛЕЙUTP
STP
Коаксиальные кабели
133.
КОАКСИАЛЬНЫЙ КАБЕЛЬЭлементы:
медный проводник
слой изоляции
экран
оболочка
Области использования:
оборудование беспроводных сетей
сети кабельного телевидения с доступом в Интернет
134.
БЕЗОПАСНОСТЬ МЕДНЫХ КАБЕЛЕЙРазделение силовых кабелей и кабелей для передачи
данных должно соответствовать требованиям техники
безопасности
Кабели должны быть подключены правильно
При установке оборудования его необходимо проверить на
предмет повреждений
Оборудование должно быть правильно заземлено
135.
СВОЙСТВА КАБЕЛЕЙ UTPРешения для
ограничения влияния
переходных помех:
взаимоподавление
различный шаг витков
в парах
136.
СТАНДАРТЫ ПРОКЛАДКИ КАБЕЛЕЙ UTPКатегория 3:
для голосовой связи
для телефонных линий
Категории 5, 5e, 6:
для передачи данных
Cat5 поддерживает скорость 100 Мбит/с и скорость 1000
Мбит/с (не рекомендуется)
Cat5e поддерживает скорость 1000 Мбит/с
Cat6 поддерживает скорость от 1000 Мбит/с до 10 Гбит/с
(скорость 10 Гбит/с не рекомендуется)
137.
ТИПЫ КАБЕЛЕЙ UTPТип кабеля
Стандарт
Прямой
Оба конца
T568A или
кабель
Ethernet
T568B
Применение
Подключает сетевой узел к сетевому
устройству, например к коммутатору или
концентратору
Соединяет два узла сети
Кроссовый Один конец
Соединяет два сетевых промежуточных
T568A, другой
кабель
устройства (коммутатор с коммутатором
Ethernet
конец T568B
или маршрутизатор с маршрутизатором)
Запатентован Присоединяет последовательный порт
Консольный компанией
рабочей станции к порту консоли
Cisco
маршрутизатора с помощью адаптера
138.
СВОЙСТВА ОПТОВОЛОКОННЫХ КАБЕЛЕЙОбласти использования:
корпоративные сети
технология «оптоволокно до квартиры» (FTTH)
сети дальней связи
подводные кабельные сети
139.
ТИПЫ ОПТОВОЛОКОННЫХ КАБЕЛЕЙХарактеристика
Сердечник
Одномодовый кабель
Небольшой
Многомодовый кабель
Больше
Дисперсия
Меньше
Больше (больше
потерь сигнала)
+ (но не таких
больших, как при
одномодовом)
Светодиоды
Подходит для больших +
расстояний
Источник света
Использование
Лазеры
В магистральных
соединениях
комплекса зданий
с расстоянием
в несколько тысяч
метров
С локальными сетями
или на расстояниях
в пределах 200 м для
сети комплекса зданий
140.
ОПТОВОЛОКОННЫЕ РАЗЪЁМЫST (Straight-Tip)
Один из первых механизмов коннекторов. Надёжно
фиксируется закручивающимся механизмом
байонетного типа
Иногда называют квадратным или стандартным
разъёмом. Широко используется в сетях, оснащён
механизмом с защёлкой push-pull для обеспечения
надёжного монтажа. Используется со всеми типами
кабелей
Симплексные LC Меньший по размеру вариант разъёма SC. Иногда
(Lucent Connector) называется малым или локальным разъёмом, быстро
набирает популярность из-за малого размера
Аналогичны симплексным LC, но с использованием
Дуплексные
многомодовые LC дуплексного разъёма
SC (Subscriber
Connector)
141.
ТЕСТИРОВАНИЕ ОПТОВОЛОКОННЫХ КАБЕЛЕЙПроблемы при оконцовке и сращивании кабелей:
смещение
зазор между торцами волокон
качество обработки торцов волокна
подводные кабельные сети
142.
ОПТОВОЛОКОННЫЕ И МЕДНЫЕ КАБЕЛИ. СРАВНЕНИЕОсобенности при внедрении
UTP
Поддерживаемая пропускная
способность
Расстояние
От 10 Мбит/с до 10
Гбит/с
Небольшие (от 1 до
100 м)
Оптоволокно
От 10 Мбит/с до
100 Гбит/с
Большие (от 1 м
до 100 км)
Устойчивость к ЭМП и РЧП
Устойчивость к поражению
электрическим током
Низкая
Низкая
Высокая
Высокая
Расходы на средства передачи
Требуемые навыки
Минимум
Минимум
Максимум
Максимум
Правила ТБ
Минимум
Максимум
143.
СВОЙСТВА БЕСПРОВОДНОЙ СРЕДЫ ПЕРЕДАЧИ ДАННЫХОсобенности беспроводной среды:
зона покрытия
помехи
безопасность
совместный доступ к средству подключения
144.
ТИПЫ СРЕДСТВ БЕСПРОВОДНОГО ПОДКЛЮЧЕНИЯСтандарты беспроводной передачи данных:
Wi-Fi: стандарт IEEE 802.11
Bluetooth: стандарт IEEE 802.15
WiMAX: стандарт IEEE 802.16
145.
БЕСПРОВОДНАЯ ЛОКАЛЬНАЯ СЕТЬСетевые устройства:
беспроводная точка доступа (AP)
беспроводные сетевые платы
146.
КАНАЛЬНЫЙ УРОВЕНЬУровень приложений
Уровень представлений
Сеансовый уровень
Транспортный уровень
Сетевой уровень
Канальный уровень
Физический уровень
147.
ПОДУРОВНИ КАНАЛЬНОГО УРОВНЯСетевой уровень
Bluetooth
802.15
Физический уровень
Wi-Fi
802.11
Подуровень MAC
802.3
Ethernet
Канальный
уровень
Подуровень LLC
148.
ПРЕДОСТАВЛЕНИЕ ДОСТУПА К СРЕДЕОперации маршрутизатора:
принимает кадр из среды
деинкапсулирует кадр
инкапсулирует пакет в новый кадр
передаёт новый кадр
149.
УПРАВЛЕНИЕ ДОСТУПОМ К СРЕДЕФакторы выбора метода
управления доступом:
топология
совместное использование
средства подключения
150.
РАСПРОСТРАНЁННЫЕ ФИЗИЧЕСКИЕ ТОПОЛОГИИ WANФакторы выбора метода управления доступом:
«точка-точка» (Point-to-Point)
«звездообразная» (hub and spoke)
ячеистая (mesh)
151.
ФИЗИЧЕСКИЕ ТОПОЛОГИИ ЛОКАЛЬНЫХ СЕТЕЙЗвезда (star)
Расширенная звезда (extended star)
Шина (bus)
Кольцо (ring)
152.
МЕТОДЫ УПРАВЛЕНИЯ ДОСТУПОМ К СРЕДЕ ПЕРЕДАЧИКонкурентный доступ
Управляемый доступ
153.
КОНКУРЕНТНЫЙ ДОСТУП CSMA/CDPC1: Эта среда передачи данных доступна, поэтому я отправлю
кадр Ethernet на PC3
PC2: У меня есть кадр для отправки, но я должен дождаться
окончания получения кадра
PC2: Этот кадр предназначен не для меня, поэтому я
игнорирую его
PC3: Этот кадр предназначен для меня, поэтому я скопирую
кадр полностью
154.
КОНКУРЕНТНЫЙ ДОСТУП CSMA/CAPC1: Я получаю кадр данных беспроводной сети
PC2: В кадре данных беспроводной сети я вижу, что канал
будет недоступен определённое время, поэтому я не могу
отправить
PC3: В кадре данных беспроводной сети я вижу, что канал
будет недоступен определённое время, поэтому я не могу
отправить
155.
КАДРКомпоненты:
заголовок
данные
концевик
Заголовок
Пакет (данные)
Концевик
156.
ПОЛЯ КАДРАЗаголовок
Начало
кадра
Адресация Тип Управление
Пакет
(данные)
Концевик
Данные
Обнаружение Конец
ошибок
кадра
Передающий узел путем логической обработки содержимого кадра
создает циклический избыточный код (cyclic redundancy check, CRC)
Значение этого кода помещается в поле контрольной
последовательности кадра (Frame Check Sequence, FCS) и предоставляет
информацию
о содержимом кадра
Поле FCS в концевике кадра Ethernet позволяет принимающему узлу
проверять кадр на наличие ошибок передачи
157.
АДРЕС УРОВНЯ 2Заголовок L2
Сетевая
Сетевая
интерфейсная интерфейсная
плата места
плата
назначения
источника
IP-пакет L3
IP-адрес
источника
192.168.1.110
IP-адрес
назначения
172.16.1.99
158.
КАДРЫ LAN И WANПротоколы канального уровня:
Ethernet
беспроводная сеть 802.11
протокол «точка-точка» (протокол PPP)
HDLC
протокол ретрансляции кадров (протокол Frame Relay)
159.
ИНКАПСУЛЯЦИЯ ETHERNETСетевой уровень
Подуровень LLC
IEEE 802.3z
GigabitEthernet
IEEE 802.3u
FastEthernet
Физический уровень
IEEE 802.3
Ethernet
Подуровень MAC
Ethernet
Канальный
уровень
IEEE 802.2
160.
ПОДУРОВЕНЬ MACИнкапсуляция данных:
разделение кадра
адресация
обнаружение ошибок
Управление доступом к среде передачи данных:
управление процессом размещения кадров внутри и вне
передающей среды
восстановление передающей среды
161.
РАЗВИТИЕ ETHERNETГод
Стандарт
1973
Ethernet
1980
1983
Стандарт DIX IEEE 802.3
Ethernet II
10 BASE-5
1985
IEEE 802.3a
10 BASE-2
Описание
Технология
Ethernet была
изобретена
сотрудником
корпорации
Xerox
Корпорации
DEC, Intel и
Xerox (DIX)
разработали
стандарт 10
Мбит/с для
передачи по
коаксиалу
Ethernet 10
Мбит/с по
тонкому
коаксиально
му кабелю
Ethernet 10
Мбит/с по
толстому
коаксиально
му кабелю
162.
ПОЛЯ КАДРА ETHERNET8 Bytes
6 Bytes
Preamble Destination
Address
6 Bytes
Source
Address
2 Bytes 46 to 1500 Bytes 4 Bytes
Type
Data
Frame Check
Sequence
Поле Type определяет протокол верхнего уровня, инкапсулированный
в кадр Ethernet. Характерные значения – значения
в шестнадцатеричном формате 0x800 для IPv4 и 0x806 для ARP
Поле Data содержит инкапсулированные данные из более высокого
уровня, которые являются универсальной единицей данных
протокола (PDU) уровня 3, или пакетом IPv4
Длина всех кадров – не менее 64 байт
163.
MAC-АДРЕС И ШЕСТНАДЦАТЕРИЧНАЯ СИСТЕМА СЧИСЛЕНИЯДесятичные
0
1
2
3
4
5
6
7
8
9
10
Двоичные
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
Шестнадцатеричные
0
1
2
3
4
5
6
7
8
9
A
164.
MAC-АДРЕС: ИДЕНТИФИКАЦИЯ ETHERNETУникальный идентификатор
организации (OUI)
24 бита
6 шестнадцатеричных цифр
00-60-2F
Cisco
Часть, назначаемая
производителем (сетевая
плата, интерфейсы)
24 бита
6 шестнадцатеричных цифр
3A-07-BC
Конкретное устройство
165.
ПРЕДСТАВЛЕНИЯ MAC-АДРЕСОВ166.
ИНДИВИДУАЛЬНЫЙ И ШИРОКОВЕЩАТЕЛЬНЫЙ MAC-АДРЕСАIP
источника
IP
назначения
Данные
пользователя
00-07-E9-42- 00-07-E9-63192.168.1.5 192.168.1.200
AC-28
CE-53
Кадр Ethernet
IP-пакет
MAC-адрес MAC-адрес
IP
назначения источника
IP назначения
источника
Данные
пользователя
FF-FF-FF-FF- 00-07-E9192.168.1.5
192.168.1.255
FF-FF
63-CE-53
Концевик
MAC-адрес MAC-адрес
назначения источника
Концевик
Кадр Ethernet
IP-пакет
167.
MAC-АДРЕС МНОГОАДРЕСНОЙ РАССЫЛКИMAC-адрес MAC-адрес
назначения источника
01-00-5E00-00-C8
00-07-E963-CE-53
Кадр Ethernet
IP-пакет
IP-адрес
IP-адрес
источника назначения
192.168.1.5
224.0.0.200
Концевик
Данные
пользователя
168.
ОСНОВНАЯ ИНФОРМАЦИЯ О КОММУТАТОРАХPort
MAC Address
1
2
3
4
MAC
00-0A
MAC
00-0B
MAC
00-0C
MAC 000D
169.
ПОЛУЧЕНИЕ ИНФОРМАЦИИ О MAC-АДРЕСАХPort
1
MAC Address
00-0A
1
A
MAC
00-0A
2
B
3
4
C
D
MAC 00- MAC
0B
00-0C
MAC
00-0D
170.
ФИЛЬТРАЦИЯ КАДРОВPort
1
4
MAC Address
00-0A
00-0D
1
2
3
4
A
B
C
D
MAC
00-0A
MAC
00-0B
MAC
00-0C
MAC
00-0D
171.
СПОСОБЫ ПЕРЕАДРЕСАЦИИ КАДРА НА КОММУТАТОРАХКоммутатор с промежуточным хранением получает кадр
целиком и вычисляет CRC. Если CRC допустимо, коммутатор
ищет адрес назначения, который определяет выходной
интерфейс. Затем кадр перенаправляется к правильному порту
Коммутатор со сквозной коммутацией пересылает данный кадр
до его полного получения. Поэтому как минимум адрес
назначения кадра должен быть прочтён раньше, чем кадр
можно будет перенаправить
172.
СКВОЗНАЯ КОММУТАЦИЯ (CUT-THROUGH)Варианты:
коммутация с быстрой пересылкой
коммутация с исключением фрагментов
Некоторые коммутаторы настроены на использование сквозной
коммутации для каждого порта до тех пор, пока не будет
достигнуто указанное пользователем предельное количество
ошибок, после чего автоматически устанавливается коммутация
с промежуточным хранением. После того, как частота
повторения ошибок снизится до установленного предельного
значения, порт автоматически переключится на использование
сквозной коммутации
173.
БУФЕРИЗАЦИЯ ПАМЯТИ НА КОММУТАТОРАХБуферизация памяти на
базе портов
Буферизация совместно
используемой памяти
В процессе буферизации кадры
хранятся в очередях, связанных
с определёнными входящими
и исходящими портами
Все кадры помещаются в буфер,
который является общим для
всех портов коммутатора
174.
НАСТРОЙКА ДУПЛЕКСНОГО РЕЖИМА И СКОРОСТИA
Режим
дуплекс
Порт 1
Полнодуплексный Автоопределение Полнодуплексный
Полудуплексный
Полудуплексный
1000 Мбит/с
Скорость
100 Мбит/с
100 Мбит/с
10 Мбит/с
10 Мбит/с
Режим
дуплекс
Скорость
175.
ФУНКЦИЯ AUTO-MDIXMDIX автоматически определяет необходимый тип
подключения и соответствующим образом настраивает
интерфейс
176.
УСТРОЙСТВО НАЗНАЧЕНИЯ В ТОЙ ЖЕ СЕТИMAC-адрес
назначения
Источник A
192.168.1.110
MAC-адрес
назначения
00-0B
00-0A
MAC-адрес
источника
00-0A
Уровень 2: заголовок кадра
Ethernet
00-0B
IP-адрес
источника
192.168.1.110
IP-адрес
назначения
Файловый
сервер
192.168.1.50
IP-адрес
назначения
192.168.1.50
Уровень 3: IP-пакет
177.
УСТРОЙСТВО НАЗНАЧЕНИЯ В УДАЛЁННОЙ СЕТИIP-адрес
назначения
MAC-адрес
назначения
A
Источник
000A
000C
MAC-адрес
назначения
00-0C
NI
C
R1
MAC-адрес
источника
00-0A
Уровень 2: заголовок кадра
Ethernet
NI
C
NI
C
R2
IP-адрес
источника
192.168.1.110
NI
C
Файловый
сервер
Назначение
IP-адрес
назначения
172.16.1.99
Уровень 3: IP-пакет
178.
ПРОТОКОЛ РАЗРЕШЕНИЯ АДРЕСОВ (ARP)H1: Мне нужно отправить информацию на адрес 192.168.1.7, но у
меня есть только IP-адрес. Я не знаю MAC-адрес устройства,
которому присвоен этот IP-адрес
H1
H3
192.168.1.5
H2
192.168.1.6
192.168.1.8
H4
192.168.1.7
179.
ФУНКЦИИ ARPH1: Мне нужно отправить ARP-запрос, чтобы узнать MAC-адрес
узла с IP-адресом 192.168.1.7
H1
H3
192.168.1.5
192.168.1.8
H2
H4
192.168.1.6
192.168.1.7
180.
ARP-ЗАПРОСЭто не
я
H1
H3
192.168.1.5
192.168.1.8
Это я. Я
вышлю свой
MAC-адрес
Это
не я.
H2
H4
192.168.1.6
192.168.1.7
181.
ARP-ОТВЕТH1
H3
192.168.1.5
192.168.1.8
Это я. Я
вышлю свой
MAC-адрес
H2
H4
192.168.1.6
192.168.1.7
182.
СЕТЕВОЙ УРОВЕНЬОсновные процессы:
адресация оконечных устройств
инкапсуляция
маршрутизация
деинкапсуляция
183.
ИНКАПСУЛЯЦИЯ ПРОТОКОЛА IPИнкапсуляция
транспортного
уровня
Заголовок
сегмента
Данные
Инкапсуляция
сетевого уровня
IP-заголовок
Данные
PDU сетевого уровня
IP-пакет
184.
ПРОТОКОЛ IP. БЕЗ УСТАНОВЛЕНИЯ СОЕДИНЕНИЯОтправитель не знает:
присутствует ли получатель на месте
доставлен ли пакет
прочитает ли его получатель
Получатель не знает:
когда ждать пакет
185.
ПРОТОКОЛ IP. НЕЗАВИСИМОСТЬ ОТ СРЕДЫОптоволоконный
Медный
последовательный
Медный
Ethernet
IP-пакет
IP-пакет
Медный
Ethernet
Беспроводной
доступ
IPпакет
186.
ЗАГОЛОВОК ПАКЕТА IPV4Байт 1
Байт 2
Байт 3
DS
Размер
Версия загоECN
ловка DSCP
Байт 4
Общий размер
Идентификация
Флаг
Смещение фрагмента
Время
Протокол
Контрольная сумма заголовка
существования
IP-адрес источника
IP-адрес назначения
…
20
байт
187.
ПРИМЕР ЗАГОЛОВКОВ IPV4 В ПРОГРАММЕ WIRESHARK188.
ОГРАНИЧЕНИЯ IPV4Основные недостатки IPv4:
нехватка IP-адресов
расширение таблицы интернет-маршрутизации
нехватка сквозных соединений
189.
ОБЩИЕ СВЕДЕНИЯ О ПРОТОКОЛЕ IPV6Название
числа
Научное
представлен
ие
1 миллиард
10^9
1 секстиллион 10^21
1 септиллион
10^24
1 октиллион
10^27
1 нониллион
10^30
1 дециллион
10^33
1 ундециллион 10^36
Количество нулей
1 000 000 000
1 000 000 000 000 000 000 000
1 000 000 000 000 000 000 000 000
1 000 000 000 000 000 000 000 000 000
1 000 000 000 000 000 000 000 000 000 000
1 000 000 000 000 000 000 000 000 000 000 000
1 000 000 000 000 000 000 000 000 000 000 000
000
190.
ЗАГОЛОВОК ПАКЕТА IPV6Байт 1
Версия
Байт 2
Класс
трафика
Байт 3
Байт 4
Метка потока
Следующий
заголовок
IP-адрес источника
Длина полезной нагрузки
IP-адрес назначения
Предел
переходов
40
байт
191.
ПРИМЕР ЗАГОЛОВКОВ IPV6 В ПРОГРАММЕ WIRESHARK192.
РЕШЕНИЕ О ПЕРЕАДРЕСАЦИИ ПАКЕТОВ ХОСТОМТипы узлов назначений:
самому себе
локальный узел
удалённый узел
193.
ШЛЮЗ ПО УМОЛЧАНИЮФункции:
направляет трафик в другие сети
имеет локальный IP-адрес в том же диапазоне адресов, что
и другие хосты в сети
может принимать входные данные и передавать данные
наружу
194.
ТАБЛИЦЫ МАРШРУТИЗАЦИИ УЗЛАКоманды:
route print
netstat -r
Разделы:
список интерфейса
таблица маршрутизации IPv4
таблица маршрутизации IPv6
195.
РЕШЕНИЕ О ПЕРЕАДРЕСАЦИИ ПАКЕТОВ МАРШРУТИЗАТОРАИнформация в таблице маршрутизации:
маршруты с прямым подключением
удалённые маршруты
маршрут по умолчанию
196.
ОБЩИЕ СВЕДЕНИЯ О ТАБЛИЦЕ IPV4-МАРШРУТИЗАЦИИ197.
ТАБЛИЦА МАРШРУТИЗАЦИИ МАРШРУТИЗАТОРА IPV4198.
ЗАПИСИ ТАБЛИЦЫ МАРШРУТИЗАЦИИ С ПРЯМЫМПОДКЛЮЧЕНИЕМ И УДАЛЁННОЙ СЕТИ
Источник
маршрута
Источник
маршрута
Сеть
назначения
Сеть
назначения
Исходящий
интерфейс
Административное
расстояние
199.
АДРЕС СЛЕДУЮЩЕГО ПЕРЕХОДАPC
1
PC
2
10.1.1.0/24
192.168.10.0/24
.10
.10
G0/0
.1 209.165.200.224/30
.1
.225
.1
.226 R2 .1
R1 S0/0/0
.10
.10
G0/1
192.168.11.0/24
10.1.2.0/24
200.
МАРШРУТИЗАТОР – ЭТО ВЫЧИСЛИТЕЛЬНАЯ МАШИНАОбласти использования:
филиалы
сети WAN
операторы связи
Компоненты:
ЦП
ОС
память
201.
Таблицамаршрутизации
Таблица ARP
Файл текущей
конфигурации
ОЗУ
Текущая версия IOS
Буфер
пакетов
NVRAM
Флешпамять
Файл
загрузочной
конфигурации
Файлы
IOS
Микропрограммное
обеспечение
управляющей
программы,
записанной в ПЗУ
(ограниченная IOS)
POST
ПАМЯТЬ МАРШРУТИЗАТОРА
ПЗУ
202.
ИНТЕРФЕЙСЫ LAN И WANСпособы доступа к среде интерфейса:
консоль
Secure Shell (SSH)
Telnet
203.
ПРОЦЕСС ЗАГРУЗКИ МАРШРУТИЗАТОРАПЗУ
POST
Выполнение
процедуры POST
ПЗУ
Программа
начального запуска
Загрузка программы
начального запуска
Операционная
система Cisco IOS
Поиск и загрузка
операционной
системы
Конфигурация
Поиск и загрузка
файла конфигурации
или переход в режим
настройки
Флеш
TFTPсервер
NVRAM
TFTPсервер
Консоль
204.
АДРЕСА IPV4192
11000000
.
168
10101000
.
10
00001010
.
10
00001010
Сопоставление IPv4-адреса в десятичном формате с точкойразделителем с IPv4-адресом в двоичном формате
Адрес в десятичном формате с точкой-разделителем: 192.168.10.10 – это
IP-адрес, назначенный компьютеру
Октеты: этот адрес состоит из 4 разных октетов
32-битный адрес: компьютер сохраняет адрес как целый 32-битный
поток данных
205.
ЧАСТИ СЕТИ И ХОСТА. МАСКА ПОДСЕТИIPv4-адрес
Сетевая часть
192
11000000
.
168
10101000
.
10
00001010
.
Узловая
часть
10
00001010
206.
ЛОГИЧЕСКАЯ ОПЕРАЦИЯ ИIP-адрес
.
168
10101000
.
10
00001010
.
Двоичное
192
11000000
10
00001010
Маска
подсети
255
11111111
.
255
11111111
.
255
11111111
.
0
00000000
Результаты
операции И
Сетевой
адрес
11000000
192
10101000
.
168
00001010
.
10
00000000
.
0
207.
ДЛИНА ПРЕФИКСА32-битный адрес
Маска подсети
255.0.0.0
11111111.00000000.00000000.00000000
Длина префикса
/8
255.255.0.0
255.255.255.0
255.255.255.128
11111111.11111111.00000000.00000000
11111111.11111111.11111111.00000000
11111111.11111111.11111111.10000000
/16
/24
/25
255.255.255.192
255.255.255.224
11111111.11111111.11111111.11000000
11111111.11111111.11111111.11100000
/26
/27
255.255.255.240
255.255.255.248
11111111.11111111.11111111.11110000
11111111.11111111.11111111.11111000
/28
/29
255.255.255.252
11111111.11111111.11111111.11111100
/30
208.
СТАТИЧЕСКОЕ И ДИНАМИЧЕСКОЕ НАЗНАЧЕНИЕ IPV4-АДРЕСАУЗЛУ
209.
ОДНОАДРЕСНАЯ ПЕРЕДАЧААдрес источника: 172.16.4.1
Адрес назначения: 172.16.4.253
172.16.4.1
172.16.4.2
172.16.4.3
172.16.4.253
210.
ШИРОКОВЕЩАТЕЛЬНАЯ РАССЫЛКААдрес источника: 172.16.4.1
Адрес назначения: 255.255.255.255
172.16.4.1
172.16.4.2
172.16.4.3
172.16.4.253
211.
МНОГОАДРЕСНАЯ РАССЫЛКААдрес источника: 172.16.4.1
172.16.4.253
172.16.4.1
172.16.4.2
172.16.4.3
224.10.10.5
172.16.4.4
224.10.10.5
212.
ОБЩЕДОСТУПНЫЕ И ЧАСТНЫЕ АДРЕСА IPV4Блоки частных адресов:
10.0.0.0 /8
172.16.0.0 /12
192.168.0.0 /16
213.
IPV4-АДРЕСА СПЕЦИАЛЬНОГО НАЗНАЧЕНИЯадреса loopback (127.0.0.0 /8)
локальные адреса канала (169.254.0.0 /16)
адреса TEST-NET (192.0.2.0 /24)
214.
УСТАРЕВШАЯ КЛАССОВАЯ АДРЕСАЦИЯДиапазоны индивидуальных адресов:
класс A (от 0.0.0.0 /8 до 127.0.0.0 /8)
класс B (от 128.0.0.0 /16 до 191.255.0.0 /16)
класс C (от 192.0.0.0 /24 до 223.255.255.0 /24)
215.
БЕСКЛАССОВАЯ АДРЕСАЦИЯКлассы
DиE
12,5 %
Класс C
12,5 %
Класс B
25 %
Класс A
Всего сетей: 128
Всего хостов в сети: 16 777 214
Класс A
50 %
Класс B
Всего сетей: 16 384
Всего хостов в сети: 65 534
Класс C
Всего сетей: 2 097 152
Всего хостов в сети: 254
216.
СОВМЕСТНОЕ ИСПОЛЬЗОВАНИЕ ПРОТОКОЛОВ IPV4 И IPV6Методы перехода:
двойной стек
туннелирование
преобразование
217.
ПРЕДСТАВЛЕНИЕ IPV6-АДРЕСОВX
:
0000
–
FFFF
X
:
X
:
000
0
–
0000
:
–
FFFF
FFFF
:
X
:
0000
:
–
FFFF
X
:
0000
:
–
FFFF
X
:
0000
:
–
FFFF
X
0000
:
0000
0000
0000
0000
–
–
–
–
1111
1111
1111
1111
4 шестнадцатеричных знака = 16 двоичных знаков
:
X
0000
–
:
–
FFFF
FFFF
218.
ПРАВИЛО 1. ПРАВИЛО 2Предпочитаемый
формат
Без начальных нулей
Сжатый формат
2001:0DB8:0000:1111:0000:0000:0000:0200
2001: DB8:
0:1111:
2001:DB8:0:1111::200
0:
0:
0:200
219.
IPV6-АДРЕСА: ТИПЫиндивидуальный (или одноадресной рассылки, unicast)
групповой (или многоадресной рассылки, multicast)
произвольный (или произвольной рассылки, anycast)
IPv6-адрес источника
IPv6-адрес назначения
2001:DB8:ACAD:1::10
2001:DB8:ACAD:1::8
2001:DB8:ACAD:1::1/64
2001:DB8:ACAD:1::/64
❷
2001:DB8:ACAD:1::10/64
2001:DB8:ACAD:1::9/64
2001:DB8:ACAD:1::8/64
2001:DB8:ACAD:1::20/64
220.
ИНДИВИДУАЛЬНЫЕ IPV6-АДРЕСАТипы:
глобальный индивидуальный адрес
локальный адрес канала
уникальный локальный адрес FC00::/7 – FDFF::/7
адрес Loopback ::1/128
неуказанный адрес ::/128
встроенный IPv4-адрес
221.
ЛОКАЛЬНЫЕ ИНДИВИДУАЛЬНЫЕ IPV6-АДРЕСА КАНАЛАПакет IPv6
IPv6-адрес источника
FE80::AAAA
IPv6-адрес назначения
FE80::DDDD
FE80::1/64
❷
172.16.4.253
172.16.4.1
172.16.4.2
172.16.4.3
224.10.10.5
222.
СТРУКТУРА ГЛОБАЛЬНОГО ИНДИВИДУАЛЬНОГОIPV6-АДРЕСА
Префикс глобальной
маршрутизации
001
Идентификатор Идентификатор
подсети
интерфейса
Диапазон первого гекстета:
0010 0000 0000 0000 (2000)
0011 1111 1111 1111 (3FFF)
223.
ПРЕФИКС ГЛОБАЛЬНОЙ МАРШРУТИЗАЦИИ IPV6 /4848 бит
16 бит
64 бита
Префикс глобальной
маршрутизации
Идентификатор
подсети
Идентификатор
интерфейса
64 бита
Префикс маршрутизации A /48 +
идентификатор подсети 16 бит = префикс /64
224.
ПРИСВОЕННЫЕ ГРУППОВЫЕ АДРЕСА IPV6IPv6-адрес источника
2001:ODB8:ACAD:1::1
IPv6-адрес назначения
FF02::1
❷
❷
❷
❷
2001:DB8:ACAD:1::10/64
2001:DB8:ACAD:1::9/64
2001:DB8:ACAD:1::8/64
2001:DB8:ACAD:1::20/64
225.
СООБЩЕНИЯ ICMPV4 И ICMPV6Подтверждение узла
Узел назначения или сервис недоступны
Превышен интервал ожидания
Переадресация маршрута
226.
ЭХОЗАПРОС НА УДАЛЁННЫЙ ХОСТПримеры кодов сообщений о недоступном узле для ICMPv4:
0 – сеть недоступна
1 – узел недоступен
2 – протокол недоступен
3 – порт недоступен
227.
СООБЩЕНИЯ ICMPV6 RS И RAЯ буду отправлять
сообщения RA
каждые 200 секунд
Сообщение RA ICMPv6
Группе многоадресной рассылки на
все IPv6-устройства
Группе многоадресной рассылки на
все IPv6-маршрутизаторы
Сообщение RS
маршрутизатора ICMPv6
Я перезагрузился,
поэтому отправлю
сообщение RS,
чтобы запросить
ответ RA от
маршрутизатора
228.
ОБМЕН СООБЩЕНИЯМИ МЕЖДУ IPV6-УСТРОЙСТВАМИЯ знаю
ваш IPv6адрес; а
какой у
вас MACадрес?
Группе многоадресной рассылки на
запрошенные узлы
Запрос соседнего узла (NS)
ICMPv6
Отправителю NS
(индивидуальный адрес)
Ответ соседнего узла
(NA) ICMPv6
Вот мой IPv6-адрес.
Вот мой MAC-адрес
229.
ВЫПОЛНЕНИЕ КОМАНДЫ PING.ТЕСТИРОВАНИЕ ЛОКАЛЬНОГО СТЕКА
230.
ВЫПОЛНЕНИЕ КОМАНДЫ PING.ТЕСТИРОВАНИЕ ПОДКЛЮЧЕНИЯ К ЛОКАЛЬНОЙ СЕТИ (LAN)
эхо-запрос
10.0.0.254
F0/1
эхо-ответ
255.255.255.0
10.0.0.1
255.255.255.0
231.
PING НА УДАЛЁННЫЙ УЗЕЛ10.0.0.254
255.255.255.0
F1
10.0.1.254
255.255.255.0
F0
IP Routing Table
F0
10.0.1.0
F1
10.0.0.0
Echo request
Echo reply
10.0.0.1
255.255.255.0
10.0.0.253
255.255.255.0
10.0.0.2
255.255.255.
0
10.0.1.253
255.255.255.0
10.0.1.2
10.0.1.1
255.255.255.0
255.255.255.0
232.
ТРАССИРОВКА МАРШРУТА. ТЕСТИРОВАНИЕ ПУТИ10.0.0.1
255.255.255.0
Traceroute
192.168.1.2
(TTL = 1)
192.168.1.2
255.255.255.0
233.
КОМАНДА TRACEROUTE (TRACERT). ТЕСТИРОВАНИЕ ПУТИTraceroute
192.168.1.2
(TTL = 1)
10.0.0.1
255.255.255.0
ICMP
Время истекло
Traceroute
192.168.1.2
(TTL = 2)
192.168.1.2
255.255.255.0
234.
ДОМЕНЫ ШИРОКОВЕЩАТЕЛЬНОЙ РАССЫЛКИG0/0
Интернет
R1
Широковещательный
домен
235.
ПРОБЛЕМЫ С КРУПНЫМИ ШИРОКОВЕЩАТЕЛЬНЫМИДОМЕНАМИ
G0/0
Интернет
R1
LAN 1: 172.16.0.0/16
(400 пользователей)
LAN 2
236.
ПРИЧИНЫ ДЛЯ РАЗДЕЛЕНИЯ НА ПОДСЕТИИнтернет
Администрация
LAN 1: 10.0.1.0 /24
Студенты
LAN 2: 10.0.2.0 /24
G0/0
Отдел кадров
G0/3 LAN 3: 10.0.3.0 /24
G0/1 R1
G0/2
Бухгалтерия
LAN 4: 10.0.4.0 /24
237.
РАЗДЕЛЕНИЕ НА ПОДСЕТИ НА ГРАНИЦЕ ОКТЕТОВАдрес подсети
(256 возможных
подсетей)
10.0.0.0/16
10.1.0.0/16
10.2.0.0/16
Диапазон узлов
(65 534 возможных узла
в каждой подсети)
10.0.0.1 – 10.0.255.254
10.1.0.1 – 10.1.255.254
10.2.0.1 – 10.2.255.254
Широковещательный
адрес
10.3.0.0/16
10.4.0.0/16
…
10.3.0.1 – 10.3.255.254
10.4.0.1 – 10.4.255.254
…
10.3.255.255
10.4.255.255
…
10.255.0.0/16
10.255.0.1 – 10.255.255.254
10.255.255.255
10.0.255.255
10.1.255.255
10.2.255.255
238.
РАЗДЕЛЕНИЕ НА ПОДСЕТИ С БЕСКЛАССОВОЙ АДРЕСАЦИЕЙ(ПРИМЕР)
Адрес
192.
Сеть 192.168.1.0/24
168.
1.
0000
Маска
255.
255.
255.
Сетевая часть
0000
0000
0000
Узловая часть
239.
СОЗДАНИЕ ДВУХ ПОДСЕТЕЙPC1
192.168.1.0/25
G0/0
G0/1
PC2
192.168.1.128/25
240.
ФОРМУЛЫ РАЗДЕЛЕНИЯ НА ПОДСЕТИФормула расчёта количества подсетей: 2n
n – заимствованные биты
Формула расчёта количества узлов: 2n − 2
n – количество битов, оставшееся в части хоста
241.
СОЗДАНИЕ ПОДСЕТЕЙ С ПРЕФИКСОМ /16Длина
префикса
/17
/18
/19
/20
Маска
подсети
Сетевой адрес (с – сеть, у – узел)
сссссссс.сссссссс.сууууууу.уууууууу
255.255.128.
11111111.11111111.10000000.0000
0
0000
сссссссс.сссссссс.ссуууууу.уууууууу
255.255.192.
11111111.11111111.11000000.0000
0
0000
сссссссс.сссссссс.сссууууу.уууууууу
255.255.224.
11111111.11111111.11100000.0000
0
0000
сссссссс.сссссссс.ссссуууу.уууууууу
255.255.240.
11111111.11111111.11110000.0000
0
Кол-во Кол-во
подсетей узлов
2
32766
4
16382
8
8 190
16
4 094
242.
СОЗДАНИЕ 1 000 ПОДСЕТЕЙ С ПРЕФИКСОМ /810
nnnnnnnn
Заимствование 1 бита:
Заимствование 2 бит:
21 = 2
22 = 4
Заимствование 3 бит:
Заимствование 4 бит:
Заимствование 5 бит:
23 = 8
24 = 16
25 = 32
Заимствование 6 бит:
Заимствование 7 бит:
26 = 64
27 = 128
Заимствование 8 бит:
Заимствование 9 бит:
28 = 256
29 = 512
.
.
0
hhhhhhhh
.
.
0
hhhhhhhh
.
.
0
hhhhhhhh
243.
РАЗДЕЛЕНИЕ НА ПОДСЕТИ НА ОСНОВЕ ТРЕБОВАНИЙ К УЗЛАММаска
подсети
Маска подсети в двоичной системе Кол-во
(с – сеть, у – узел)
подсетей
Колво
узлов
255.255.
255.128
сссссссс.сссссссс.сссссссс.сууууууу
11111111.11111111.
11111111.10000000
2
126
/26
255.255.
255.192
4
62
/27
255.255.25
5.224
сссссссс.сссссссс.сссссссс.ссуууууу
11111111.
11111111.11111111.11000000
сссссссс.сссссссс.сссссссс.сссууууу
11111111.11111111.11111111.1110
0000
8
30
Длина
префикса
/25
244.
ПРИМЕР ТРЕБОВАНИЙ СЕТИСетевая часть
Узловая часть
10101100.00010100.000000
00.00000000
10 бит в узловой
части
210 – 2 = 1 022 узла
172.16.0.0/22
245.
ТОПОЛОГИЯ СЕТИ. БАЗОВЫЕ ПОДСЕТИЗдание
A
25 узлов
Здание
Б
20 узлов
Здание
В
15 узлов
Здание
Г
28 узлов
R1
R2
R3
R4
246.
МАСКИ ПОДСЕТИ ПРОИЗВОЛЬНОЙ ДЛИНЫ30 узлов 30 узлов
30 узлов
30 узлов
30 узлов
30 узлов
30 узлов
30
узлов
247.
БАЗОВАЯ МОДЕЛЬ VLSMУзловая часть
Десятичное
представление
с разделительными
точками
.00000000
192.168.20.0/24
0 11000000.10101000.00010100
1 11000000.10101000.00010100
.000
.001
00000
00000
192.168.20.0/27
192.168.20.32/27
2 11000000.10101000.00010100
3 11000000.10101000.00010100
.010
.011
00000
00000
192.168.20.64/27
192.168.20.96/27
Сетевая часть
11000000.10101000.00010100
Сети
LAN
А, Б,
В, Г
248.
VLSM НА ПРАКТИКЕЗдание A
Здание Б
Здание В
Здание Г
192.168.20.0/27
192.168.20.32/27
192.168.20.64/27
192.168.20.96/27
R1
R2
R3
R4
192.168.20.224/30
192.168.20.228/30
192.168.20.232/30
249.
ПЛАНИРОВАНИЕ АДРЕСАЦИИ СЕТИ?
Локальная сеть
студентов
Локальная сеть
преподавателей
Локальная сеть
администраторов
250.
ПЛАНИРОВАНИЕ ВЫДЕЛЕНИЯ АДРЕСОВ В СЕТИПредотвращение
дублирования
адресов
Планирование
выделения
адресов
Мониторинг
безопасности
и производительности
Обеспечение
и контроль
доступа
251.
ПРИСВОЕНИЕ АДРЕСОВ УСТРОЙСТВАМСеть: 192.168.1.0/24
Использование
Узловые
устройства
Серверы
Принтеры
Промежуточные
устройства
Шлюз (LANинтерфейс
маршрутизатора)
Первый
.1
Последний
.229
.230
.240
.250
.239
.249
.253
.254
252.
ГЛОБАЛЬНЫЙ ИНДИВИДУАЛЬНЫЙ АДРЕС IPV648 бит
16 бит
64 бита
Префикс глобальной
маршрутизации
Идентификатор
подсети
Идентификатор
интерфейса
Префикс маршрутизации A /48 +
идентификатор подсети 16 бит = префикс /64
Интернет
Программное обеспечение