Prim Algorithm Coding
·
CS/Algorithm
Prim을 위해 만들어야할 것priority queue노드 Marking 배열그래프#include #include using namespace std;//TRI를 만들 것 노드, 노드 , wight 형태로 저장되는 것class TRI {public: int a, b, w;};//priority queueclass PQ {public: int n; TRI Arr[1000]; PQ(); //생성자 TRI Delete(); //삭제 void Insert(TRI x); //삽입 int isEmpty(); //비어있는지 확인};PQ::PQ(){ n = 0;}int PQ::isEmpty(){ return n == 0; //n에 들어있는게 없다면 0을 리턴}//prio..
[Greedy Algorithms] Minimum Spanning Tree
·
CS/Algorithm
Greedy Alogrithms답을 찾기 위해 선택을 반복하는 알고리즘비교적 간단한 방법으로 선택선택한 후 바꾸지 않는 알고리즘ex) selection sort -> greedy 전체에서 가장 작은걸 찾아서 새 배열의 첫번째 배열로 "선택"하여 옮김 선택하는 것은 가장 작은것을 고름 (선택을 한 쪽의 배열에서는 없어졌다고 생각)남은곳에서 또 제일 작은 것을 고르는 과정을 반복 Shortest path ideaS에서 B까지 가는 가장 짧은 길을 찾는다고 하자* S에서 A까지 가는 가장 짧은 길 등등을 찾는것과 같다. 해당 짧은 길을 찾으려면 많은 가장 짧은 길을 찾아야한다. S에서 나가는 것 중에 제일 작은 것은 5이고 C에 도착C까지 가는 5보다 짧은 길이 있는가? -> 없음 : 다른 길을 가는 순간 이..
[Network Layer] IP addressing
·
CS/Computer Network
인터넷 : TCP / IP를 사용하는데 이는 transport layer / network layer이다.IP addressing32-bit identifier for host and router interface8bit.8bit.8bit.8bit로 나타내며 .을 통해 구분됨router의 각 port들의 ip address들을 표현했고, 그 밖은 host들의 ip address이다. 왼쪽 세개의 호스트와 라우터 인터페이스는 233.1.1.xxx 형식의 IP 주소를 가진다.4개의 인터페이스가 중계하는 라우터 없이, 하나의 네트워크에 연결되어있는 것이다. (LAN or AP로 연결)세 호스트들의 인터페이스와 하나의 라우터 인터페이스가 subnet을 구성하는 것이다.따라서 233.1.1은 subnet 구분을 ..
[Network Layer] Routing
·
CS/Computer Network
Network layer : 어떤 router을 거쳐서 client2로 패킷을 전송할지 결정하는 역할Two types of servicesConnectionless : 목적지만 지정되어 있음Connection-oriendted : 중간에 어떤 라우터를 거쳐 도착할 지 헤더에 저장되어 있다.Forwarding : Move pkt from router's input to appropriate router output (라우터로 들어와서 어디 subnet으로 보낼지 결정하는 것)Routing : Determine route token by pkt from source to dst (Fowarding 보다 큰 개념)Routing algorithm은 Fowarding table을 만들어준다.  Implementa..
[Transport Layer] TCP
·
CS/Computer Network
Data Transfer간단한 버전으로 TCP에 대해 설명하겠다. * TCP는 비교적 간단한 protocol이다. (GBN과 SN의 결합형태)Data received from Application Layer → encapsulate : in a segment, allocate SN, start timer, pass to the network layer▷ 데이터 수신 (응용계층 → 전송계층) : 애플리케이션 계층에서 데이터를 수신하여 TCP 세그먼트로 캡슐화한다. 이 과정에서 각 세그먼트에 SN을 할당하고, 타이머를 설정한다. 이후, 캡슐화된 세그먼트를 네트워크 계층으로 전달한다.Timer time-out : restransmit the segment, restart timer▷ 세그먼트가 전송된 후 일정..
[Transport Layer] 신뢰적인 데이터 전송의 원리
·
CS/Computer Network
신뢰적인 데이터 전송을 구현하는 문제는 전송 계층 뿐만 아니라, 링크 계층과 애플리케이션 계층에서도 발생하는 문제이다. Some limitations of the channel채널이 불안정한 상황들drop msgsreorder msgs deliver duplicate copies of a given msgACK가 와야 도착했다고 생각 → 늦어지면 재전송 (delay가 길었을 경우)limit msgs to finite sizedeliver msgs often an arbitary long delay 신뢰적 데이터 전송Frame FormatReciver pkt number▷ piggy-backing : for reverse direction of data flow ARQ ProtocolAutomatic Re..
[Transport Layer] UDP (User Datagram Protocol)
·
CS/Computer Network
* Demultiplexing : extend the host-to-host delivery service to a process-to-process service 호스트에서 호스트로 전송하는 것을 넘어서, 프로세스에서 프로세스로 전송하게 해주는 서비스 세그먼트 구조port # : 포트 번호 목적지 호스트가 목적지 종단 시스템에서 동작하는 (역다중화 기능을 수행하는) 정확한 프로세스에게 애플리케이션 데이터를 넘기게 해줌 * 전송 계층에서는 헤더에 포트 번호 (프로세스의 위치)를 헤더에 붙여준다. 각 port 번호를 지칭하는 길이는 16bit 이므로 216=64K=65536 개의 포트가 사용 가능하다. Length : 길이헤더를 포함하는 UDP 세그먼트의 길이를 바이트 단위로 나타낸다...
SQL Injection
·
Hacking/Web Hacking
웹 사이트들은 사용자의 입력 값을 이용해 데이터베이스 접근을 위한 SQL Query를 생성한다.공격비정상적인 SQL Query를 이용한 공격사용자 인증을 비정상적으로 통과데이터베이스에 저장된 데이터를 임의로 열람데이터베이스의 시스템 명령을 이용하여 시스템 조작 웹 로그인 시 SQL문웹에서 사용자가 ID와 패스워드 입력창에 자신의 ID와 패스워드를 입력하면, 다음과 같은 SQL문이 작성되어, 데이터베이스에 전송 예시로 member라는 데이터 베이스가 있다고 가정하자.즉, 입력한 로그인과 비밀번호를 찾아서 데이터베이스에 정보가 존재하면 비교하는 코드가 필요하다SELECT user_idFROM memberWHERE user_id='입력된 아이디' AND user_pw='입력된 패스워드'형식으로 비교한다.  이..
Transport Layer 개요
·
CS/Computer Network
Transport Layer의 게층 프로토콜은 네트워크 라우터가 아니라 종단 시스템 (endsystem)에서 구현된다.송신 측 트랜스포트 계층은, 애플리케이션 계층으로부터 수신한 메시지를 트랜스포트 계층 패킷으로 변환 - segment트랜스포트 계층은 송신 종단 시스템에 있는 네트워크 계층으로 세그먼트를 전달수신측에서 네트워크 계층은 데이터그램으로부터 트랜스포트 계층으로 세그먼트를 전송트랜스포트 계층은 수신 애플리케이션에서 세그먼트 내부의 데이터를 이용할 수 있도록 수신한 세그먼트 처리* 네트워크 애플리케이션에서는 트랜스포트 계층 프로토콜을 사용 가능하다 ex) TCP, UDP Transport Layer vs Network LayerTransport LayerNetwork Layer각기 다른 호스트에서..
XSS
·
Hacking/Web Hacking
XSS (Cross Site Scripting)취약점웹페이지가 사용자에게 입력 받은 데이터를 필터링하지 않고 그대로 동적으로 생성된 웹페이지에 포함하여 사용자에게 재전송 시 발생클라이언트 측에서 실행되는 언어로 작성된 악성 스크립트 코드를 포함시켜 전달 (브라우저에서 실행)악성 스크립트 코드가 웹 브라우저에서 실행됨피해쿠키를 통한 웹 사용자 정보 추출과부화를 일으켜 서버를 다운시킴피싱 공격의 일종으로 활용 Cookie | 쿠기HTTP 프로토콜은 모든 요청 / 응답이 독립적으로 시행된다.따라서 HTTP 프로토콜은 사용자의 요청이 누구의 것인지 구분할 수 없다.어떤 페이지 접속 시 사용자의 인증 정보가 필요해지면서 해결하기 위해 만든 것이 쿠키이다.인증의 성공 여부 등의 정보를 초기 인터넷에서는 쿠키를 이용..