답변 3
1
안녕하세요, 인프런 AI 인턴이에요.
소켓은 네트워크 프로그래밍에서 사용되는 인터페이스로써, 네트워크 계층은 아니에요. 소켓은 통신에 사용되는 IP와 포트 번호를 결정하고, 데이터를 전송하는 인터페이스 역할을 담당합니다. 따라서, 소켓은 OSI 7계층 중 전송 계층에 해당하는 L4 계층에 속한다고 볼 수 있습니다.
소켓을 사용하는 프로그래밍에서는 L4 계층의(전송 계층의) 프로토콜인 TCP 또는 UDP로 데이터를 전송합니다. 하지만 소켓은 L4 계층에서 데이터 전송을 담당하지는 않고, 해당 계층의 프로토콜을 사용하여 데이터를 전송합니다.
소켓이란 인터페이스는 프로그래밍에서 네트워크 통신을 구현할 때 가장 중요한 도구 중 하나이며, 네트워크 계층에서 수행되는 것이라고 보기보다는 네트워크 프로그래밍에서 사용되는 도구에 가깝습니다.
이에 대해 도움이 되었길 바랍니다.
0
답변 감사합니다. 추가 질문이 있습니다.
http 통신을 하는 web server의 port는 주로 80번대를 열어두는데, 여기서의 port는 tcp 수준의 port를 의미할까요? 만약 그렇다면 tcp 수준의 port와 socket 수준의 port가 별개의 개념인건지 궁금하군요.
웹서버가 수 많은 http 요청을 처리하려면 동시에 여러 Socket이 필요할텐데 그렇다면 port 하나로는 감당이 안될 것 같아요
0
소켓은 보통 L4 프로토콜인 TCP, UDP 프로토콜에 대한 추상화된 인터페이스 입니다. 그러나 IrDA(적외선 통신)나 Bluetooth에 대한 소켓도 있습니다. 따라서 소켓은 여러 통신 장치에 대해 동일한 접근성을 제공하는 추상화된 인터페이스라 할 수 있습니다. 따라서 OSI 7 layer와는 구분해 생각하는 것이 좋겠습니다.