
Alexey
14.06.2017
14:28:07
Главное, чтобы вообще без предоплаты.

Ilgiz
14.06.2017
14:28:16
с какой книги?

Eugine
14.06.2017
14:29:32
"Идеализм в чистом виде" от какой-нибудь феминистки

Google

Igor
14.06.2017
14:29:56

dmks
14.06.2017
14:30:06
А в гугле забанили?

Ilgiz
14.06.2017
14:30:20
какое предложение ты гуглил?

dmks
14.06.2017
14:31:57
http://bfy.tw/CMgv

Alexey
15.06.2017
05:39:49
8)

Milton
15.06.2017
05:40:59

Alexey
15.06.2017
05:41:12
Trial version!

Eugine
15.06.2017
07:40:12

Каверин
15.06.2017
09:07:38
а почему на меня

Eugine
15.06.2017
09:08:35
шутка фейлд. всем спасибо, все свободны

Alexey
15.06.2017
09:10:18
Лево руля.

Google

Ilgiz
15.06.2017
15:02:08
Ребят у меня тут вопрос по поводу TCP, IP, HTTP можно задам? хотел спросить правильно ли я понял и взаимосвязи или нет

Alexey
15.06.2017
15:02:19
Это уже вопрос. :)

Milton
15.06.2017
15:02:24

Ilgiz
15.06.2017
15:10:17
Получается при запросе на url, запрос уходить в таком порядке, заполняем пакет данных для IP протокола и в этом пакете можем еще указать пакет данных другого протокола например TCP. Получается IP работает повверх TCP?

Zart
15.06.2017
15:10:30
щито
это ты ща телегу впереди лошади сунул? да еще и смешал в кучу урлы и л3 протокол

Ilgiz
15.06.2017
15:11:26
просто я не могу понят как IP и TCP вместе работают


Zart
15.06.2017
15:11:46
положим у тебя есть типичный код на питон с реквестс
data = requests.get(url).content
сперва урл разбирается на части, чтобы определить протокол, хост и прочая
положим у нас обычный http (7й уровень модели оси, приложения)
хост скажем localhost
нам надо подключиться к нему и сделать хттп запрос
сперва на адрес вызывается штатный системный ресолвер, для ответа на "какой адрес у "локалхост"?" вопрос
тот с помощью разных способов транслирует его в айпишник 127.0.0.1, например
далее создаем сокет, указываем TCP протокол (4й уровень, транспортный)
и делаем на нем коннект() к указанному адресу
здесь в дело вступает ОС. для TCP у нас выбирается рандомный незанятый сорцевый порт
и заполняется пакет данных - в первых полях заполняются данные IP-протокола (3й уровень, сетевой) - адрес куда (127.0.0.1), адрес откуда (свой айпишник, ос выбирает айпишник интерфейса через который пакет пойдет, консультируясь с локальными таблицами роутинга), номер протокола (тцп), размер пакета
плюс данные тцп протокола - порты куда и откуда
для тцп сперва происходит обмен туда-сюда в несколько пакетов (4-way handshake) чтобы начать сессию, после чего приложение может писать данные в сокет
на верхнем уровне создается посылка в виде хттп запроса
GET /path?query HTTP/1.1
Host: localhost
User-Agent: python...
...
который заполняется в пакеты аналогично процессу выше
после чего этот пакет улетает через езернет/вайфай/туннели/прочая (2й уровень оси, канальный, плюс 1й - физический)
IP-пакеты данных содержат адреса откуда и кому, плюс какой протокол вложен внутри
TCP-пакеты соответственно имеют уже айпишный заголок и добавляют инфу о портах + данные


Ilgiz
15.06.2017
15:24:56
какой протокол может быть вложен внтури пакета IP?

Zart
15.06.2017
15:25:09
TCP протокол может быть вложен как в IPv4, так и в IPv6 заголовки

Ilgiz
15.06.2017
15:44:45
получается TCP проверять сперва все ли нормально на хосте
locahost
(4-way handshake) потом только заполняются пакеты для IP внутри которого будет вложен пакет TCP, потом создается http запрос?

Google

Zart
15.06.2017
15:45:27
как вообще можно до такого вывода додуматься

Ilgiz
15.06.2017
15:46:29

Zart
15.06.2017
15:46:41
да

Ilgiz
15.06.2017
15:48:37

Zart
15.06.2017
15:49:33
это между обоими летается
твой хост отправляет пакеты, удаленный присылает тцп пакеты в ответ

