반응형
[네트워크] 클라이언트-서버, 프로세스, 소켓, 전송계층, HTTP
Client-Server Architecture
- 서버(Server)
- 항상 on 상태이다.
- 고정 IP를 가진다.
- ex) 데이터센터
- 클라이언트(Client)
- 서버와 통신한다.
- 동적 IP를 가질 수 있다.
- 클라이언트끼리는 직접 통신할 수 없다.
Processes communicating
- 프로세스(Process) : 호스트 내에서 실행되고 있는 프로그램
- 같은 호스트라면 OS를 통해 inter-process communication으로 통신한다.
- 다른 호스트라면 메시지를 교환함으로써 통신한다.
- Client process : 커뮤니케이션을 시작하는 프로세스
- Server process : 연결되기를 기다리는 프로세스
Socket
- 프로세스는 소켓을 통해 서로 메시지를 주고 받는다.
- 소켓을 인덱싱 하는 것 = IP 주소 + 포트 번호
Transport layer가 제공해야 하는 것
- data integrity :
- 몇몇 앱은 100%의 reliability 필요 (ex. 파일 전송)
- 몇몇 앱은 조금 loss가 생겨도 괜찮음 (ex. 오디오)
- timing : delay가 너무 심하면 안됨 (ex. 음성 전화)
- throughput
- security
하지만 현재 transport layer 기술로는 data integrity만 제공한다. (TCP)
따라서 보안 등은 응용 계층에서 처리해줘야 한다.
HTTP (Hypertext Transfer Protocol)
- 동작 종류 : request, response 2가지
- TCP를 사용한다. 즉, HTTP 메시지 교환 전 TCP connection이 필요하다.
- 특징
- stateless : 기억 안함. 요청 들어오면 응답 보내고, 상대방 상태를 기억하지 않는다.
- TCP connection에 따라 달라짐
- non-persistent HTTP : connection 끊음
- persistent HTTP : connection 유지 (현재 디폴트, keep-alive 헤더)
🌟 내용에 오류가 있다면 댓글 달아주시면 감사하겠습니다.
References
반응형
'프로그래밍 > CS' 카테고리의 다른 글
[프론트엔드] 브라우저 렌더링 과정 정리 | 렌더링 엔진, CRP (0) | 2022.09.20 |
---|---|
[네트워크] 2계층 | MAC 주소, Ethernet 프로토콜, Frame (0) | 2022.09.14 |
[디자인패턴] Template Method Pattern (템플릿 메소드 패턴) (0) | 2022.08.08 |
[디자인패턴] Observer Pattern (옵저버 패턴) (0) | 2022.08.05 |
[디자인패턴] Strategy Pattern (전략 패턴) (0) | 2022.07.29 |