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

동혁님의 프로필 이미지
동혁

작성한 질문수

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

패킷의 생성과 전달

socket에 대한 정확한 정의가 무엇인가요?

해결된 질문

작성

·

516

0

강의를 봐오면 socket에 대한 표현이 비슷하지만 약간 씩 다른것 같아서 제가 딱 한 문장으로 정의하기 어려움을 느끼고 있습니다 ㅠㅠ..

물론 설명해주신 내용이 다 맞고 같은 내용을 표현한 것이란 걸 알지만 딱 한 문장으로 정의한 socket에 대한 정의를 알고 싶습니다.

유저 모드 어플리케이션 프로세스가 접근할 수 있도록 커널 모드 프로토콜을 추상화한 인터페이스라고 알고 있으면 될까요?

답변 1

3

널널한 개발자님의 프로필 이미지
널널한 개발자
지식공유자

비슷한 질문을 다른 분이 하셔서...
우선 물음에 대한 답은 Yes이며 구체적인 내용을 쓰면 아래와 같습니다.

 

OS 수준에서 파일은 크게 보면 두 종류입니다. 2차 메모리에 저장된 단위 데이터 덩어리를 의미하는 파일과 장치에 대한 추상화된 인터페이스를 제공하는 장치파일 입니다. 내부는 전혀 다른 이 두 파일은 어쨌든 파일 입니다. C언어에서 파일을 개방하는 함수로 fopen() 함수가 있습니다. 재밌는 것은 이 함수로 데이터 파일이든 장치파일이든 개방이 가능하다는 것입니다.

소켓은 TCP에 대한 추상화된 인터페이스이며 TCP는 결국 NIC을 이용합니다. 결과적으로 소켓은 네트워크 통신 체계 및 장치에 대한 추상화 된 인터페이스이며 파일형식을 갖고 있습니다. 이 파일에 쓰면 2차 메모리에 데이터를 저장하는 일이 일어나는 것이 아니라 NIC을 움직여 정보를 송신합니다. 두 경우 모두 '쓰기' 입니다. 다만 소켓에서는 쓰기 대신 '송신'이라는 표현으로 바꾼 것입니다.

참고하시기 바랍니다.

동혁님의 프로필 이미지
동혁

작성한 질문수

질문하기