Ilgiz
15.06.2017
15:55:14
ты говориш что присылает tcp пакеты, как тогда в ip пакете вложен TCP пакет, если приходит tcp пакеты
как я вижу сейчас запрос (1(2(?4(5(6(7))))))) номер это уровни OSI

Zart
15.06.2017
15:56:00
тцп пакета без айпи не существует

Ilgiz
15.06.2017
15:56:04
блин смайлик

Zart
15.06.2017
15:56:21
5 и 6 тут не участвует никак

Ilgiz
15.06.2017
15:56:55

Stanislav
15.06.2017
15:57:21

Zart
15.06.2017
15:57:22
наоборот
иди читай книжки по протоколам и сокетам
там картинки и таблички наглядные есть

Ilgiz
15.06.2017
15:59:27
окей, последний еще вопрос, данные http запроса внутри пакета TCP?
или http запрос уходит после того как успешно прошел tcp запрос

Zart
15.06.2017
16:02:15
внутри
причем вполне могут быть разбиты на пачку тцп пакетов

Google

Ilgiz
15.06.2017
16:03:05
то есть данные http запросе head и прочее внутри пакета tcp?

Zart
15.06.2017
16:03:35
да

Ilgiz
15.06.2017
16:04:15
в каком поле?

Zart
15.06.2017
16:05:04
хттп технически существует не только поверх тцп
в длна хттп запросы пакуются в удп пакеты
есть экспериментальные сборки апача и файрфокса с сцтп транспортом
в виндовом WS хттп запросы летают и через неймед пайпы с очередями

Ilgiz
15.06.2017
16:05:36
то есть вот тут (4-way handshake) происходит обмен данными внтури которого есть так же http данные?
нет
это просто соединение оказывается

Zart
15.06.2017
16:09:09
нет, это еще до обмена
там флаги используются

Anatoly
15.06.2017
16:19:07

dmks
15.06.2017
16:20:45
Лол
я открыл ишьюсы у репозитория

Zart
15.06.2017
22:01:36
чота я в этих сраных докерах совсем запутался
в чем разница между runc и oci рантаймами, почему это, блядь, нигде не документировано, и что из них дефолт?
что делает containerd...

Eugine
15.06.2017
22:02:59

Zart
15.06.2017
22:03:29
стандарты чего и как это отличается на практике?

Eugine
15.06.2017
22:04:39
почитал и пришел к выводу, что попутал, наверное
все крутится вокруг OCI

Google

Eugine
15.06.2017
22:05:07
https://github.com/opencontainers/image-spec/blob/master/spec.md
> This specification defines an OCI Image, consisting of a manifest, an image index (optional), a set of filesystem layers, and a configuration.
однозначное задание внутренностей контейнера
runC это реализация этого дерьма
как и containerd
обе хуйни умеют запускать/формировать и поддерживать это говно
собственно docker это обвязка над containerd, вроде

Zart
15.06.2017
22:07:53
[root@ene ~]# docker info
Containers: 0
Running: 0
...
Swarm: inactive
Runtimes: oci runc
Default Runtime: oci
Security Options: seccomp selinux
...

Eugine
15.06.2017
22:08:19
> containerd currently has two active branches. There is a v0.2.x branch for the current release of containerd that is being consumed by Docker and others
значит docker имеет под собой возможность использовать обе эти хуйни
> runC is built on libcontainer, the same container technology powering millions of Docker Engine installations.


Zart
15.06.2017
22:09:18
ExecStart=/usr/bin/dockerd-latest \
--add-runtime oci=/usr/libexec/docker/docker-runc-latest \
--default-runtime=oci \
--containerd /run/containerd.sock \
--exec-opt native.cgroupdriver=systemd \
--userland-proxy-path=/usr/libexec/docker/docker-proxy-latest \
-g /var/lib/docker-latest \
$OPTIONS \
$DOCKER_STORAGE_OPTIONS \
$DOCKER_NETWORK_OPTIONS \
$ADD_REGISTRY \
$BLOCK_REGISTRY \
$INSECURE_REGISTRY
т.е. я вижу что ключами добавлен оци рантайм и сделан дефолтом
при этом в документации на докер адд-рантайм ключ описан (куцо-куцо)
а дефолт-рантайм ключа нет
докер ран принимает —рантайм ключ, но это недокументировано, и попытки заюзать runc не пашут
да, у меня крутятся два демона - докерд и контейнерд

Eugine
15.06.2017
22:10:25

Zart
15.06.2017
22:10:31
нихуя неясно как они между собой работу делят