네트워크 드라이브(NAS, SMB 공유폴더) 접근도 결국 내부적으로는 소켓(Socket) 통신 사용
포트를 통해서 통신하고 해당 포트가 열려 있어야 함.
프로그램끼리 네트워크로 데이터를 주고받는 통신 창구
컴퓨터를 아파트라고 생각하면
과 비슷함
예를 들어
192.168.0.10:445
의미
소켓 통신
예를 들어 프로그램이 SMB 공유 폴더에 파일 요청
내부적으로는 이 파일 열어줘, 이 데이터 보내줘 같은 데이터를 네트워크로 주고받음
이 연결 자체가 소켓 통신
정확히는 운영체제가 제공하는 Socket API를 사용해서 통신함
Java에서도 있음
Socket socket =
new Socket("192.168.0.10", 445);
한 컴퓨터에서 여러 프로그램이 네트워크 사용
운영 체제가 어느 프로그램에게 전달할지 구분해야 함. 그래서 포트 사용
웹 서버 : 80, 443
SSH : 22
SMB 공유폴더 : 445
네트워크 드라이브도 소켓 통신함.
접속 시 내부적으로 SMB 프로토콜 + TCP 소켓 통신 사용
그래서 포트 열려있어야함 (TCP 445 포트 사용)
방화벽에서 막혀 있으면 네트워크 드라이브 연결 실패 가능
파일 복사 시 실제 내부
내 PC -> NAS 파일 복사
내부적으로
1. TCP 연결 생성
2. 인증
3. 파일 열기 요청
4. 데이터 packet 전송
5. ACK 응답
6. 완료 응답
등 수행
전부 소켓 기반.
소켓 통신은 보통 TCP, UDP 기반
대표적 파일 전송 방식
특징
특징
소켓 자체는 프로토콜이 아님
많이 헷갈리는 부분
Java 에서 보면 서버
ServerSocket server =
new ServerSocket(8080);
포트 열고 대기
클라이언트
Socket socket =
new Socket("IP", 8080);
접속
Spring 서버도 결국 소켓 서버
Tomcat 실행하면 내부적으로 8080 포트 listen
브라우저가 http://localhost:8080 접속하면 TCP 소켓 연결 발생