webproxy 7

[WEEK08] TCP와 UDP

TCP 3/4-way Handshake3-way handshake: 연결 성립TCP는 정확한 전송을 보장하기 위해 3-way handshake 과정을 거쳐 연결을 성립한다.클라이언트가 서버에 SYN(x) 패킷을 보냄서버가 SYN(x)를 받고, 클라이언트로 받았다는 신호 ACK(x+1)와 SYN(y) 패킷을 보냄클라이언트는 서버의 응답 ACK(x+1)과 SYN(y) 패킷을 받고 서버로 ACK(y+1)을 보냄4-way handshake: 연결 해제클라이언트는 서버에게 연결을 종료한다는 FIN 플래그를 전송한다.서버는 FIN을 받고 확인했다는 ACK를 클라이언트에 전송한다. 이 때 모든 데이터를 보내기 위해 CLOSE_WAIT 상태가 된다.데이터를 모두 보냈다면 연결이 종료되었다는 FIN 플래그를 클라이언트에..

[WEEK08] 웹 서버 개발일지

1️⃣ Echo 서버 서버/클라이언트/echo 코드는 CSAPP 11.4.9의 코드를 사용했다.🔹 Makefile# Echo_server_clientechoserver: echoserveri.o echo.o csapp.o $(CC) $(CFLAGS) echoserveri.o echo.o csapp.o -o echoserver $(LDFLAGS)echoclient: echoclient.o echo.o csapp.o $(CC) $(CFLAGS) echoclient.o echo.o csapp.o -o echoclient $(LDFLAGS)echo.o: echo.c csapp.h $(CC) $(CFLAGS) -c echo.cechoclient.o: echoclient.c csapp.h $(CC) $(CFLAG..

[Computer System] ⑪ 네트워크 프로그래밍 (2)

10.5 RIO 패키지를 사용한 Robust I/O🔹 개요Robust는 '견고한'이라는 의미로, 여기서는 입력 데이터의 이상치나 노이즈에 덜 민감하다는 의미로 사용되었다. RIO 패키지는 자동적으로 shourt counts 다루는 패키지로, short counts를 해야 하는 네트워크 프로그램 등의 응용프로그램에서 편리하고, robust하고, 효율적인 입출력을 제공한다.Short counts는 예상보다 짧은 입력 데이터가 들어온 상황을 의미한다. 다음과 같은 상황이 short counts에 해당된다. - read 도중 EOF(end-of-file)을 만난 경우 - text lines를 터미널로부터 read할 때 - 네트워크 소켓 통신 시 RIO는 2가지 다른 종류의 함수를 제공한다.이진 데이터의 Unb..

[WEEK08] 웹 기술의 진화

🌐 프로토콜이란?컴퓨터끼리 데이터를 주고받을 때 지켜야 할 형식과 규칙레이어마다 다름🕸 초기 웹최초의 웹 브라우저: WWW (텍스트 기반, 단순 HTML 문서 표시)최초의 웹 서버: CERN httpd (정적 HTML 파일만 제공)📡 HTTP란?웹 브라우저와 웹 서버 사이의 약속 ⭐ Stateless 프로토콜요청이 끝나면 과거 상태를 기억하지 않음단순하고 빠름 → 하지만 로그인, 장바구니 등 유지 어려움 → 쿠키, 세션 등장예: GET /...html HTTP/1.1📈 웹 대중화클라이언트 사이드: 이미지, 서식 태그 등 그래픽 중심 발전 (스크립트/동적 업데이트 불가)서버 사이드:HTTP/1.0 도입 (응답 코드 및 헤더)Apache 웹 서버 등장2-tier architecture (HTML + ..

[Computer System] ⑪ 네트워크 프로그래밍 (1)

11.1 클라이언트-서버 프로그래밍 모델🔹 모든 네트워크 애플리케이션은 클라이언트-서버 모델에 기반함🔹 클라이언트는 서비스를 요청하고, 서버는 자원을 관리하며 그 요청을 처리함🔹 트랜잭션 순서 1. 클라이언트가 요청 전송 2. 서버가 요청 처리 3. 서버가 응답 전송 4. 클라이언트가 응답 수신 및 처리 🔹 클라이언트와 서버는 모두 프로세스이며, 같은 호스트에서도 실행될 수 있음 클라이언트 서버 모델client–server model은 서비스 요청자인 클라이언트와 서비스 자원의 제공자인 서버 간에 작업을 분리해주는 분산 애플리케이션 구조이자 네트워크 아키텍처를 나타낸다. 웹 시스템도 확장된 클라이언트 서버 시스템으로 분류되나, 일반적으로는 클라이언트 서버 시스템이라고 하면 웹..

[WEEK08] 네트워크 계층

OSI 7계층[출처] What is the OSI model? | Cloudflare[참고] Seogeurim / CS-study / NetworkOSI 모델open systems interconnection model은 표준 프로토콜을 사용하여 다양한 통신 시스템이 통신할 수 있도록 ISO(국제표준화기구)에서 만든 개념 모델이다. OSI는 서로 다른 컴퓨터 시스템이 서로 통신할 수 있는 표준을 제공한다. OSI 모델은 컴퓨터 네트워킹의 범용 언어로 볼 수 있다. 이 모델은 통신 시스템을 7개의 추상적 계층으로 나누며 각 계층은 다음 계층 위에 스택된다. 여기서 프로토콜protocol은 데이터 서식 지정 및 처리를 위한 규칙 세트를 의미한다. 네트워크 프로토콜은 컴퓨터의 공통 언어와 같다. 네트워크 내의..