| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 31 |
- RLD
- 알고리즘
- network
- tcp
- 비트마스킹
- Spring Boot
- 누적합
- 부팅 장애 대응
- 깃
- Prefix sum
- 깃허브
- github
- bitmasking
- spring
- 로그 수집
- Linux
- SlidingWindow
- 슬라이딩 윈도우
- udp
- Domain Name Space
- 스프링
- git
- 다이나믹 프로그래밍
- 네트워크 관리 및 진단
- TwoPointer
- 리눅스
- 네트워크
- AppArmor
- HTTP/2
- HTTP/3
- Today
- Total
목록CS/Network (7)
kimgusxo 님의 블로그
1. NAT(Network Address Translation)란?NAT(Network Address Translation): 내부 네트워크의 사설 IP 주소를 외부 인터넷에서 사용하는 공인 IP 주소로 변환해주는 기술이다. 1-1. 왜 NAT가 필요한가?IPv4는 32비트(약 43억 개)로 한정되어 있어 전 세계 기기를 모두 할당하기에 부족하다.이를 해결하기 위해 사설 IP 대역을 내부망에서 자유롭게 사용하고 외부 인터넷에 접근할 때 NAT 장치를 통해 공인 IP로 변환한다.즉, NAT는 주소 절약과 보안(내부 구조 은닉)의 두 가지 역할을 동시에 수행한다. 1-2. NAT 원리내부 장치의 사설 주소는 인터넷에서 인식할 수 없다.NAT 장치(보통 라우터)가 출발지 IP와 포트를 바꾸어 외부로 송신한다...
1. IP주소란?IP주소는 네트워크 환경에서 컴퓨터 간 통신하기 위해 각 컴퓨터에 부여된 네트워크 상의 주소이며, 네트워크 부분과 호스트 부분으로 나뉜다.네트워크 부분: 라우팅에 쓰이며 이 앞부분이 같으면 같은 서브넷을 의미한다.호스트 부분: 같은 서브넷 안에서 개별 장치를 식별한다.클래스: 하나의 IP 주소에서 네트워크 부분과 호스트 부분을 나누는 방법IP주소가 낭비되는 현상이 생겨 클래스 대신 CIDR이라는 방식을 채택함 2. IPv4 주소 구조와 CIDRIPv4: IP주소를 32비트 길이의 문자열로 나타낸 것이며 0~255까지의 숫자를 점으로 구분하여 표현한다.(ex: 192.168.0.1)CIDR(Classless Inter-Domain Routing): 클래스 방식 대신 임의 길이의 프리픽스로 ..
1. DNS란?사람이 기억하기 쉬운 도메인 이름을 IP 주소로 바꿔주는 분산형 계층 데이터베이스이다.브라우저가 URL을 열기전에 반드시 거치는 "이름 해석"을 하는 부분 2. DNS 구성 요소 및 역할Domain Name Space: DNS가 저장/관리하는 트리 형태의 계층적 구조를 의미하며 상위에서 하위로 위임(Delegation) 된다. 이 구조를 네임 서버가 관리한다.Name Server: 도메인 정보를 보관하고 질의에 응답하는 서버의 총칭Resolver: 클라이언트 측에서 DNS 질의를 만들고 전달하며 캐싱까지 수행하는 소프트웨어구성 요소역할비고Stub Resolver클라이언트(브라우저/OS)에 존재하는 아주 얕은 수준의 리졸버로컬 캐시 확인 후 재귀 리졸버에게 질의 전달Recursive Reso..
1. HTTP(Hypertext Transfer Protocol)란?Hypertext Transfer Protocol의 약자로 웹 브라우저와 웹 서버간의 웹 리소스(HTML, 이미지, 텍스트 등)를 주고받기 위한 통신 규약이다.HTTP를 통해 전달되는 자료는 "http:"로 시작하는 URL로 조회할 수 있으며 기 포트는 80번이다. 2. HTTP의 위치와 역할어플리케이션 계층의 프로토콜이며 전송 계층(TCP/QUIC) 위에서 리소스(URI)에 대한 요청/응답을 교환한다."문서 전송"에서 시작했지만 오늘날은 JSON, 파일, 스트리밍 등 범용 어플리케이션 통신 역할을 한다.HTTP 자체는 무상태(Stateless)이며 상태는 쿠키/세션/토큰 등 상위 모델을 통해 유지한다. 3. HTTP 메세지 구조 3-..
1. TCP와 UDP를 구분해서 설계하는 이유네트워크는 동일하지 않은 요구사항을 가진 여러 문제를 동시에 해결해야한다. 어떤 문제는 "순서가 정확"해야하고 어떤 문제는 "지연이 낮아야"한다를 최우선으로 둔다.TCP(Transmission Control Protocol)는 신뢰성과 순서를 제공하는 연결 지향 프로토콜이다.UDP(User Datagram Protocol)는 단순성과 낮은 지연을 추구하는 비연결 프로토콜이다.따라서 요구사항에 맞춰 프로토콜을 설계해야한다. 2. TCP vs UDP관점TCPUDP연결3-way handshake로 연결을 수립하고 4-way handshake로 종료한다.연결 없이 바로 전송한다.신뢰성손실/중복/순서를 스스로 복구한다.신뢰성을 제공하지 않으며 상위에서 필요 시 구현한다..
1. OSI 7계층이란?초창기 컴퓨터 간의 통신 시 하드웨어와 소프트웨어의 호환을 감안하지 않고 개발하여 문제가 생김따라서 국제표준화기구(ISO)에서 서로 다른 컴퓨터 간 통신을 7계층으로 구분한 모델을 규정하여 사용중이다.상위 계층은 "의미"를 담당하며 하위 계층은 "전달"을 담당하며 한 계층의 변경이 다른 계층에 최소한으로만 영향을 준다. 1-1. 물리 계층 - 신호와 매체물리 계층은 전기/광 신호가 케이블이나 무선 매체를 통해 안정적으로 전달되도록 규격을 정의한다.전이중/반이중, 신호 인코딩, 속도, 커넥터 규격이 물리 계층에 속한다.장거리에서는 감쇠와 잡음이 품질을 떨어뜨리므로 리피터. 광 모듈 같은 장비가 사용된다.링크 불안정, 간헐적 패킷 손실, 낮은 처리량으로 문제를 식별한다. 1-2. 데이..
1. 네트워크란?Net과 Work의 합성어로 두 개 이상의 컴퓨터나 디바이스가 통신매체를 통해 연결되어 서로 정보를 주고 받을 수 있는 연결된 구조이다.백엔드 서비스는 사용자의 브라우저부터 데이터베이스, 외부 API까지 모두 네트워크로 연결되어있다.따라서 요청이 느리거나 실패하는 대부분의 문제는 네트워크 관점으로 분해하면 빠르게 원인을 찾을 수 있다 2. 네트워크가 제공하는 서비스 모델네트워크는 "원격의 두 끝단이 데이터를 교환할 수 있게 한다"는 서비스를 제공함일반적으로 최선형 전달(best-effort)이며 손실/지연/재정렬이 발생할 수 있다.상위 계층이 필요하면 재전송, 순서 보장, 암호화 같은 기능을 추가하여 만든다.하위 계층이 단순한 서비스를 제공하고 상위 계층이 필요한 기능을 더하는 방식은 계..