donaricano-btn

세션을 남겨두는 기능 Keep-Alive


1. 문제

- HTTP는 한 번 요청/응답 관계가 끝나면 세션 종료

- 한 화면에 많은 이미지가 포함돼 있으면 몇 번이고 세션을 만들고 닫아야한다

- 하위 계층인 TCP에서 3way-handshaking의 오버헤드 발생, 전체 화면에 응답에 영향일 끼치게 된다


2. Keep-Alive

- 화면 하나를 표시할 정도의 세션을 유지하면 오버헤드을 줄일 수있다

- Keep-Alive : 단 시간 동안만 세션을 남겨 두는 기능

- 웹 서버 측에서 세션 잔존 시간등을 설정한다



블로그 이미지

리딩리드

,
donaricano-btn

레이어7(Layer7) - 애플리케이션 계층의 프로토콜 HTTP(applicationLayer)


1. 정의

- 애플리케이션이 사용하는 프로토콜을 모두 애플리케이션 계층 프로토콜이라 부른다

- 애플리케이션 계층 프로토콜은 직접 통신하는 것이 아니라 모두 TCP/IP에 맡긴다

- HTTP 사양은 RFC2616으로 정하고있다

- 브라우저에 URL을 입력해서 요청하면 웹 서버는 응답으로 HTML파일이 반환된다

- HTTP를 통해 몇 번이고 요청과 응답을 주고 받는다


2. 요청과 응답의 구체적 내용

1) 요청(Request)

- 요청 : GET은 파일 요구이고, POST는 데이터 전송을 의미

- 헤더: 다양한 부가 정보가 있으며 세밀한 제어를 위해 사용(브라우저에 상세한 정보)

- 바디 : 브라우저에 입력한 내용이 포함

2) 응답(Response)

- 상태 : 결과가 정상인지 에러인지 등의 상태 정보를 가진다

- 헤더 : 브라우저 상세 정보

- 바디 : HTML 데이터 등, 실제 데이터 저장


3. 애플리케이션 계층 프로토콜  HTTP 요청 통신과 소켓(Socket)

- 애플리케이션이 통신을 할 때 사용하는 통로를 소켓이라 한다

- 소켓에 기록된 데이터는 다른 한쪽의 소켓으로 전달된다

1) 소켓 구성

a. 애플리케이션 프로세스가 네트워크 통신하는 경우, 커널에 'TCP/IP통신을 위한 회선을 요청한다'

b. OS의 커널은 소켓을 만든다(데이터 보내기위한 회선이 만들어짐)

c. 애플리케이션은 TCP를 사용한다는 것과 IP주소 및 포트 번호 정보를 시스템 콜 경유로 커널에 전달, 접속 대상 서버와 연결이 생성

d. 상대방 서버에서도 소켓이 만들어 지며 가상 경로(virtual circuit)이 생성된다

e. 실제 데이터물리적인 통신 케이블로 전달 되지만 프로세스 관점에서는 소켓이라는 구멍에 넣은 데이터가 가상 경로를 통해서 상대 통신 소켓 구멍으로 나오는 것이다


블로그 이미지

리딩리드

,
donaricano-btn

TCP/IP 프로토콜 슈트(protocol suite)


1. TCP/IP 프로토콜 슈트(protocol suite)?

- 인터넷을 포함해서 현재 네트워크를 지탱하는 것은 TCP/IP 및 관련 프로토콜

- 이 프로토콜 집합을 모아서 TCP/IP 프로토콜 슈트라고 한다


2. TCP/IP 계층 구조

- TCP/IP 프로토콜 슈트라고 해서 반드시 TCP 를 사용하는 것은 아니다

- IP는 통신 상대 지정시에 IP주소를 이용하므로 반드시 필요

- OSI 참조 모델은 7 층으로 나누었지만 TCP/IP는 4계층으로 나뉜다

1). Application

- HTTP는 애플리케이션 프로토콜이 때문에 httpd 프로세스를 사용한다

- (예제에서 HTTP를 예로 들었다)

2) TCP

- HTTP 통신 데이터를 상대방에게 보내기 위해 TCP에 데이터를 건낸다

- TCP부터 Ethernet 까지는 커널이 담당

- TCP, IP, 이더넷이 담당하는 기능이 필요한 정보를 데이터에 부여해서 최종적으로 이더넷 프레임 생성

- 이더넷 프레임이 NIC으로 전달 돼서 이더넷 케이블 등을 통해 인접 노드를 경유, 최종목적지 까지 간다

3) 네트워크 스위치

- 각 계층별 처리를 하는 네트워크 스위치 L2,L3,L4라고 한다

- L2 : 이더넷 계층, L3: IP 계층 , L4: 전송계층(TCP )



블로그 이미지

리딩리드

,
donaricano-btn

프로토콜(protocol)


1. 프로토콜(protocol)?

- 컴퓨터가 서로 소통하기 위한 규약

- 한국사람으로 치면 한국말(음성이라는 프로토콜 + 한국어 프로토콜)


2. 컴퓨터에서 프로토콜

- 네트워크와 프로토콜은 필수적이다

1) 웹 브라우저

- HTTP를 이용하여 브라우저로 웹페이지를 볼 때 서버에게 요청한다

2) 제조사가 다른 컴퓨터

- 프로토콜을 일치 시켜야한다

- 네트워크 업계에서 공통 프로토콜 선정을 위한 IEEE, IETF와 같은 표준화 단체가 존재


3. 서버내부에서 프로토콜

- 어떤 장비라도 서로 통신하기 위해 프로토콜이 필요

1) 마우스를 PC와 연결

- USB 프로토콜이 존재한다

2) SCSI

- 저장소용 장비 드라이버가 SCSI 등의 프로토콜을 사용해서 데이터 교환을 한다

3) CPU

- 멀티 코어 CPU는 코어들 끼리 통신하기 위해 프로토콜이 존재


블로그 이미지

리딩리드

,