해결된 질문
작성
·
848
0
안녕하세요 선생님! 질문 있어 글을 남깁니다.
프로세스가 data를 전송하기 위해 Socket을 통해 데이터를 전송한다고 이해했습니다.
Socket은 커널 기능을 이용하기 위해, 더 자세하게는 TCP/IP 프로토콜을 이용할 수 있도록 해주는 인터페이스라고 이해했습니다.
지금까지 제가 이해한 부분은 맞는지 궁금합니다.
또 File은 mp3 파일, 문서 파일 등 우리가 생각하는 파일이고, Socket이 File의 일종이라고 설명해주셨는데 이 부분이 잘 와닿지 않습니다.
다른 질문글에서도 프로세스가 Socket을 open하고 각 Socket이 포트 번호를 부여받는다고 답변을 달아주신 것도 보았습니다.
이 설명을 보고나니까 File과 Socket이 무슨 연관성이 있길래 File의 일종이라고 설명해주시는지 더 와닿지 않는 것 같습니다... 정확히 잘 이해가 안됩니다. 좀 더 설명해주실 수 있을까요?
답변 1
4
네, 맞습니다. 한 가지 중요한 사실은 Kernel 요소에 대한 User mode 접근은 모두 장치 '파일'로 이루어진다는 점 입니다. 파일은 관리(생성, 복사, 삭제) 데이터 덩어리로 이해 할 수도 있지만 미디어 장치 및 관리체계(파일 시스템)에 대한 사용성을 제공하는 추상화된 인터페이스로 이해 할 수도 있습니다.
소켓도 마찬가지 입니다. 우리가 파일을 통해 HDD 제품 특성과 H/W구조를 몰라도 Disk 장치를 사용 할 수 있는 것처럼 NIC H/W 특성을 몰라도 Socket이라는 파일을 통해 사용할 수 있는 것입니다.
결과적으로 보면 연관성을 가지고 이해 할 문제가 아닐 수 있습니다. 그렇게 만들어진 것을 있는 그대로 받아 들이는 것이어야 할 수 있습니다. 시스템 프로그래밍을 꼭 공부해보시기 바랍니다. 그러면 제가 왜 소켓을 파일의 일종으로 설명했는지 제대로 이해 할 수 있을 것입니다. 감사합니다.
답변 감사드립니다!
정확히 이해는 안 되지만 어렴풋이 알 것 같습니다.
시스템 프로그래밍을 나중에 공부한다면 더 명확히 이해할 수 있겠죠?
조언대로 나중에 꼭 공부해보겠습니다.