인터넷 소켓이란 무엇입니까?
인터넷 소켓은 컴퓨터 소프트웨어 프로그램이 인터넷을 통해 데이터를 전송하는 데 사용할 수있는 연결 지점을 식별하는 데 사용되는 용어입니다. 그것들은 전기 콘센트와 같은 물리적 구조가 아니라 컴퓨터 소프트웨어 개념입니다. 이러한 소켓을 사용하면 필요한 데이터가 한 컴퓨터에서 실행중인 프로그램에서 다른 컴퓨터에서 실행중인 프로그램으로 앞뒤로 이동할 수 있습니다. 많은 경우에 이것은 클라이언트와 서버를 오가는 것입니다. 이 용어는 컴퓨터 프로그래머가 인터넷을 통해 데이터를 송수신 할 수있는 네트워크 인식 응용 프로그램을 만드는 데 사용할 수있는 응용 프로그래밍 인터페이스 (API)를 지칭하는 데에도 사용됩니다.
소켓은 전송 계층으로 알려진 인터넷 프로토콜 (IP) 스택의 상위 계층에서 작동하며, 여기서 데이터는 운영 체제를 통해 응용 프로그램에서 네트워크로 전달됩니다. 컴퓨터의 응용 프로그램이 네트워크 연결에서 데이터를주고 받으려면 운영 체제에 인터넷 소켓을 열도록 요청합니다. 소켓은 사용자 데이터 그램 프로토콜 (UDP) 또는 전송 제어 프로토콜 (TCP)과 같은 프로토콜 정보와 컴퓨터의 송수신 주소 및 연결을위한 IP 포트 번호로 구성됩니다. 운영 체제를 우회하고 먼저 컴퓨터 운영 체제가 추가 소켓 정보를 처리하게하지 않고 원시 패킷을 전송하는 인터넷 소켓을 작성할 수도 있습니다.
인터넷 서버에서 일반적으로 사용되는 것처럼 서버 소프트웨어가 시작되고 청취 소켓이 열립니다. 서버는 데이터에 대한 요청을 받으면 요청하는 클라이언트에 대한 고유 한 소켓을 생성 한 다음 요청 된 데이터를 전송하는 데 사용합니다. 클라이언트가 완료되면 소켓이 서버에 의해 닫히므로 이러한 유형의 연결을 세션이라고도합니다. 이러한 방식으로 서버는 다른 고유 한 식별자를 가진 다른 클라이언트와 동시에 여러 개의 소켓을 만들고 각 클라이언트에 고유 한 데이터를 전달할 수 있습니다.
따라서 세 가지 일반적인 유형의 인터넷 소켓이 있습니다. 이러한 유형 중 하나는 데이터 그램 소켓입니다. 이는 데이터 패킷을 보내기 전에 전용 연결을 설정하기 위해 추가 통신이 필요없는 빠른 소켓 연결입니다. 이러한 이유로 종종 비 연결 소켓이라고하며 UDP를 전송 프로토콜로 사용합니다. 패킷 순서 확인이나 오류 수정이 없다는 점에서 불을 잊어 버리는 방법 중 하나입니다.
그러나 스트림 소켓이라고하는 연결 지향 소켓은 클라이언트와 서버 간의 통신 링크를 설정하기 위해 몇 가지 추가 단계를 거칩니다. 이들은 전송을 위해 TCP 또는 스트림 제어 전송 프로토콜 (SCTP)로 알려진 다른 프로토콜을 사용합니다. 이 유형의 인터넷 소켓은보다 안정적이며 누락 된 패킷과 같은 오류를 처리 할 수있는 수단이 있습니다.
다른 고유 한 유형의 인터넷 소켓은 주로 컴퓨터 네트워크 라우팅에 사용됩니다. 이 유형의 소켓은 IP 스택의 전송 계층을 건너 뛰고 대신 소켓 정보는 그대로 유지하면서 네트워크에서 애플리케이션으로 패킷을 바로 전달합니다. 컴퓨터의 운영 체제가 먼저 패킷을 처리 할 수 없기 때문에 이러한 원시 소켓을 사용하면 애플리케이션에 패킷을 훨씬 빠르게 전달할 수 있습니다. ICMP (Internet Control Message Protocol)는 한 컴퓨터가 단순히 다른 컴퓨터를 "핑 (ping)"하려고 할 때 이러한 원시 소켓을 사용합니다.