
2025.05.03
오늘한 내용 : CS - 네트워크 프로그래밍 - 소켓 프로그래밍
WEEK08: BSD소켓, IP, TCP, HTTP, file descriptor, DNS
네트워크로 연결된 둘 이상의 컴퓨터 사이에서의 데이터를 송수신하는 프로그램 작성을 의미
socket(), bind(), listen()/connect(), send()/recv() 등을 통해 데이터 송수신socket(AF_INET, SOCK_STREAM, IPPROTO_TCP) → TCP 스트림 소켓socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP) → UDP 데이터그램 소켓bind()→listen()→accept()),connect()),send()/recv()로 서로 통신connect() 호출 → SYN 전송read()/write()와 동일 방식)| 소켓 타입 | 프로토콜 | 특징 |
|---|---|---|
| SOCK_STREAM | TCP | 연결형, 순서·신뢰성 보장, 스트림 지향 |
| SOCK_DGRAM | UDP | 비연결형, 메시지 경계 유지, 헤더 오버헤드 작음, 순서·재전송 없음 |
| SOCK_RAW | IP (원시) | IP 헤더 직접 제어, ICMP 등 커스텀 프로토콜 구현용 |
| 역할 | 설명 |
|---|---|
| 클라이언트(Client) | • 서비스를 “요청(request)” 하는 주체• 사용자 인터페이스(UI)를 통해 입력을 받고, 그에 따라 네트워크 요청을 생성• 요청을 보낸 뒤 서버의 응답을 받아 화면에 표시하거나 후속 처리를 수행 |
| 서버(Server) | • 클라이언트로부터 들어온 요청을 “처리(process)” 하는 주체• 요청에 맞는 데이터 조회·계산·저장 등을 수행하고, 결과를 “응답(response)” 형태로 반환• 다수의 클라이언트 요청을 동시에 처리하도록 설계 |
