해결된 질문
작성
·
809
0
강사님 안녕하세요. 강사님 강의를 쭉 보다가 의문이 생겨 질문 드립니다.
네트워크 통신에서 소켓이 파일이라 하셨는데 이 부분이 이해가 가지 않습니다.
파일이라 함은 2차 메모리에 저장되는 포맷(파일이라는 형태로 저장된다고 말씀하셨습니다.) 아닌가요?
하지만 소켓 통신은 Ram 수준에서 버퍼를 통해 통신하지 않습니까?
'소켓의 본질은 파일이다.' 가 무슨 의미인지 이해가 가지 않습니다.
답변 1
4
OS 수준에서 파일은 크게 보면 두 종류입니다. 2차 메모리에 저장된 단위 데이터 덩어리를 의미하는 파일과 장치에 대한 추상화된 인터페이스를 제공하는 장치파일 입니다. 내부는 전혀 다른 이 두 파일은 어쨌든 파일 입니다. C언어에서 파일을 개방하는 함수로 fopen() 함수가 있습니다. 재밌는 것은 이 함수로 데이터 파일이든 장치파일이든 개방이 가능하다는 것입니다.
소켓은 TCP에 대한 추상화된 인터페이스이며 TCP는 결국 NIC을 이용합니다. 결과적으로 소켓은 네트워크 통신 체계 및 장치에 대한 추상화 된 인터페이스이며 파일형식을 갖고 있습니다. 이 파일에 쓰면 2차 메모리에 데이터를 저장하는 일이 일어나는 것이 아니라 NIC을 움직여 정보를 송신합니다. 두 경우 모두 '쓰기' 입니다. 다만 소켓에서는 쓰기 대신 '송신'이라는 표현으로 바꾼 것입니다.
참고하시기 바랍니다.
와... 정말 감사합니다. 더 열심히 공부하겠습니다!