TCP/IP 소켓
TCP/IP 소켓
- TCP/IP 모델을 이용하며, 데이터 송수신 시 소켓을 사용한다.
- 운영체제별로 다루는 방식이 다르다. (리눅스의 경우 소켓도 파일로 취급, 윈도우에서 별개로 취급 등)
- 네트워크 데이터 전송은 빅 엔디안 방식 으로 통일
서버 소켓
- 소켓 생성
- 해당 소켓에 IP, PORT 바인딩 (BIND)
- 연결 가능한 상태로 변경 (LISTEN)
- 연결 요청에 대한 수락 (ACCEPT)
클라이언트 소켓
- 소켓 생성
- 해당 소켓에 서버 연결 (CONNECT)
소켓의 종류
- TCP, UDP 소켓은 포트 번호를 공유하지 않으므로 중복사용이 가능
연결지향형 소켓 (TCP) (1 : 1)
- 독립된 전송라인을 이용해 전송
- 데이터의 순서가 보장되며, 상대 소켓의 상태를 확인하며 전송하기 때문에 특별한 경우가 아니면 데이터 손실이 발생하지 않는다
비연결지향형 소켓 (UDP)
- 신뢰성과 순차적 데이터 전송을 보장하지 않는 고속의 데이터 전송을 목적으로 하는 소켓
- 한번에 전송할 수 있는 데이터의 크기가 제한된다.
TCP/IP 프로토콜 스택
- 4개의 계층으로 존재
APPLICATION 계층
- 클라이언트와 서버간의 테이터 송수신에 대한 규칙들이 정해진다.
- 아래 3 계층을 추상화시켜 사용하는 계층이라고 생각하면 될듯
TCP/UDP 계층 (Transport 계층)
- IP 계층에서 신뢰성을 보장해주지 못하기 때문에, TCP 계층을 이용해 재전송 등을 해주며 신뢰성을 유지시켜준다.
IP 계층
- 목적지까지의 경로 선택
- 오류 발생에 대한 대비가 되어 있지 않은 계층
LINK 계층
- 물리적인 영역에 대한 표준화
- 네트워크 표준과 관련된 프로토콜 정의