본문 바로가기

카테고리137

[C++] STL pair 사용법 pair 사용법 우선 pair을 사용하기위해서는 utility 헤더파일이 필요한데 이미 vector 헤더파일에 포함되어있기 때문에 #include만 추가하면 사용할 수 있다. pair p; // int 타입 데이터 2개를 관리할 수 있는 pair 클래스의 p객체 pair p;// int타입과 double 타입 데이터를 한번에 관리할 수 있는 pair 클래스의 p객체 pair p;// 각 각의 double 타입 데이터를 한번에 관리할 수 있는 객체 pair p;// int 타입과 char타입 테이터를 하나로 묶어서 관리할 수 있는 p객체 pair p pair 클래스의 객체 p를 생성합니다. 객체 이름은 p가 아니어도 상관없다. p.first p의 첫번째 인자를 반환한다. p.second p의 두번째 인자를.. 2023. 7. 18.
[C++] STL sort함수 사용법 sort() 함수 사용하는 방법 #include #include // STL 라이브러리 -> sort() 함수가 정의되어있음 using namespace std; bool compare(int a, int b) { // 비교 함수 return a > b; // 정렬 기준 : 내림차순 정렬 } int main(void) { int a[10] = { 9, 3, 5, 4, 1, 10, 8, 6, 7, 2 }; sort(a, a + 10); // a -> 메모리 주소, a + 10 -> 정렬할 마지막 주소가 있는 메모리 주소 sort(a, a + 10, compare); // 추가로 함수를 넣어주면 원하는 정렬 기준으로 정렬을 할 수 있다. //=> 9 ~ 2 까지의 주소를 정렬한다는 사실을 나타냄 for (i.. 2023. 7. 18.
Chapter 8 Security 8.5 Securing TCP connection: SSL Secure Sockets Layer (SSL) - 메시지 전송 보안을 위한 표준 네트워크 계층 (프로토콜) - 응용 계층의 데이터가 전송 계층으로 내려가기 전에 SSL을 통해 데이터가 암호화된다. - 장점: 기밀성, 무결성 보장, 서버인증 HTTPS = HTTP + SSL SSL = TLS (Transport Layer Security) 8.6 Network layer security: IPsec IPsec IPSec은 네트워크에서의 안전한 연결을 설정하기 위한 프로토콜 - VPNs (Virtual Private Networks) IPSec는 가상 사설 네트워크(VPN)를 통해 인터넷에 연결하여 원격으로 회사 파일에 액세스한다. IPSec 프로.. 2023. 6. 15.
Chapter 7 Wireless and Mobile Networks 7.1 Introduction Wireless hosts wireless hosts 는 노트북, 스마트폰이 있다. 노트북은 stationary인데, 대부분 한 곳에 앉아서 사용하기 때문에 안 움직인다고 말한다. 스마트폰은 mobile인데, 움직인다고 말한다. 그러므로 무선이라고 반드시 이동성을 의미하는 것은 아니다. mobility는 그림의 아래부분과 같이 이동하여 네트워크를 이동해 가는 것이다. 이동통신은 무선이다 (o) 무선은 이동통신이다(x) Base station 기지국은 일반적으로 유선 네트워크에 연결된다. "relay" 는 "area"에 있는 유선 네트워크와 무선 호스트 간에 패킷 전송을 담당한다. Wireless link wireless link는 모바일을 기지국에 연결되는데 사용된다. (백.. 2023. 6. 15.
Chapter 6 링크계층 (The Link Layer and LANs) 네트워크 장비 Repeater : L1 계층 물리계층에서 네트워크를 구성하는데 사용 약해진 신호를 재생성 (강하게 또는 복원) 통신 선을 연장하는 효과 Hub : L1 계층 연결된 모든 호스트에게 전달 [주소 인식 불가] Bridge : L2계층 리피터 기능과 Filtering 기능을 가짐 목적지 주소(Mac주소)를 검사해서 프레임을 전달할 포터(h/w)를 결정 포트와 주소를 연결할 테이블 존재 네트워크와 네트워크를 연결 (LAN 연장) 네트워크를 분리 Switching Hub : L2 계층 목적지 주소를 인식, 해당 목적지 포터로만 전달 LAN에 많이 사용 라우터 : L3 계층 IP 주소로 목적지에 패킷 전달 L3 스위치도 같은 기능 Backbone 장치 여러 네트워크(LAN)를 연결해 주는 장치 백본.. 2023. 6. 6.
Chapter 5 네트워크 계층 (The Control Plane) 5.1 intriduction Control Plane은 두형태가 존재한다. 1. 전통적 방식인 per-router control -> 라우터마다 라우팅 알고리즘이 구현되어 있는 상태 2. 최근방식인 logically centralized control -> software defined networking (SDN) Per-router control 라우터들이 개별적으로 Routing Algorithm을 수행하며 정보를 주고받는다. 그리고 라우터별로 forwarding table을 유지하고 있다. 이것은 네비게이션과 비슷하다. 최단경로 또는 최저비용 또는 가장 혼잡하지 않는 경로를 알려준다. 즉 어떤 목적에 따라 경로를 정하는 것이다. 라우터에서도 똑같이 목적에 따라 Routing Algorithm을 .. 2023. 6. 5.
Chapter 4 네트워크 계층 (The Data Plane) 4.1 Overview of Network layer - datagram transport layer에서는 segment였던 것이 network layer에서는 datagram이라고 부른다. 그래서 보내는 쪽이 segment를 datagram으로 encaptulation하고, 받는 쪽에서 segment로 바꾸어줘서 transport layer로 전달한다. Network layer의 두가지 기능 1. Forwarding (포워딩): 패킷이 라우터의 input에 도달하면 라우터는 패킷을 적절한 output으로 이동시켜야 한다. (포워딩은 data plane에 구현된 가장 보편적이고 중요한 기능) 2. Routing (라우팅): 송신자가 수신자에게 패킷을 전송할 때 네트워크 계층은 패킷 경로를 결정 해야 한다.. 2023. 6. 3.
Chapter 3 전송계층 (Transport Layer) 3.1 transport-layer services 네트워크 계층이 호스트들 간의 논리적 통신이라면 전송계층은 프로세스 간의 논리적 통신이다. 3.2 multiplexing and demultiplexing Multiplexing (다중화) 다중화는 여러개의 데이터 스트림을 하나의 물리적인 통신 매체로 전송하기 위해 사용되는 기술이다. 이를 통해 대역폭을 효과적으로 활용할 수 있다. 다중화 기술에는 앞서 설명했던 시분할 다중화(TDM), 주파수 분할 다중화(FDM) 등이 있다. Demultiplexing (역다중화) 반면, 역다중화는 다중화된 데이터를 각각의 연결로 분리하여 처리 하는 기술이다. 역다중화를 통해 수신 측에서는 하나의 물리적인 통신 매체로부터 여러 개의 데이터 스트림을 받을 수 있고 각각의.. 2023. 4. 18.
[C++] STL 스택(stack) 사용법 스택이란? 스택(Stack)은 대표적인 LIFO(Last In First Out) 구조이다. 따라서 제일 마지막에 넣은 데이터가 처음으로 빠져나오는 것을 볼 수 있다. 스택의 기본함수에는 push, pop, empty, top, swap 등이 있다. Stack의 특징 1. 먼저 들어간 자료가 나중에 나옴 LIFO(Last In First Out) 구조 2. 시스템 해킹에서 버퍼오버플로우 취약점을 이용한 공격을 할 때 스택 메모리의 영역에서 함 3. 인터럽트처리, 수식의 계산, 서브루틴의 복귀 번지 저장 등에 쓰임 4. 그래프의 깊이 우선 탐색(DFS)에서 사용 5. 재귀적(Recursion) 함수를 호출 할 때 사용 스택 헤더 파일 stack STL을 사용하기 위해서는#include 헤더파일을 포함해야 .. 2023. 4. 13.
[CS/C++] STL 덱(Deque) 사용법 덱(Deque)이란? STL 컨테이너 라이브러리 중 하나인 Deque(Double Ended Queue) 덱은 큐(Queue)와 비슷하지만 큐와 다르게 삽입과 삭제가 앞, 뒤 양쪽으로 모두 가능하다. 덱의 삽입과 삭제는 양쪽 끝(앞, 뒤)에서 이루어진다. 크기가 가변적이다. 인덱스가 존재하기 때문에 임의의 원소에 접근이 가능하다. Deque 사용법 Deque 선언 #include // deque가 들어있는 헤더파일 deque dp; // int형 덱 선언 deque dp; // char형 덱 선언 Deque의 기타 메서드 dq.begin() : dq의 첫 번째 원소를 가리키는 iterator dq.end() : dq의 마지막 원소를 가리키는 iterator dq.front() : dq의 첫 번째 원소 d.. 2023. 4. 12.