네트워크 9

동기, 비동기 요청의 차이

[동기요청] 1) 클라이언트가 서버에 존재하는 파일을 요청한다 2) servlet: 클라이언트 요청을 받아서 DB에서 데이터를 가져오는 역할 3) jsp: 받은 데이터를 jsp 가 받아서 결과페이지가 된다. (=서버에서 만든 페이지) 화면은 서버에서 만들어지는 것 return page [비동기요청] 1) 클라이언트가 서버에 존재하는 파일을 요청한다. 2) servlet : 클라이언트 요청을 받아서 DB에서 데이터를 가져오는 역할 3) 결과페이지가 아닌 데이터를 응답한다. 화면은 서버에서 만들어지는 것이 아닌 클라이언트 측에서 받은 데이터를 가지고 직접 작성 return data 다양한 devices 사용이 가능해지고 클라이언트와 서버의 분리가 가능해진다. (=RESTFUL API)

네트워크 2023.08.14

[AWS] Light Sail 사용하기

일단 나의 상황 web server 를 코딩한 server.c 파일과 나머지 파일이 resources directory 아래 있다. ㄴserver.c ㄴresources ㄴindex.js ㄴindex.html ㄴpic1.png 현재 macOS 를 사용중이며 ubuntu 22.04 서버에 접속하고자한다 SSH CONNECT 하는 법 (1) Light Sail 에서 디폴트 키 다운받아 놓고 방화벽 설정해주기 AWS Light Sail 에서 default key 를 다운로드 받아서 ./ssh/ 폴더 아래에다가 copy 해둔다! .pem 은 private key, .pub 는 public key 를 의미한다. 나는 Custom | TCP | 8080 | 모든 IPv4 접근 허용 으로 방화벽을 설정해주었다. (2..

네트워크 2023.06.01

I/O Multiplexing 통한 웹서버 구현하기

환경: Ubuntu Desktop 22.04.2 LTS on x86 0. 개념정리 I/O 란 무엇인가? 입출력 다중화 필요한 경우? -TCP 클라이언트가 다수의 소켓을 동시에 처리해야 하는 경우 -TCP Server 가 Listening socket rhk connected socket 을 모두 처리해야하는 경우 -서버가 tcp / udp 모두 지원해야 하는 경우 I/O 모델 분류? I/O 작업은 user space에서 직접 수행할 수 없기 때문에 user process가 kernel에 I/O 작업을 '요청'하고 '응답'을 받는 구조이다 어떤 "순서" 로 받는지에 따라서 'synchronous / asynchronous), 어떤 "타이밍" 에 받는지에 따라서 "blocking/ non-blocking) ..

네트워크 2023.05.31

[네트워크] TCP/UDP

TCP? -신뢰적인 데이터 전송 서비스 -연결지향형 서비스 -3way hand shaking: application 계층 메세지를 전송하기 전에 TCP는 클라이언트와 서버가 서로 전송 제어 정보를 공유하게 한다. 이 핸드셰이킹 과정이 클라이언트와 서버에 패킷이 곧 도달할 테니 준비하라고 알려주는 역할을 한다. -흐름제어 및 혼잡제어방식 : 네트워크가 혼잡하면 속도를 낮춘다 -시간보장X, 최소 처리율 보장X, 보안X UDP? -비신뢰적인 데이터 전송 서비스: 하나의 프로세스가 UDP 소켓으로 메세지를 보내면 그 메세지가 수신 소켓에 도착하는 것을 보장하지 않는다. -흐름제어, 혼잡제어, 시간보장,처리율보장,보안,연결set up 모두 X

네트워크 2023.04.30

[네트워크] HTTP/Cookie/Threeway Handshake

Webpage 는 기본적으로 HTML file 과 여러 참조 객체로 이루어져있다 HTTP 란? -Hypertext transfer protocol [특징] 1) 비지속 연결 (Non-persistent) : 요청/응답이 끝난 뒤에 TCP 연결 중단 Client : 클라이언트가 HTTP 기본포트 80번에서 TCP 연결을 서버에 시도한다. Server: 서버가 TCP 요청을 받아들이고 클라이언트에게 이를 알린다 Client: 클라이언트가 HTTP 요청 메세지를 보낸다. (url 포함시키고, 객체를 원한다는 작성) Server: HTTP 서버가 응답 메세지를 객체를 담아 소켓에 보낸다 Server: HTTP 서버가 TCP 연결을 끊는다 Client: 응답메세지를 받고 객체를 받아서 브라우저에 보여준다. 2) ..

