티스토리 뷰

기타 Storage

네트워크 프로그래밍: 소켓을 전화기에 비유하면?

rhyshan
네트워크 프로그래밍이란?
소켓(Socket)을 기반으로 프로그래밍 하기 때문에 소켓 프로그래밍(Socket Programming)이라고도 함.
네트워크로 연결된 둘 이상의 컴퓨터 사이의 데이터 송수신 프로그램 작성을 의미.

소켓에 대한 간단한 이해
네트워크의 연결도구: 사용자가 네트워크에 접근할 수 있는 인터페이스, 전화기의 역할
네트워크에 연결하기 위해 운영체제에 의해 제공되는 소프트웨어적 장치
프로그래머에게 데이터 송수신에 대한 물리적, 소프트웨어적 세세한 내용을 신경쓰지 않게 한다.
통신을 파일 I/O로 추상화, 통신용 File Descriptor.

IP주소란?
네트워크 상에서의 주소, 전화번호의 역할

Port란?
컴퓨터 내부로 전송된 데이터를 운영체제가 적절한 소켓에 분배하기 위한 식별자
운영체제 위에 실행중인 프로그램들이 각각 소켓을 생성했을 때, 자신의 IP로 메세지가 온 경우 어떤 소켓에 메세지를 전달해야 하는지?

소켓의 비유와 분류
TCP 소켓은 전화기에 비유될 수 있다.
단, 전화를 거는 용도의 소켓과 전화를 받는 용도의 소켓 생성방법에는 차이가 있다.
소켓의 생성은 전화기의 장만에 비유할 수 있다.

소켓과 전화기 비유
소켓 생성, socket() - (받는 용도의) 전화기 설치/장만
소켓에 주소와 포트 할당, bind() - 전화기에 전화번호를 할당
소켓 연결 대기, listen() - 전화기를 케이블에 연결(전화대기상태로의 진입)
소켓 연결 요청, connect() - 전화를 거는 동작
소켓 연결 수락, accept() - 전화기의 수화기를 드는 동작
데이터가 오고감, read()&write() or recv()&send() - 통화
소켓 닫기, close() - 전화 끊기


발신자/수신자: 전화기 비유




발신자/수신자: Socket




발신자/수신자: 명령어




참고자료

http://faculty.bme.pnu.edu/~wjlee/np2013_01.ppt‎

http://wireless.yonsei.ac.kr/bbs/data/2013_1_cd_pds/Network_Section1.pdf



댓글
댓글쓰기 폼