-
카테고리
-
세부 분야
네트워크
-
해결 여부
해결됨
socket에 대한 정확한 정의가 무엇인가요?
23.08.10 18:50 작성 조회수 394
0
강의를 봐오면 socket에 대한 표현이 비슷하지만 약간 씩 다른것 같아서 제가 딱 한 문장으로 정의하기 어려움을 느끼고 있습니다 ㅠㅠ..
물론 설명해주신 내용이 다 맞고 같은 내용을 표현한 것이란 걸 알지만 딱 한 문장으로 정의한 socket에 대한 정의를 알고 싶습니다.
유저 모드 어플리케이션 프로세스가 접근할 수 있도록 커널 모드 프로토콜을 추상화한 인터페이스라고 알고 있으면 될까요?
답변을 작성해보세요.
3
널널한 개발자
지식공유자2023.08.12
비슷한 질문을 다른 분이 하셔서...
우선 물음에 대한 답은 Yes이며 구체적인 내용을 쓰면 아래와 같습니다.
OS 수준에서 파일은 크게 보면 두 종류입니다. 2차 메모리에 저장된 단위 데이터 덩어리를 의미하는 파일과 장치에 대한 추상화된 인터페이스를 제공하는 장치파일 입니다. 내부는 전혀 다른 이 두 파일은 어쨌든 파일 입니다. C언어에서 파일을 개방하는 함수로 fopen() 함수가 있습니다. 재밌는 것은 이 함수로 데이터 파일이든 장치파일이든 개방이 가능하다는 것입니다.
소켓은 TCP에 대한 추상화된 인터페이스이며 TCP는 결국 NIC을 이용합니다. 결과적으로 소켓은 네트워크 통신 체계 및 장치에 대한 추상화 된 인터페이스이며 파일형식을 갖고 있습니다. 이 파일에 쓰면 2차 메모리에 데이터를 저장하는 일이 일어나는 것이 아니라 NIC을 움직여 정보를 송신합니다. 두 경우 모두 '쓰기' 입니다. 다만 소켓에서는 쓰기 대신 '송신'이라는 표현으로 바꾼 것입니다.
참고하시기 바랍니다.
답변 1