Понятие сокета и порта!

Тема в разделе "WASM.NETWORKS", создана пользователем EvilsInterrupt, 11 май 2005.

  1. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    Здравствуйте.



    Для курсовой мне надо знать эти два понятия из сабжа, да не просто знать но и суметь технически грамотно объяснить и написать в пояснилке!



    Среди информации, которой я обладаю благодаря дядя Янду, я понял, что:

    сетевой порт - это программно реализованная ячейка служащая для ввода\вывода данных.

    Мыслями я склоняюсь к тому, что порт это номер буфера.

    т.е. надо отправить то функция по отправке закидывает данные в этот буфер и говорит драйверу номер буфера и че делать(отправить).



    Понятие же сокета, вобще мудрено - большниство понимают, что это файл, хотя некоторые полагают что это поток, в книгах написано что это интерфейс. Что же это на самом деле такое?
     
  2. slow

    slow New Member

    Публикаций:
    0
    Регистрация:
    27 дек 2004
    Сообщения:
    615
    с моей точки зрения, сокет - это пара ИП_адрес+Порт, по которой однозначно можно идентифицировать соединение
     
  3. _BC_

    _BC_ БЦ

    Публикаций:
    0
    Регистрация:
    20 янв 2005
    Сообщения:
    759
    EvilsInterrupt



    Тебе ещё повезло, что ты IPX/SPX не изучал в своем вузе. ;) Был бы ещё один повод для смущения.

    Там понятие сокета имеет значение, отличное от wsock'а. ;)
     
  4. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    slow



    Ты хочешь сказать идентификатор структуры в которой содержится IP,Port?



    А порт я правильно определил?
     
  5. slow

    slow New Member

    Публикаций:
    0
    Регистрация:
    27 дек 2004
    Сообщения:
    615
    Существует мировой стандарт структуры протоколов связи - семиуровневая OSI (Open Systems Interface - интерфейс открытых систем). Hа каждом из уровней этой структуры решается свой объем задач своими методами. Сокеты находятся на так назывемом транспортном уровне - ниже находится сетевой протокол IP, выше - специализированные протоколы сеансового уровня, ориентированные на решение конкретных задач - это всем известные FTP, SMTP, etc.



    Если смотреть по сути, сокет - это модель одного конца сетевого соединения, со всеми присущими ему свойствами, и, естественно - возможностью получать и передавать данные. По содержанию - это прикладной программный интерфейс, входящий в состав многих ОС. В семействе Windows - начиная с версии 3.11, и носит название WinSock.



    Сокеты не обязательно базируются на протоколе TCP/IP, они могут также базироваться на IPX/SPX, etc.



    Механизм взаимодействия сокетов таков. С одной из двух сторон запускается серверный сокет, который сразу после запуска находится в режиме прослушивания (listening), точнее - ожидания запросов от клиентов. После получения запроса от клиента устанавливается связь, и создается новый экземпляр серверного сокета.



    Так как работа с сокетами, это, по сути - операции ввода/вывода, которые бывают синхронными или асинхронными, то и тип работы сокета обладает бывает синхронным или асинхронным.



    Когда говорят СОКЕТ то часто не представляют, что это такое. Можно говорить об моделях, об реализациях и так далее. о есть одно простое толкование, применимое для протокола IP. Как известно для взаимодействия между машинами по протоколу IP используются адреса и порты.



    Первое на текущий момент представляют из себя 32-x битный адрес, наиболее часто его представляют в символьной форме mmm.nnn.ppp.qqq (адрес разбитый на четыре октета по одному байту в октете и разделеный точками) .



    Второе - это номер порта в диапазоне от нуля до 65535



    Так вот эта пара и есть сокет (гнездо в в котором расположены адрес и порт).



    В процессе обмена как правило используются два сокета - сокет отправителя и сокет получателя.



    апример при обращении к моему серверу на HTTP порт сокет будет выглядеть так: 194.106.118.30:80, а ответ будет поступать на mmm.nnn.ppp.qqq:xxx



    порт, - это «дверь» через которую программа (операционная система) может управлять данным устройством (считывать данные, заносить их).Причем я разделяю порты на две категории (это чисто мое разделение) - порты общеизвестные (COM LPT) и порты внутренние, служащие для связи с внутренними устройствами ЭВМ.



    извини, но более грамотно ответить не смогу - особо не интересовался
     
  6. OLS

    OLS New Member

    Публикаций:
    0
    Регистрация:
    8 янв 2005
    Сообщения:
    322
    Адрес:
    Russia
    Ну если говорить абстракциями, то с тем, что пара "адрес:порт" - это "дверь, через которую входит и выходит трафик" - я полностью согласен.



    А вот "сокет" для себя я всегда представляю, как системную запись в операционной системе (или чем-то ином реализующем стек), с выделенныими буферами, хендлами, номерами портов, записями об адресе удаленной стороны.



    То есть, порт - это просто число, а сокет - это служебная переменная опер.системы структурного типа (достаточно большого объема).
     
  7. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    >То есть, порт - это просто число



    Но ведь ключ шифрования тоже число!!! чем он от порта отличается? :))))
     
  8. Bert

    Bert New Member

    Публикаций:
    0
    Регистрация:
    11 май 2005
    Сообщения:
    20
    Адрес:
    Russia
    Согласно Р.Стивенису:

    "At any given time, multiple processes can use either UDP or TCP. Both TCP and UDP use 16-bit integer port numbers to diffirentiate between these processes."

    И ещё:

    "The two values that identify each endpoint, an IP address and a port number, are often called a socket."
     
  9. iron_nomad

    iron_nomad New Member

    Публикаций:
    0
    Регистрация:
    27 апр 2005
    Сообщения:
    30
    slow

    Глянул я на функцию socket так вот там нету ни какого ip адреса, а ф-ция сокет создает, следоватьельно сокет это не совокупность ip,port!

    Я так полагаю?!
     
  10. slow

    slow New Member

    Публикаций:
    0
    Регистрация:
    27 дек 2004
    Сообщения:
    615
    iron_nomad

    есть принципиальное различие. между абстрактным понятием

    и его конкретной реализацией.

    сокет - как пара ИП,порт - это абстрактное понятие

    сокет, создаваемый функцией из библиотеки winsock - это объект некой реализации понятия "сокет" мелкомягкими

    Напомню, что сокеты есть и в *nix, но там они реализуются

    чуть-чуть иначе.
     
  11. Red Alert

    Red Alert New Member

    Публикаций:
    0
    Регистрация:
    8 июн 2005
    Сообщения:
    20
    Вопрос не звучал про сокеты win/nix, поэтому

    разрешите вмешаться...

    Пример для микроконтроллера.

    Все просто, может так понятнее. Хотя тут и отсутствуют функции запросов на выделение памяти итд.



    main:

    ;тут проверка запроса на работу с одним из сокетов

    ;выудили из некоего буфера номер сокета



    mov a,socket

    add pc,a

    jmp socket_0

    ;...

    jmp socket_n



    socket_0:;это один из сокетов

    ;----

    mov a,port;тут номер порта 0...n

    add pc,a

    jmp _a0

    jmp _a1

    jmp _a2

    ...

    jmp _an

    ;------

    _a0:

    ;процедурка выполняющаяся на "порту" а0

    jmp main

    _a1:

    ;-//- для порта а1

    jmp main

    _аn:

    ;-//- an

    jmp main

    ;---далее другой сокет, пятый, десятый....



    Конкретная реализация - на вкус разработчика.

    P.S. А может все и не так ;)))))))