네트워크
프로그램을 동작시키는 프로세스의 일종, Net + Work 의 합성어이다. 메세지를 교환하며 송수신을 한다. 좀 더 추가하자면 두 대 이상의 디바이스가 논리적 혹은 물리적으로 연결되어 통신이 가능한 상태임을 말한다.
IPC(Inter Process Communication)
OS 내부에는 프로그램을 동작시키는 프로세스가 구동 중에 있으며, 프로세스들 사이에는 메세지 교환이 필요하다. 그리고 이를 위해서 IPC가 마련되어 있다. 내부 프로세스간 통신을 제공하고 프로세스 커널이 제공하는 IPC 설비를 이용하여 프로세스간 통신을 가능케 한다.
웹서버 기본 포트번호
80포트
TCP 특징 (간략)
(1) Reliable Transport : 신뢰성 있는 전송 (패킷 유실없이 감 : 패킷이 유실되지 않는다는 것이 아니다.)
(2) Flow Control : 수신 호스트에 데이터 처리속도를 고려하여 속도를 조절
(3) Congestion Control : 네트워크 상황에 맞게 속도 조절
(4) Connection - Oriented
HTTP Protocol 특징 (간략)
(1) HyperText Transport Protocol 준말
(2) Message 종류 두 가지 : Request & Response
(3) TCP 사용 ( Transport Layer 위에 Application Layer 존재 )
(4) stateless protocol : 상대방 상태정보를 저장하지 않음
Non-Persistent HTTP
Request Message 를 서버로 보내기 위해선 우선 TCP Connection이 선행되어야 한다. 그리고 request msg 에 대해서 response msg 를 받게되면 TCP Connection 은 끊기며 다시 웹사이트의 리소스를 들고오기 위해선 TCP Connection 을 재차 맺어야한다. Connection 이 지속적인 상태가 아니다.
Persistent HTTP
웹클라이언트 (브라우저) 는 보통 같은 사이트에 여러 개의 TCP 커넥션을 맺는다. 예를 들어 웹 페이지에 첨부된 이미지들 대부분은 같은 웹사이트에 있으며, 여러 하이퍼링크도 같은 사이트를 가리키는 경우가 있다. 여기서 서버에 HTTP 요청을 하기 시작한 애플리케이션은 웹 페이지의 다른 이미지 등을 가져오기 위해서 그 서버에 또 다시 요청하는 경우가 생기는데, 이 속성을 사이트 지역성(Site Locality)이라고 부른다. 하지만 이러한 TCP 커넥션을 계속 유지하여 앞으로도 있을 HTTP 요청에 재사용할 수 있도록 하는 것이다. 처리가 완료된 이후에도 계속 연결된 상태로 있는 TCP 커넥션을 Persistent Connection 이라고 한다.
Web Caches (Proxy Server)
웹 캐시 혹은 프록시 서버라고 불린다. 프록시는 클라이언트와 서버 사이에 위치하여 클라이언트의 모든 HTTP 요청을 받아 서버에 전달한다. 프록시는 주로 보안을 위해서 사용하며 모든 웹 트래픽의 흐름 속에서 신뢰할만한 중개자의 역할을 수행한다. 또한 req msg 와 res msg 를 필터링하는 기능을 지니고 있다. 캐시는 자신을 거쳐 가는 문서들 중 자주 찾는 것의 사본을 저장해두는 특별한 종류의 Http 프록시 서버이다. 클라이언트 측에서 동일한 문서를 서버에 요청하면 캐시가 가지고 있는 사본을 서버 측에 요청하지 않고 전달할 수 있다.
Web Caches (Proxy Server) 단점
실 서버에 대해 리소스가 변경되거나 버전이 바뀌는 경우, 데이터의 일관성이 떨어진다. 사용자는 최신 내용이 아닌 캐시가 들고있는 사본을 확인하는데 (이전내용) 이 부분에서 문제가 생기는 것이다. 하지만 HTTP 프로토콜은 캐시가 가진 데이터가 최신버전인지 확인할 수 있는 메커니즘을 가지고 있다. 이 메커니즘을 Conditional Get 이라고 부른다. 클라이언트가 request msg 를 보낼 때, 수정되었던 마지막 날짜를 보내고, 수정되지 않았다면 수정되지 않았음을 response message 로 받는다.
Conditional Get
Conditional Get 이란 웹 캐시, 프록시 서버가 사용한다. 클라이언트에게 요청 온 데이터가 최신버전인지에 대해서 실서버에게 요청하고 응답받는다.
+) TCP, Flow Control (흐름제어) 추가 설명
송신 측의 데이터 처리속도가 수신 측의 데이터 처리속도보다 더 빠르게 데이터를 보내지 못하도록 제어하는 것을 의미 (송신 측 데이터 처리속도를 제어)
- Stop And Wait 방식
- 패킷 하나를 보내고, 패킷 하나를 다시 받는 방식 (오버헤드 발생)
- 관련링크 (그림첨부)
- Sliding Window 방식
- 일정한 윈도우 크기 이내에서 한번에 여러 패킷을 송신
- 이렇게 보낸 패킷에 대해서 단지 한 번의 ACK 를 수신
- 윈도우 크기에 변화를 준다. Flow Control 을 수행 (+Congestion Control 도 수행)
- 변화를 주는 기준은 상대방의 Buffer Size 에 따라 유동적으로 변화한다.
- 윈도우 크기 (window size) 는 두가지를 고려한다.
(1) network 상태 (Congestion Control)
(2) receiver buffer 의 상태 (Flow Control)
(3) window size = min (rwnd, cwnd) : 더 작은 값을 선택
☞ rwnd :: Receiving Window
☞ cwnd :: Congestion Window
- 관련링크 1
- 관련링크 2 (tcp segment 구조에 윈도우 사이즈 내용)
- sliding window (슬라이딩 윈도우) 전반적인 참고 자료
+) Web Cache
자주 액세스되는 정적 컨텐츠를 임시로 저장하기 위한 하드웨어 장치 또는 소프트웨어 응용 프로그램을 의미.
웹 캐시는 대중적인 콘텐츠를 최종사용자에게 가깝게 배치하여 응답 시간을 향상시킨다. 웹 캐시의 기술 중에 CDN 이라는 기술이 존재한다.
참고링크
'네트워크 > 네트워크 강의 들은 것 정리' 카테고리의 다른 글
20180612 네트워크 정리 04 답변 (수정 20191109) (0) | 2018.06.12 |
---|---|
20180611 네트워크 정리 03 답변 (수정 20191109) (0) | 2018.06.11 |
20180609 네트워크 정리 01 답변 (0) | 2018.06.09 |
20180516 21 :Wireless And Mobile Networks 3 (0) | 2018.05.16 |
20180514 20 : Wireless And Mobile Networks 2 (0) | 2018.05.14 |