[네트워크] 다중화(Multiplexing)와 역다중화(Demultiplexing)
·
⚙️ CS/네트워크
멀티플렉싱과 디멀티플렉싱은 호스트 간 통신을 애플리케이션 간 통신으로 확장하는 핵심 기능이다. ✅ 다중화 (Multiplexing): 애플리케이션 프로세스의 데이터를 모아 세그먼트로 생성하여 네트워크 계층에 전달하는 과정 Transport 계층의 다중화는 하나의 네트워크 인터페이스를 공유하면서도 각 애플리케이션의 데이터를 정확히 분리하여 처리할 수 있게 해 준다. 📍UDP의 다중화 UDP 소켓 = 목적지 IP + 목적지 포트 번호 클라이언트가 UDP 소켓 생성 시, 트랜스포트 계층이 임의 포트 자동 할당서버는 bind()를 통해 고정 포트에 소켓을 바인딩세그먼트 전송 시:트랜스포트 계층이 출발지/목적지 포트 번호를 포함해 세그먼트 생성수신 측은 세그먼트의 목적지 포트 번호를 기준으로 소켓을 찾아 데이..
[네트워크] 포워딩과 라우팅
·
⚙️ CS/네트워크
✅ 포워딩 (Forwarding): 패킷이 라우터의 입력 링크에 도달했을 때 라우터가 그 패킷을 적절한 출력 링크로 이동시키는 것 매우 짧은 시간 단위 (나노초 단위)보통 하드웨어(데이터 평면)에서 실행 📍포워딩 테이블 라우터는 라우팅 알고리즘으로 생성된 라우팅 테이블을 기반으로, 실제 전송에 필요한 필수 정보만 따로 구성한 포워딩 테이블을 사용한다. 라우터는 패킷의 목적지 IP 주소를 가장 긴 접두어(prefix match) 방식으로 비교하여 가장 구체적으로 일치하는 항목을 찾아 해당 인터페이스로 전송한다. 💡 예시목적지 주소 범위 (Prefix) 링크 인터페이스11001000 00010111 00010000 00000000 ~ 11111111 11111111 11111111 11111111011..
[네트워크] 로드 밸런싱 (Load Balancing)
·
⚙️ CS/네트워크
✅ 로드 밸런싱 : 클라이언트의 요청을 여러 서버에 분산시켜 서버의 부하를 줄이는 기술수 많은 트래픽이 하나의 서버에 집중된다고 가정해보자.이 경우, 우리가 선택할 수 았는 방법은 다음과 같이 두 가지이다. 📍 Scale-Up (수직적 확장): 서버의 하드웨어 성능을 올리는 방법 기존 서버 자체의 성능을 향상CPU나 메모리의 성능을 업그레이드하지만, 현실적으로 비용이 많이 들 수 있음 📍 Scale-Out (수평적 확장): 서버의 개수를 늘려서 여러 대의 서버가 일을 나누어 처리하는 방법 기존 서버와 동일하거나 낮은 성능의 서버를 두 대 이상 운영트래픽을 여러 서버에 균등하게 분상해주는 로드밸런싱 기술이 필요 ✅ 로드 밸런서: 로드 밸런싱 역할을 수행하는 장치 로드밸런싱에는 두 가지 계층 로..
[네트워크] DHCP
·
⚙️ CS/네트워크
✅ DHCP (Dynamic Host Configuration Protocol): IP 주소 및 기타 네트워크 설정 정보를 클라이언트에게 자동으로 할당해 주는 프로토콜 애플리케이션 계층 프로토콜UDP 기반DHCP는 클라이언트가 IP 주소가 없는 상태에서도 통신해야 하기 때문에 UDP를 기반으로 한다.초기 Discover 단계는 브로드캐스트 전송으로 이루어져야 하므로 이를 지원하는 UDP가 적합하다.기타 네트워크 설정 정보란서브넷 마스크 (Subnet Mask)기본 게이트웨이DNS 서버 주소도메인 이름임대 기간 (Lease Time)서버 설정에 따라 다르며, 일반적으로는 1~24시간 또는 7일이 많이 사용된다.임대 시간이 절반이 지나면 클라이언트는 자동으로 갱신 요청(Renew)을 시도하여 IP 주소를 연..
[네트워크] SOP와 CORS & REST
·
⚙️ CS/네트워크
SOP와 CORS 두 정책은 모두 출처(origin)와 관련된 개념이다.출처는 URL의 프로토콜, 호스트, 포트 3가지로 정의된다. ✅ SOP (Same Origin Policy): 같은 출처(same origin)에 한해서 리소스를 허용하는 정책 = 다른 출처의 리소스와 상호 작용하는 것을 제한하는 정책 앞서 말했듯이 URL의 프로토콜, 호스트, 포트가 모두 같은 출처를 동일 출처라고 한다. CSRF, XSS 등의 보안 공격으로부터 안전하다.하지만, 외부에서 데이터를 불러올 수 없다. 📍 동일 출처 예시`http://store.com/dir/page.html` 를 기준으로 동일 출처인지 비교하면 다음과 같다.`http://store.com/dir2/page.html`는 동일 출처`http://..
[네트워크] HTTPS 프로토콜
·
⚙️ CS/네트워크
🔗 Before: HTTPhttps://dev-heyjin.tistory.com/entry/Network-HTTP-Protocol [네트워크] HTTP 프로토콜✅ HTTP(HyperText Transfer Protocol)란?: 애플리케이션 계층의 프로토콜로, 웹 서비스 통신에 사용 웹 브라우저와 서버 간에 텍스트, 이미지, 영상, JSON 등의 데이터를 주고받을 때 사용된다.기본적으로 8dev-heyjin.tistory.com ✅ HTTPS(Hypertext Transfer Protocol Secure)란?: 인터넷상의 정보를 암호화하기 위해 SSL 프로토콜을 이용해 데이터를 전송 HTTP는 평문 텍스트, 즉 암호화되지 않은 텍스트를 전송하는 TCP 프로토콜의 일종이다. 여기에 S(Secure)를 ..
[네트워크] 소켓
·
⚙️ CS/네트워크
✅ 소켓 (Socket): 네트워크 상에서 동작하는 프로그램 간 통신의 종착점 네트워크 통신 과정을 계층으로 나눴지만, 계층만 나눈다고 해서 바로 통신이 가능한 건 아니다.각 계층의 프로토콜은 통신 규칙일 뿐이고 실제로 사용하려면 이를 구현할 함수들이 필요하다.소켓은 이런 함수들을 이미 구현해 둔 형태로, 개발자는 복잡한 네트워크 원리를 몰라도 손쉽게 통신 프로그램을 만들 수 있다. 응용 프로그램은 소켓을 통해 전송 계층에 데이터를 전달하고 이 과정을 통해 통신이 이루어진다. 📍소켓 통신서버와 클라이언트의 프로세스는 실시간 양방향 통신을 하기 위해 각각 소켓을 생성해야 한다.소켓은 데이터를 주고받기 위한 연결 지점으로, 통신하려면 서버와 클라이언트 양쪽 모두 소켓이 필요하다.각 프로세스는 고유한 포트 ..
[운영체제] 파일 시스템
·
⚙️ CS/운영체제
✅ 파일: 운영체제에서 저장장치의 데이터를 관리하기 위한 논리적 단위 일반적으로 프로그램, 데이터 등을 의미이름, 크기, 위치, 생성 시간, 접근 권한 등 다양한 메타데이터를 가짐운영체제는 이러한 속성을 바탕으로 파일을 효율적으로 관리 ✅ 파일 디스크립터 (File Descriptor): 유닉스 계열 시스템에서 프로세스가 파일을 다룰 때 사용하는 정수값 유닉스/리눅스 시스템에서는 디바이스, 디렉터리, 소켓, 파이프 등을 모두 파일로 취급프로세스가 파일을 열면, 가장 작은 미사용 정수값이 파일 디스크립터로 할당됨이 정수값은 커널의 Open File Descriptor Table을 통해 실제 파일과 연결됨테이블에는 다음과 같은 정보가 저장:현재 읽기/쓰기 위치를 나타내는 파일 오프셋파일 접근 권한과 플래..