티스토리 뷰
1. 네트워크
- 서로 다른 기기가 통신하기 위해 유선 혹은 무선으로 연결되어 있는 것
- 라우터: 여러 대의 컴퓨터나 기기를 연결하여 네트워크를 구성하거나, 여러 네트워크 간의 중계 역할을 하는 장치
- 인터넷 : 여러 네트워크가 서로 연결되는 것
1) IP 주소: 네트워크 환경에서 사용하는 내 컴퓨터 주소(예: 192.168.123.132), 변동가능성 있음
* IP 서브넷 마스크: 로컬 네트워크 내부에서 접속한호스트의 IP 대역을 외부 네크워크와 명확하게 구분할 수 있는 수단
=> 32비트의 숫자로 구성됨 → IP 주소를 네트워크 주소와 호스트 주소로 분리
- 네트워크 ID (예: 도로명) →1*8
- 호스트 ID (예: 건물 번호) → 0*8
** 서브넷: 하나의 네트워크가 분할되어 나눠진 작은 네트워크
*** 서브네팅: 네트워크를 분할하는 것
2) MAC 주소: 네트워크 환경 내에서 사용하는 물리적인 컴퓨터 주소, 랜카드에 붙어있는 시리얼 넘버
3) IP 클래스: IP주소를 네트워크 주소와 호스트 주소로 구분하는 방법
클래스 | 첫번째 옥텟(2진수) | 첫번째 옥텟의 값의 범위(10진수) | 이론적 IP주소 범위 |
A | 0xxx xxxx | 0 ~ 127 | 0.0.0.0 ~ 127.255.255.255 |
B | 10xx xxxx | 128 ~ 191 | 128.0.0.0 ~ 191.255.255.255 |
C | 110x xxxx | 192 ~ 223 | 192.0.0.0 ~ 223.255.255.255 |
D | 1110 xxxx | 224 ~ 239 | 224.0.0.0 ~ 239.255.255.255 |
E | 1111 xxxx | 240 ~ 255 | 240.0.0.0. ~ 255.255.255.255 |
4) IPv4: 총 32비트의정보, 최대 2^32개 (약 43억개) => 8비트.8비트.8비트.8비트
5) IPv6: IPv4 개수가 모자라 생김, 128비트의 값을 가짐. 4자리의 16진수 숫자 8개로 표기
6) NAT(Network Address Translation) : IP 주소 등을 재기록하여 네트워크 트래픽을 주고 받는 기술
- 인터넷의 공인 IP 주소를 절약할 수있고, 사용자들의 고유한 사설망을 인터넷이라는 공급망을 통해 침입하는 사람들로부터 보호 가능
* 트래픽: 서버와 스위치 등 네트워크 장치에서 일정 시간 내에 흐르는 데이터 양
2. IP주소확인하기
- ipconfig로 터미널에서 확인 가능 (리눅스는 ifconfig)
- 리눅스는 sudo apt install net-tools > ifconfig
- apt: 리눅스에서 패키지 관리를간편하고 효율적으로 할 수 있도록 도와주는 명령어
3. PORT
- 동일한 IP에서 서로를 구분하는 방법, IP 주소 뒤에 콜론(:)으로 구분하여 나타냄
- 포트 번호: 네트워크에서 기기의 특정 애플리케이션이나 서비스에 연결할 수 있도록 식별하는 번호
- 중복해서 사용불가, 0~1024번은 통신 규약에 따라 이미 정해져 있음
- 예: IP주소가 아파트라면, 포트번호는 호수
- 리눅스에서 포트 번호 확인하는 방법
# 열려있는 모든 포트 표시
netstat -nap
# Listen 중인 포트 표시
netstat -nap | grep LISTEN
# 확인하려는 포트번호 상태 확인
netstat -nap | grep 포트번호
4. DNS
- 도메인 이름과 IP 주소 간의 변환을 처리하는 시스템, 인터넷 서비스 제공자(ISP)가 제공하는DNS 서버를 통해 실행
* 도메인이름: IP 주소 대신 기억하기 쉬운 도메인 이름을 사용, IP와 마찬가지로 인터넷에서 서로를 식별할 때 사용되는 고유한 이름
** 인터넷 서비스 제공자: 고객에게 인터넷에 접근할 수 있도록 서비스를 제공하는 기업(kt, sk, lg 등)
*** 최상위 도메인(TLD) : 도메인의 가장 오른쪽 부분으로 국가 코드나 일반 TLD 등의 형태로 구성되며 전 세계적으로 공유
(예: .kr, .com 등)
1) 동작 과정
- 웹 브라우저에 도메인 이름을 입력해 접속
> DNS 서버에서 도메인 이름을 실제 IP 주소로 변환해줌
> IP 주소를 통해 웹 서버에 페이지를 요청
> 웹 브라우저에 웹 페이지가 나타남
5. 서버와 클라이언트(각각을 호스트라고도 한다)
- 서버: 다른 컴퓨터나 디바이스에서 요청하는 데이터나 서비스로 응답하는 컴퓨터 시스템(결국은 컴퓨터와 같음)
- 클라이언트: 다른 컴퓨터나 디바이스에 있는 데이터나 서비스를 요청하는 시스템
- 클라이언트가 서버에 요청을 보내면, 서버는 그 요청을 처리하고 그 결과를 클라이언트에게 반환하는 형태로 작동
- 호스팅 : 서비스를 다른 클라이언트가 접근할 수 있도록 게시하는 것
6. TCP/UDP
- 프로토콜: 네트워크에서 서로의 컴퓨터가 원활한 인터넷 통신을 하기 위한 규칙(예: IP-인터넷에서 데이터를 주고 받는 규칙)
1) TCP : 신뢰성 있는 데이터 전송을 지원하는 연결 지향형 프로토콜, 패킷의 손실을 검사하고 순서가 바뀌지 않도록 보장
네트워크에서 데이터를 전송할 때 한번에 전송하는 것이 아니라, 패킷이라는 데이터 단위로 데이터를 전송함
안정성 높은 통신을 가능하게 해줌(파일, 이메일 전송 등)
* 패킷: 네트워크에서 데이터를 전송하는 단위
a. 3-Way Handshake: TCP가 통신을 시작하기 전에 수행하는 과정
- SYN 패킷과 ACK 패킷을 주고 받으면서, 서로 통신을 시작할 준비가 되어있는지 확인하는 과정
b. 4-Way Handshake: TCP가 연결을 종료할 때 수행하는 과정
- FIN 패킷과 ACK 패킷을 주고 받으면서, TCP 연결을 종료할 준비가 되었는지 확인하는 과정
- 아직 도착하지 않았는데 연결을 종료할 경우 데이터가 유실될 수 있어 확인하는 과정임
2) UDP: 신호 절차 없이 일방적으로 데이터를 전달하는 비연결형 프로토콜, 데이터의 신뢰성은 낮지만 속도가 빠름
(연결 설정이 없음, 빨라서 실시간 스트리밍에 사용)
7. HTTP
- 웹 브라우저와 웹 서버 간의 통신에서 HTML 문서, 이미지, 오디오, 비디오 등의 리소스를 전송하기 위해 사용하는 규칙
* HTML: 웹 페이지를 작성하기 위한 마크업 언어, 기호나 태그를 이용해 문서의 내용과 구조를 논리적으로 나타내는 것
- 클라이언트는 HTTP 요청 메세지를 서버에 전송하고, 서버는 HTTP 응답 메세지를 클라이언트에 반환
1) 무상태(stateless)
- 서버가 클라이언트의 상태를 보존하지 않음
- 클라이언트의 요청은 독립적으로 처리, 서버는 요청에 대한 응답만 전송=> 서버의 확장성을 높일 수 있다.
2) 비연결성
- 클라이언트 요청과 서버의 응답 사이에 연결을 유지하지 않음
- 서버는 불필요한 연결을 줄이고 많은 클라이언트의 요청을 동시에 처리할 수 있음
8. HTTPS
- 기존 HTTP 프로토콜에서 데이터를 암호화하고 인증하는 과정을 추가하여 보안을 강화한 프로토콜
- HTTP 프로토콜은 포트번호 80을 사용하지만, HTTPS은 443번을 사용함
9. HTTP 메시지
- 요청 메시지와 응답 메시지에 따라 담기는 내용의 차이가 있음
HTTP 메시지 | 요청 | 응답 |
Start Line | [HTTP Method] [Request target] [HTTP version] 예: GET /index.html HTTP/1.1 |
[HTTP version] [Status code] [Status message] 예: HTTP/1.1 200 OK |
Header | [Header Field]: value | [Header Field]:value |
Blank Line | ||
Body |
1) 요청 메시지
a. Start Line: [HTTP Method] [Request target] [HTTP version] - 예: GET /index.html HTTP/1.1
- HTTP Method : 요청의 의도(GET, POST, PUT, DELETE 등)
- Request target: 요청하는 대상의 URL
- HTTP version: HTTP 프로토콜 버전
b. Header: [Header Field]: value
- Host: 요청하는 호스트의 이름 및 포트번호
- User-agent: 클라이언트가 사용하는 웹 브라우저 정보
- Referer: 직접에 머물렀던 웹사이트 URL
- Accept: 클라이언트가 원하는 데이터 타입 및 우선 순위
- If-Modified-Since: 값으로 지정한 날짜 이후에 수정된 자원을 요청
- Authorization: 클라이언트가 가지고 있는 서버에 대한 권한 정보
- Origin: 요청이 시작된 주소 정보
- Cookie: 서버에 의해 설정된 클라이언트의 쿠키 정보
c. Blank Line : 헤더와 본문을 식별
d. Body: 전송할 데이터
2) 응답 메시지
a. Start Line: [HTTP version] [Status code] [Status message] => 예: HTTP/1.1 200 OK
- HTTP version: HTTP 프로토콜 버전
- status code: 요청에 대한 성공, 실패와 같은 상태 정보
(2xx: 성공, 3xx: 리다이렉션-다른 페이지로 가야함, 4xx: 클라이언트의 오류, 5xx: 서버의 오류)
- status message: 응답 상태에 대한 설명
b. Header: [Header Field]:value
- Location: 리다이렉션 해야하는 페이지의 URL
- Server : 서버에서 사용하는 소프트웨어 정보
- Age: 응답이 생성되고 지난 초 단위의 시간
- Referrer-Policy: 요청 메시지에 포함할 Refer 정보의 양을 제어
- WWW-Authenticate: 클라이언트가 서버에 인증해야 하는 방식
- Proxy-Authenticate: 클라이언트가 프록시 서버로 인증 정보를 보내는 방식
- Content-Type: 응답되는메시지의 데이터 타입
* 프록시 서버란? 클라이언트와 서버 간의 인터넷 연결에서 중계 역할을 하는 서버
c. Blank Line
d. Body
10. SMTP
- 전자 메일을 보내는데 사용되는 프로토콜
- 유저 →(이메일 클라이언트) → 서버 →수신자의 메일 서버로 이메일 전송
11. FTP(File Transfer Protocol)
- 클라이언트와 서버 간에 파일 전송을 위한 연결을 설정하고, 파일을 업로드 및 다운로드 할 수 있게 해주는 프로토콜
- 3-Way Handshake 방식으로 연결하여 대용량의 파일을 보낼때 사용
- 최근에는 HTTP나 SSH를 써서 자주 사용되지 않음
12. SSH(secure shell)
- 클라이언트가 서버에 로그인하여 원격으로 컴퓨터를 제어하거나 파일 전송 등을 할 수 있게 해주는 프로토콜
- 클라이언트가 ip주소나 호스트 이름을 입력해 서버에 접속 → 서버에서 키를 전달 → 키를 바탕으로 사용자 이름, 암호 등 인증 정보를 서버에 저장
- 데이터 전송 과정에서 데이터를 암호화해 보안이 뛰어나다
- 윈도우, 맥, 리눅스에서제공하는 터미널을 이용해 작업 가능
13. 기타 프로토콜
- DHCP: 네트워크에 접속하는 컴퓨터 ip주소 자동 할당
- POP3: (메일 수신) 메일 서버에서 이메일을 받아와 클라이언트 로컬 저장소에 메일 저장
- IMAP: (메일 수신) 메일 서버에서 받아온 이메일을 클라이언트 원격 저장소에 저장
- SNMP: 네트워크 장치(라우터, 스위치, 모뎀 등 물리적 장치)의 상태를 모니터링, 관리
14. 보안
- SSL(Secure Sockets Layer): 클라이언트와 서버 간에 전송되는 데이터를 암호화하여 통신을 보호하고 보안을 유지하기 위해 사용되는 프로토콜
- TLS(Transport Layer Security-전송 계층): SSL과 동일한 기능을 하면서 보안성이 더욱 강화되었음, 웹 브라우저와 서버 간의 통신, 이메일 및 파일 전송 등 다양한 곳에서 사용
15. 인증/인가
- 인증: 보안적인 측면에서 사용자가 누구인지 확인
- 인가: 사용자가 접근할 수 있는 자원에 대한 권한 부여
16. 쿠키
- 서버에 의해 클라이언트에 저장되는 데이터 파일(기본적으로 웹서버에서PC로 보내는 작은 파일들)
- 사용자의 인증을 도와줌
- 만료 기간이 있어 시간이 지나면 자동 삭제됨
- 서버의 부하가 줄어들지만, 탈취되면 개인정보 노출될 수 있다
- 로그인 정보, 방문 기록 등을 저장
- 예: 쇼핑몰-비회원 장바구니
17. 세션
- 클라이언트의 상태 정보를 서버 측에서 유지
- 보안성은 높지만 서버에 많은 자원이 필요하기 때문에 부하가 걸릴 수 있음
18. JWT(JSON Web Token)
- HTTP는 상태를 저장하지 않음(stateless)
- 웹에서 사용자의 정보를 어딘가에는 저장해야 함
- 쿠키는 클라이언트에 사용자 정보를 저장, 세션은 서버에 저장
=> 두 방법 모두 문제가 있음! => JWT (보안성, 확장성에서 좀 더 우수함)
* 하지만 상황에 따라 쿠키나 세션이 좋을 수 있다
JWT도 탈취당할 위험이 있다, 데이터가 인코딩 되어있지만 암호화된것은 아님(보안성이 완전 높다고 하긴 어려움)
: 서버에서 토큰 정보를 유지하지 않아도 되기 때문에 서버에 대한 부담을 줄일 수 있으며, 서명을 통해 위조나 변조를 감지할 수 있고, 유효 기간 설정을 통해 보안성을 높일 수 있다.
웹의 사용자 인증 정보를 안전하게 관리하기 위한토큰
- Header: 어떤 방법으로 인코딩을 할 지(토큰 유형 등 관련된 서명 알고리즘 정의)
- Payload:어떤 정보를 저장할 지(토큰 발급자, 토큰 유효기간 등)
- signature(서명): 어떤 사람의 것인지를 증명해주는 키(랜덤한 긴 문자로 설정해주는 것이 안전함), 보안 서명을 통해 메시지가 전송과정에서 바뀌지 않을 것을 확인
=> 이 데이터들을 인코딩한 형태로 저장
19. 캐시
*캐싱: 오랜 시간이 걸리는 작업의 결과를 저장해서 시간과 비용을 필요로 회피하는 기법
- 웹 페이지 요소, 이미지, 오디오, 비디오 파일 등을 저장하기 위한 임시 저장소
- 웹 페이지가 빠르게 렌더링 할 수 있도록 도와준다
- 삭제를 하려면 사용자가 수동으로 해야 한다
1) IOPS 증가 : 지연 시간을 줄이고, 유사한 디스크 기반 데이터베이스에 비해 훨씬 높은 요청 속도 제공
2) 데이터베이스 비용 절감: 단일 캐시 인스턴스는 수십만 IOPS를 제공할 수 있으며, 수 많은 데이터베이스 인스턴스를 대체할 수 있어 총 비용이 절감됨
3) 애플리케이션 성능 개선: 메모리는 디스크보다 훨씬 속도가 빨라 인메모리 캐시에서 데이터를 읽는 속도가 매우 빠름
4) 백엔드 로드 감소: 읽기 로드의 상당 부분을 백엔드 데이터베이스에서 인 메모리 계층으로 리디렉션함으로써 작업 급증 시에 작동이 중단되지 않도록 보호
20. OSI 7계층
계층 | 구분 | 계층 이름 | 단위 | 설명 | 예 | 프로토콜 |
7 | 상위층 | 응용 | data (메시지) |
응용 프로세스간 정보 교환 담당 | 크롬,이메일,DB관리 | HTTP, SMTP, SSH |
6 | 표현 | data | 데이터를 어떻게 표현할지 정하는 역할 | 인코딩/디코딩 암호화/복호화 |
JPEG, MPEG | |
5 | 세션 | data | 통신 장치간의 상호작용 및 동기화 제공 통신을 하기 위한 세션을 확립,유지,중단 |
TCP/IP 세션을 만들고 없앰 연결세션에서 데이터 교환/에러발생시 복구관리 |
SSL, TLS | |
4 | 하위층 | 전송 | Segment | 데이터 전송을 위해 오류 검출, 복구, 흐름제어, 중복검사 등 | 특정 방화벽 및 프록시 서버 | TCP, UDP, SCTP |
3 | 네트워크 | Packet | 한 네트워크에서 다른 네트워크로 통신하게 하는 계층 | 라우터 | IP, IPX, ARP | |
2 | 데이터링크 | Frame | 네트워크 장치 간 데이터를 전송하는 기능과 절차를 제공 (주로 1:1) |
MAC 주소, 브리지 및 스위치 | Ethernet, Token ring |
|
1 | 물리 | Bit | 전기 및 기계적인 신호를 주고 받는 역할을 하는 계층 | 전압, 허브 | 10BASE -t |
'AI > CS' 카테고리의 다른 글
[CS] 알고리즘 - 구현 (0) | 2025.03.25 |
---|---|
[CS] 운영체제 (0) | 2025.03.23 |
[CS] 리눅스 (0) | 2025.03.18 |
[CS] 컴퓨터개론 (0) | 2025.03.18 |
[CS] IT 리터러시 (0) | 2025.03.17 |
- Total
- Today
- Yesterday
- 빅데이터 분석기사
- 실기
- 아침운동
- SQL
- 고득점 Kit
- 오픽
- 다이어트
- 습관
- 30분
- llm
- Ai
- 갓생
- C언어
- opic
- 프로그래머스
- Python
- 줄넘기
- 영어회화
- 오블완
- 티스토리챌린지
- 뉴스
- 미라클모닝
- 아침
- 기초
- 운동
- ChatGPT
- IH
- 루틴
- 경제
- 스크랩
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |