본문으로 바로가기

[K.Knock]소켓이란?

category Study/network 2017. 6. 2. 05:16

소켓이란 네트워크 상에서 서버와 클라이언트 두개의 프로그램이 특정 포트를 통해 양방향 통신이 가능하도록 만들어주는 소프트웨어 장치라 말할 수 있다.



종류

- 스트림(TCP)

- 양방향 바이트스트림 전송 연결지향형 어플리케이션

- 오류수정, 전송처리, 흐름제어 등을 보장

- 약간의 오버헤드(신뢰성위한 번호)가 존재함으로 대량의 데이터를 보낼때가 적당하다.

- 데이터그램(UDP)

- 비 연결형 소켓.

- 오류검출X, 신뢰X, 메세지 크기제한

- RAW

- TCP,UDP 계층을 우회하여 바로 어플리케이션으로 송신하는 소켓이다.

- TCP/IP필터를 통하지 않으므로 원형패킷을 볼 수 있다.

- 실제로 RAW패킷사용은 드물며 패킷분석 프로그램 제작이나 시스템 소프트웨어를 개발시 필요할 수도 있다.



절차

- Client(TCP)

- 소켓 생성

- 서버 connect

- 성공시 read및 write함수를 통해 패킷 송수신

- 사용이 끝나면 close로 소켓닫기


- Server(TCP)

- 듣기 소켓 생성

- bind(내선 부여)

- listen(내선 연결)

- accept() 클라이언트가 connect할 경우 소켓 생성 및 연결

- read와 wirte함수를 통해 패킷 송수신

- 사용된 연결 소켓 닫기

- 사용 마쳤을 경우 듣기소켓 닫기

'Study > network' 카테고리의 다른 글

[K.Knock]TCP와 UDP 소켓 통신 과정  (0) 2017.06.07
[K.Knock]소켓 관련 함수  (0) 2017.06.06
[K.Knock]OSI 7 Layer vs TCP/IP  (0) 2017.06.02
[K.Knock]프로토콜 조사하기  (0) 2017.05.30
[K.Knock]telnet과 ssh비교하기  (0) 2017.05.30