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