인프런 커뮤니티 질문&답변

정민교님의 프로필 이미지
정민교

작성한 질문수

외워서 끝내는 네트워크 핵심이론 - 기초

패킷의 생성과 전달

File과 Socket에 대해서

해결된 질문

작성

·

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이라는 파일을 통해 사용할 수 있는 것입니다.

결과적으로 보면 연관성을 가지고 이해 할 문제가 아닐 수 있습니다. 그렇게 만들어진 것을 있는 그대로 받아 들이는 것이어야 할 수 있습니다. 시스템 프로그래밍을 꼭 공부해보시기 바랍니다. 그러면 제가 왜 소켓을 파일의 일종으로 설명했는지 제대로 이해 할 수 있을 것입니다. 감사합니다.

정민교님의 프로필 이미지
정민교
질문자

답변 감사드립니다!

정확히 이해는 안 되지만 어렴풋이 알 것 같습니다.

시스템 프로그래밍을 나중에 공부한다면 더 명확히 이해할 수 있겠죠?

조언대로 나중에 꼭 공부해보겠습니다.

정민교님의 프로필 이미지
정민교

작성한 질문수

질문하기