본문 바로가기

CS17

포트포워딩 포트포워딩(Port forwarding)은 말 그대로 포트(Port)를 전달(Forwarding)해 주는 것으로 특정한 포트로 들어오는 데이터 패킷을 다른 포트로 바꿔서 다시 전송해주는 작업을 의미한다.즉 공인 IP(공유기의 외부 주소)로 들어오는 특정 포트의 요청을, 내부 네트워크의 특정 사설 IP와 포트로 전달해주는 기능이다. 라우터는 라우터에 연결된 모든 기기에 사설 네트워크를 구축해주는 역할을 한다. 뿐만 아니라 라우터는 공용 IP를 할당받는데, 이때 사설 네트워크 내의 기기들은 인터넷에 접속하기 위하여 라우터를 거쳐야 한다. 가정용 기기를 원격 기기에 직접 연결하고 싶다면, 서버 포트포워딩을 설정해야 한다.라우터에는 6만 개 이상의 포트가 있는데, 이 중 잘 알려진 포트를 제외한 나머지 포트는 .. 2024. 12. 26.
[네트워크] 사설 IP, 공인 IP IP(Internet Protocol) IP 주소는 네트워크 상에서 기기를 식별하는 고유한 주소로 컴퓨터나 스마트폰 등 네트워크에 연결된 기기의 주소 역할을 한다. 따라서 IP 주소를 통해 기기가 인터넷이나 로컬 네트워크에서 다른 기기와 통신할 수 있다.IP 주소에는 공인 IP 주소, 사설 IP 주소, 동적 IP 주소, 정적 IP 주소 등 다양한 유형이 존재한다.사설 IP사설 IP 주소 : 공유기가 노트북, 스마트 TV, 휴대폰 등 홈 네트워크에 연결된 장치에 할당한 내부 IP 주소를 의미한다. 사설 IP 주소는 로컬 네트워크에서 할당되며 다른 네트워크의 IP 주소와 중복이 가능하다. 대신 동일한 로컬 네트워크에 연결된 장치에는 같은 사설 IP 주소를 할당할 수 없다.사설 IP 주소는 IANA(인터넷 할.. 2024. 12. 26.
시스템 콜(System Call) 시스템 콜(System call)이란?응용 프로그램 요청에 따라서 운영체제의 커널 서비스를 받기 위한 일종의 함수 호출을 의미한다. 즉 커널 영역의 기능을 사용자 모드에서 사용 가능하게 하며, 프로세스가 하드웨어에 직접 접근해서 필요한 기능을 사용할 수 있게 해준다. Library Functions (시스템 콜을 호출)종류 : printf(), scanf(), fopen(), fclose(), gets(), puts(), getw(), fread(), fseek()System Calls (커널 함수로도 불림)종류 : open(), create(), close(), read(), write(), lseek(), unlink() 운영체제는 I/O 입출력 장치를 보호하기 위해 두 가지 모드로 구동된다... 2024. 12. 26.
JWT (JSON Web Token) JWT란JSON 객체를 이용해 당사자 간에 안전하게 정보를 전송하기 위해 만들어진 것으로, 인증에 필요한 정보를 암호화하여 담은 토큰을 의미한다. JWT의 구성 요소 Header{ "alg": "HS256", "typ": "JWT"}헤더는 서명 알고리즘의 종류(HMAC SHA256 또는 RSA)와 토큰 유형이 담겨져 있다. Payload{ "sub": "1234567890", "name": "hyeon", "iat": 1516239022}클레임(전달하려는 정보)이 담겨져 있는 부분으로 시스템에서 실제로 사용되는 정보에 대한 내용을 의미한다.이 부분은 수정이 가능하고 노출이 가능하므로 ID와 비밀번호와 같은 개인 정보가 아닌 토큰의 만료 기간이나 발급 시간 등을 담아야 한다.추가로 Payload에.. 2024. 12. 26.
포트(Port) 포트포트란 IP 내에서 프로세스를 구분하기 위해 사용하는 번호로 16비트의 논리적 할당(65,536개)이다. IP 주소가 어떤 PC인지 구분한다면 포트번호는 해당 PC에서 접속할 수 있는 통로(채널)을 의미한다. 포트번호는 잘 알려진 포트(0번~1023번), 알려진 포트(1024번~49151번), 동적 포트(49152번~65535번)으로 나누어져 있다. 잘 알려진 포트 : 어떤 특권을 가진 서비스에 의해서 사용될 수 있도록 이미 예약된 번호를 의미한다.알려진 포트 : 서버 소켓으로 사용하는 포트이다.동적 포트 : 매번 접속 시 포트번호가 동적으로 부여된다.잘 알려진 포트 목록 :FTP : 21번SSH : 22번TELNET : 23번DNS : 53번HTTP : 80번HTTPS : 443번 2024. 12. 26.
문자 집합(Character Set) 컴퓨터는 사람이 일반적으로 사용하는 10진수 숫자를 어떻게 저장할까?예를 들어 50이라는 숫자를 메모리에 저장한다고 하면 컴퓨터는 2진수로 (110010) 바꿔서 저장을 하게 된다.왜냐하면 컴퓨터는 0, 1 중 하나만 담을 수 있는 비트라는 최소 단위를 가지고 정보를 처리하기 때문이다.(메모리는 작은 전자 스위치인 트랜지스터로 이루어져 있는데 전기가 흐르거나, 흐르지 않는 상태로 0, 1 표현) 그렇다면 지금 사용하고 있는 한글, 영어 등의 문자는 어떻게 컴퓨터가 받아들일까?사람들은 문자나 기호를 컴퓨터에서 사용할 수 있도록 집합을 정의하였는데 이를 문자 집합이라고 한다.즉 문자의 경우 이 집합에 정의된 내용에 따라 숫자로 변환하고 이를 2진수로 바꾸어서 저장하는 것이다.문자 인코딩 → 문자나 기호를 컴.. 2024. 12. 26.
[네트워크] IP, TCP, UDP 네트워크란?상호 연결되어있는 사람들이나 사물들로 이루어진 그룹이나 시스템으로 사람이나 사물을 점으로 표시하고 그들 간의 관계를 선으로 표시한 것을 의미한다.즉 컴퓨터 네트워크란 컴퓨터(점)들이 랜선(선)으로 연결되어 있는 시스템을 뜻한다.인터넷이란?네트워크들의 연결이라는 의미로 연결되지 않은 고립된 네트워크(내부망) 역시 존재한다.IP (Internet Protocol)네트워크를 연결할 때 원활한 통신을 위해 정한 프로토콜(규약)을 의미한다.OSI 7계층 중 3계층에 해당하며, 지정한 IP 주소에 데이터를 패킷 단위로 나누어서 전송하고, 지정된 받는 과정을 통해 인터넷 상의 다양한 기기들과 통신할 수 있다.이러한 IP 프로토콜은 비연결성과 비신뢰성의 특징을 지닌다.비연결성 : 송신자와 수신자가 서로 연결.. 2024. 12. 26.
웹 브라우저 요청 흐름과 DNS 만약 우리가 구글에 hello를 검색한다면 어떤 일이 발생할까?요약하자면 다음과 같은 순서로 요청이 실행된다.웹 브라우저에 URL을 입력한다. (https://www.google.com/search?q=hello)DNS 서버에서 해당 도메인 이름으로 IP를 얻어오고 port 번호의 경우 생략되어 있다면 http(80), https(443)으로 지정IP, Port 번호로 HTTP 요청 메세지를 생성소켓 라이브러리를 통해 OS로 전달TCP / IP 계층에서 헤더 부분에 IP, Port를 넣어 3 way handshake 과정을 통해 클라이언트와 서버 간에 논리적인 연결을 함연결이 완료되면 생성된 HTTP 요청 메세지를 TCP 세그먼트 단위로 나누어서 TCP / IP 계층에 전달IP 계층에서 해당 TCP 세그.. 2024. 12. 26.