Здравствуйте. Для курсовой мне надо знать эти два понятия из сабжа, да не просто знать но и суметь технически грамотно объяснить и написать в пояснилке! Среди информации, которой я обладаю благодаря дядя Янду, я понял, что: сетевой порт - это программно реализованная ячейка служащая для ввода\вывода данных. Мыслями я склоняюсь к тому, что порт это номер буфера. т.е. надо отправить то функция по отправке закидывает данные в этот буфер и говорит драйверу номер буфера и че делать(отправить). Понятие же сокета, вобще мудрено - большниство понимают, что это файл, хотя некоторые полагают что это поток, в книгах написано что это интерфейс. Что же это на самом деле такое?
с моей точки зрения, сокет - это пара ИП_адрес+Порт, по которой однозначно можно идентифицировать соединение
EvilsInterrupt Тебе ещё повезло, что ты IPX/SPX не изучал в своем вузе. Был бы ещё один повод для смущения. Там понятие сокета имеет значение, отличное от wsock'а.
slow Ты хочешь сказать идентификатор структуры в которой содержится IP,Port? А порт я правильно определил?
Существует мировой стандарт структуры протоколов связи - семиуровневая 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) и порты внутренние, служащие для связи с внутренними устройствами ЭВМ. извини, но более грамотно ответить не смогу - особо не интересовался
Ну если говорить абстракциями, то с тем, что пара "адрес:порт" - это "дверь, через которую входит и выходит трафик" - я полностью согласен. А вот "сокет" для себя я всегда представляю, как системную запись в операционной системе (или чем-то ином реализующем стек), с выделенныими буферами, хендлами, номерами портов, записями об адресе удаленной стороны. То есть, порт - это просто число, а сокет - это служебная переменная опер.системы структурного типа (достаточно большого объема).
>То есть, порт - это просто число Но ведь ключ шифрования тоже число!!! чем он от порта отличается? )))
Согласно Р.Стивенису: "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."
slow Глянул я на функцию socket так вот там нету ни какого ip адреса, а ф-ция сокет создает, следоватьельно сокет это не совокупность ip,port! Я так полагаю?!
iron_nomad есть принципиальное различие. между абстрактным понятием и его конкретной реализацией. сокет - как пара ИП,порт - это абстрактное понятие сокет, создаваемый функцией из библиотеки winsock - это объект некой реализации понятия "сокет" мелкомягкими Напомню, что сокеты есть и в *nix, но там они реализуются чуть-чуть иначе.
Вопрос не звучал про сокеты 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. А может все и не так ))))))