Major`(171)
-
[Network] 애플리케이션 계층 : HTTP
HTTP - 웹의 Application-Layer Protocol - HTTP를 통해서 인터넷상에서 데이터를 주고받을 수 있다 - 웹 페이지는 여러 객체들로 구성되어 있다 객체 : 이미지 파일/HTML 파일/오디오 파일/.... 객체는 서버 호스트 이름/경로 이름, 즉 URL로 지정된다 www.google.com/image.jpg 클라이언트-서버 모델을 따른다 Client (웹 브라우저) 1. 웹 객체를 서버에 요청 2. 서버로부터 요청한 객체를 받는다 3. 해당 객체를 display Server (웹 서버) 1. Client의 Contact를 기다린다 2. Request를 받으면 Reqeust한 객체를 보내준다 TCP 사용 - Client : (서버 IP주소 + 포트번호 80)을 이용해서 TCP 연결 ..
2022.02.10 -
[Algorithm] Union-Find Algorithm
Union-Find Algorithm - Disjoint Set을 표현할 때 사용하는 알고리즘 Disjoint Set - 각 집합들에 대해 서로 공통 원소가 없는 집합 :: 서로소 집합 자료구조 트리 구조를 사용하면 가장 효율적으로 구현할 수 있다 최소 힙과 비슷하게 root를 가장 작은 값으로 설정해주면 편리하다 Union-Find 연산 (1) init-set(x) - 각 node들을 본인의 번호로 초기화 번호 1 2 3 4 5 6 root 1 2 3 4 5 6 (2) union(x, y) - x가 속한 집합과 y가 속한 집합을 합친다 ex) (1, 3) (2, 4, 5, 6) 합치기 - 합치고, 각자 번호를 해당 tree의 root번호로 변경해준다 바로 위의 부모 node로 변경하는게 아니라 최종적인..
2022.02.09 -
[컴퓨터구조] 제어 유니트
제어 유니트 (Control Unit) CPU에서 명령어를 인출하여 해독하고 실행하는 과정이 순차적으로 발생하기 위해서 순간마다 적절한 제어 신호를 생성해서 해당 하드웨어 모듈로 보내주는 장치 - 기능 1) 명령어 코드의 해독 - 기능 2) 명령어 실행에 필요한 제어 신호 생성 ≫ 명령어 사이클이 적절히 수행되도록 모든 동작들을 제어하는 장치 - 명령어 사이클에는 인출 사이클/간접 사이클/실행 사이클/인터럽트 사이클로 구성 각 사이클에는 여러 개의 마이크로-연산들이 수행된다 Example) 인출 사이클 t(0) : PC -> MAR t(1) : M[MAR] -> MBR / PC + 1 -> PC t(2) : MBR -> IR - t(1)에서는 두 개의 마이크로-연산이 동시에 수행된다 - 각 마이크로-연산..
2022.02.07 -
[Network] Application Architecture
Application Architecture 클라이언트 - 서버 구조 (Client - Server) ▶ 서버 (Server) - 항상 켜져있는 Host :: 항상 인터넷에 연결되어 있다 - 고정 IP 주소 - Client가 많은 경우, 데이터 센터 형식으로 확장 ▶ 클라이언트 (Client) - 반드시 서버와 통신을 해야 한다 :: 클라이언트끼리 통신 X - 유동 IP 주소 :: 인터넷에 연결될 때마다 변경 가능 - 인터넷에 연결되고 끊김을 반복한다 P2P 구조 (Peer to Peer) Peer : Communication 하는 User의 호스트 - 하나의 Peer는 다른 Peer에게 서비스를 제공하기도 하고 서비스를 요청하기도 한다 높은 자기 확장성(Self-Scalability) - 서버가 없고 ..
2022.02.06 -
[Network] HTTP Status Code
1xx : Information Responses Request를 받았고 Process를 계속 진행 주요 Status Code Status Text 100 Continue - 진행 중임을 의미한다 - 현재까지의 진행상태에 문제가 없다 - Client가 계속해서 요청을 하거나 이미 요청을 완료한 경우에는 무시해도 된다 101 Switching Protocols - Client에 의해 보낸 업그레이드 요청 헤더에 대한 응답 - Server에서 Protocol을 변경할 것임을 알려준다 - Websocket 프로토콜 전환 시 사용 102 Processing (WebDAV) - Server가 Request를 수신했고, 이를 처리하고 있지만 아직 제대로된 Response를 할 수 없을 때 2xx : Successf..
2022.02.06 -
[Network] HTTP 메시지
HTTP 통신 방식 1. 요청 - 응답 (Request - Response) 구조로 되어 있다 - Client가 HTTP Request를 보내면 Server가 HTTP Response를 보내준다 2. Stateless하다 - HTTP는 상태(state)를 저장하지 않는다 각각의 요청/응답은 독립적인 요청/응답이다 Ex) Client가 요청을 보내고, 응답을 받은 후 :::: 조금 있다가 다시 요청을 보내면 전에 보낸 요청/응답에 대해서 기억하지 못한다 >> 따라서, 여러 요청/응답에 대한 과정/Data가 필요할 경우 쿠키/세션 등을 사용하게 된다 쿠키 : 길게 저장 세션 : 짧게 저장 HTTP 메시지 Request 구조 (1) Start Line (Request Line) Method - Client의 ..
2022.02.06 -
[Network] Packet Delay/Loss/Throughput
Packet Delay (1) 노드 처리 지연 (Nodal Processing Delay) - Packet이 Node에 도착하면 해당 Node에서는 Packet에 대한 Processing을 시작한다 Packet이 오류없이 잘 도착했나 (Error Check) 이 Packet을 어느 Link로 보내줘야 하는가 >> 만약 해당 Link가 사용 중이다 ≫ 큐잉 지연 발생 (2) 큐잉 지연 (Queuing Delay) - 해당 Packet을 Buffer(Queue)에 잠시 저장해놓는다 해당 Buffer에서 나갈 차례를 기다린다 해당 Node의 Congestion에 따라 큐잉 지연의 시간은 달라진다 (가변적) ※ 트래픽 강도 (Traffic Intensity) - 큐잉 지연의 정도를 측정한다 Queue가 매우 커..
2022.02.05 -
[Network] Network Core - Circuit Switching/Packet Switching
Host의 Packet 전송 1. Application Message를 받는다 2. 해당 Message를 Packet으로 분할 (분할된 Packet의 크기 : L) 3. Host와 Access Network를 연결하는 Link로 해당 Packet을 전송 (Link 대역폭 : R) >> Host에서 Packet 하나를 내보내는데 걸리는 시간 : L/R[sec] Network Core - 상호 연결된 Router/Switch의 연결망(Mesh) Network Core의 목적 → Source에서 Destination까지 user의 Application Message를 전달 - 전달방식 : Circuit Switching / Pakcet Switching Circuit Switching - 주로 Telephon..
2022.02.04 -
[Network] Network Edge / Access Network / Network Core
Network Edge - Network를 사용해야 하는 Device들이 존재한다 컴퓨터 / 서버 / 휴대폰 / 노트북,... 수많은 Host or End System 들이 Network Edge상에 존재 Access Network - End System들이 Network에 접근하기 위해 제공되는 Network Network Core에 접속하기 위한 Network End System들이 Internet을 사용할 수 있도록 길을 터준다 종류 가정 접속(Residential Access) : 집 기관 접속(Company Access) : 학교/회사/기관 무선 접속(Wireless Access) 고려사항 1. Access Network의 대역폭 (Bandwidth : 1초당 보낼 수 있는 bit의 양) 2. ..
2022.02.03 -
[Network] 인터넷이란?
Internet - 네트워크들의 네트워크 구성 요소 ▶ Host (End System) - Network Edge에 존재하는 Network를 사용해야 하는 Device 컴퓨터 / 서버 / 휴대폰 / 노트북 등이 Host라고 할 수 있다 이러한 Device들은 Application Program을 실행하기 때문에 Host라고 불린다 ▶ Communication link - 다양한 전송률(Transmission Rate / Bandwidth)로 Data(Packet)를 보내는 통로 꼬임선 / 동축케이블 / 광섬유케이블 / 전파 / 위성 등이 존재 ▶ Packet Switch - Data(Packet)을 전달하는 매개체 라우터 / 스위치가 존재 프로토콜 (Protocol) - Data를 송수신할 때 해당 통신..
2022.02.03 -
[컴퓨터구조] 산술/논리 연산
산술논리연산장치 (ALU : Arithmetic and Logical Unit) - CPU 내부 구성 요소들 중 하나 수치/논리 Data에 대해서 실질적으로 연산을 수행하는 하드웨어 모듈 - 산술적 계산 : 정수(Integer) / 부동소수점 수(Floating-Point Number) 2가지 형태의 수들에 대해 수행 - 논리적 계산 : 0, 1의 배열로 표현되는 2진 데이터(binary data)에 대해 수행 ALU 구성요소 산술 연산장치 - 산술 연산(+ / - / × / ÷)을 수행 논리 연산장치 - 논리 연산(AND / OR / XOR / NOT,...)을 수행 보수기 (Complementer) - Data에 대해서 2의 보수를 취한다 Data를 음수로 만든다 시프트 레지스터 (Shift Regi..
2022.02.02 -
[Network] 응용 계층 (Application Layer)
응용 계층 (Application Layer) - Application과 사용자가 Data를 주고받기 위한 인터페이스를 제공 - 클라이언트 : 서비스를 요청 - 서버 : 서비스를 제공 - 클라이언트 → 서버로 Data를 보내려면 응용계층 프로토콜을 사용해야 한다 프로토콜 포트 번호 내용 HTTP (HyperText Transfer Protocol) 80 웹 사이트 접속 DNS (Domain Name System) 53 이름 해석 SMTP (Simple Mail Transfer Protocol) 25 메일 송신 POP3 (Post Office Protocol Version) 110 메일 수신 FTP (File Transfer Protocol) 20 이름 해석 Telnet 23 원격으로 접속 가능 WWW란?..
2022.01.31