1.소켓(Socket)
애플리케이션이 네트워크를 통해 다른 애플리케이션과 통신할 수 있도록 하는 인터페이스
네트워크를 통해 데이터를 주고받을 수 있는 양방향 통신 지점이다.
네트워크 상의 클라이언트와 서버 간에 데이터를 전송하기 위해 IP 주소와 포트 번호를 이용해 연결을 설정하고, 그 연결을 통해 데이터를 송수신한다.
1-1.소켓 주소
소켓은 IP 주소와 포트 번호의 조합으로 고유한 주소를 형성한다.
IP주소:포트번호
1-2.소켓 주소 구조체
소켓 주소를 표현하기 위한 데이터 구조
소켓을 생성하고 연결하거나 바인딩할 때 사용된다.
struct sockaddr_in {
sa_family_t sin_family; // 주소 패밀리 (AF_INET)
in_port_t sin_port; // 포트 번호
struct in_addr sin_addr; // IP 주소
char sin_zero[8]; // 패딩 (0으로 채움)
};
2.소켓 유형
2-1. TCP 소켓 (Stream Sockets)
서버 간에 연결을 설정한 후 데이터를 주고받는다.
패킷이 손실되거나 순서가 바뀌면 이를 재전송하거나 순서를 맞추는 방식으로 안정적인 통신을 보장한다.
상대적으로 느리기 때문에 웹 서버, 이메일, 파일 전송 등에 사용된다.
2-2.UDP 소켓 (Datagram Sockets)
UDP는 연결을 설정하지 않고 데이터를 전송한다.
데이터는 각기 독립적인 패킷(데이터그램)으로 전송된다.
빠르게 전송이 가능하기때문에 실시간 스트리밍, 게임, DNS, VoIP 등에 사용된다.
'Computer Science > Server&Network' 카테고리의 다른 글
[Server] P2P(Peer-to-Peer) (0) | 2025.01.16 |
---|---|
[API] OpenAPI (0) | 2025.01.02 |
[API] SOAP(Simple Object Access Protocol) 란? (0) | 2024.11.08 |