네트워크 2023.04.30

[네트워크] DNS/반복질의/재귀질의

DNS? 호스트 이름을 IP 주소로 변환하는 서비스 위와 같이 분산계층 데이터베이스 구조이다. [Root] -TLD 서버의 IP 주소를 제공 -official, contact of last resort by name servers that cannot resolve name -13logical root name “servers” worldwide each “server” replicated many times [Top Level Domain] -책임 DNS 서버에 대한 IP 주소를 제공 -.com/ .org / .net/ .edu 같은 상위레벨 도메인과 kr,uk,fr 같은 모든 국가의 상위 레벨 도메인에 대한 TLD 서버가 있다 [Authoritative] -organization's own DNS s..

네트워크 2023.04.29

[네트워크] FDMA/TDMA/CDMA 과 OFDM

FDMA/TDMA/CDMA ? Non overlapping frequencies of subchannels OFDM? Overlapping frequencies of subchannels FDMA? FDM 방식의 개념을 적용한 것이 FDMA 링크가 연결되는 동안 각 연결에 대해 주파수 대역을 고정 제공하는 것 TDMA? 시간을 일정한 주기의 프레임으로 구분하고 각 프레임은 고정된 수의 시간 슬롯으로 나뉜다. 네트워크가 링크를 통해 하나의 연결을 설정할 대, 네트워크는 모든 프레임에서 시간 슬롯 1개를 그 연결에 할당을 한다. 이들 슬롯은 그 연결을 위해 사용되도록 할당이 되고 그 연결의 데이터를 전송하기 위해 모든 프레임에 하나의 시간 슬롯을 갖게 된다. (time+frequency 모두 고려하는 일종의..

네트워크 2023.04.29

[네트워크] 패킷/Encapsulation/Decapsulation/Packet Switching/Circuit Switching

패킷이란? 작은 데이터 덩어리이다. 데이터를 나누고, IP 정보를 추가한 것! 패킷의 구조는 헤더 + 데이터 (payload) + 트레일러로 구성되어있다. [헤더] 버전정보 , TTL (Time to Leave), Source 주소, Destination 주소, 데이터 Encapsulation / Decapsulation? Encapsulation: 상위 -> 하위 계층으로 이전 패킷의 메세지 내용와 자신의 헤더 정보를 추가해서 포장 Decapsulation: 하위-> 상위 계층으로 포장된 내용에서 헤더 떼는 것 [Network 5 layers] Application (message) > 메세지 여러개로 분할 Transport(segment: Ht+M) > 애플리케이션 계층 메세지 캡슐화하고 트랜스포트 ..

네트워크 2023.04.29

Cookie 와 Session의 차이

예를 들어서, 브라우저를 새로고침할때마다 +=1 하는 count 함수가 있다고 치자. 화면에 count 값이 뜨게 된다. Network 창에 response header 를 보면, 1. 쿠키는 count 값을 서버에 보냄, 서버는 1을 더한 값을 보내줌. 브라우저 안에 count 변수를 저장하고 사용할때마다 count 함수 호출해서 업데이트 하는 방식이다. count 정보를 저장하는 방식 2. 세션은 connect.sid 값만 서버에 전달. 서버에서 connect.sid 을 가지고 사용자 식별 후 관련된 메모리에 저장된 count 값을 찾은 후, 요청이 들어오면 count 함수를 호출해서 업데이트하고 응답하는 방식이다. 사용자의 식별자만 저장하는 방식. 그리고 서버안에 있는 데이터를 가져와서 응답하는 방..

네트워크 2023.03.11