이 영역을 누르면 첫 페이지로 이동
시간의화살 블로그의 첫 페이지로 이동

시간의화살

페이지 맨 위로 올라가기

시간의화살

행복하세요

Computer Science/Computer Network

  • 시간의화살
[Data Communication] Point to Point Protocol / 3G

[Data Communication] Point to Point Protocol / 3G

2025.06.17
PPP는 2계층에서 동작하는 직접 연결용 프로토콜으로 말 그대로 두 지점 사이를 연결한다. Ethernet은 여러 장치가 공유하는 브로드캐스트 기반 LAN이고, PPP는 1:1 직렬 연결을 수행한다. PPP는 MAC 주소가 필요 없고, Ethernet은 전송만 하지만 PPP는 전송, 인증, 압축, 암호화 등을 모두 수행한다. Ethernet은 LAN 내부에서 쓰이고, 공유기가 WAN과 연결해서 ISP와 연결되는 경계선 역할을 수행한다면 PPP는 컴퓨터 하나가 직접 ISP 장비와 연결한다.Ethernet도 없고 MAC 주소도 없고 DHCP도 안 되는 환경에서 IP를 사용해 1:1 연결을 처리할 수 있다. 1:1 직렬 연결이 필요한 경우가 많이 없고, Ethernet MAC DHCP 기술 등 다양한 대안..
[Data Communication] Media Access Control과 Ethernet

[Data Communication] Media Access Control과 Ethernet

2025.06.12
Media는 데이터가 흘러가는 통로로, 통신할 때 사용하는 물리적인 경로를 의미한다.여러 사람이 동시에 통신 매체를 사용하면 충돌이 발생할 수 있으니 적절한 제어가 필요하다. 시간을 나눠서 쓰는 TDMA 주파수를 나눠서 쓰는 FDMA코드를 나눠서 쓰는 CDMA 등 여러 Multiple Access기술을 사용하는데, 이 부분은 Multiplexing과는 다르다. Multiple Access는 여러 송신자가 같은 매체를 나눠서 사용하는 방식이고, Multiplexing은 여러 신호를 하나로 합쳐서 전송하는 기술이다. (송신자는 한명, 송신 데이터가 여러개) Pure ALOHA 프로토콜은 가장 초기 형태의 무선 통신 프로토콜으로, 누가 먼저 쓰는지 정하지 말고 그냥 보내는 Random Access 통신..
[Data Communication] 에러 제어와 ARQ

[Data Communication] 에러 제어와 ARQ

2025.06.11
디지털 데이터 전송 중 노이즈 등으로 비트가 변하는 오류가 발생할 수 있다. Parity Bit 데이터에 패리티 비트를 1비트 추가해서 전체 1의 개수를 짝수나 홀수로 맞춘다. 단일 비트 오류는 검출할 수 있지만, 오류 수정은 안되고 짝수 개의 비트 오류는 검출할 수 없다. Checksum데이터 블럭의 합을 사용해 오류를 검출한다.데이터를 여러 블럭으로 나눠 합계를 계산하고, 이 합의 보수를 체크섬으로 전송한다. 수신 측은 받은 데이터 + 체크섬이 0이 되는지 확인하는 방식이다. 빠르지만 역시 오류 수정은 불가능함 CRC (Cyclic Redundancy Check)다항식 데이터를 이진 다항식으로 바라보고 미리 정해진 Generator Polynominal으로 연산.나머지(R)가 CRC 코드이고, 수..
[Data Communication] 공유기와 네트워크

[Data Communication] 공유기와 네트워크

2025.06.02
스위치 - OSI 2계층에서 작동해 Local Area Network 내의 여러 기기들간의 연결을 처리한다. (유니캐스트)라우터 - OSI 3계층에서 작동해 LAN - WAN 간의 연결을 처리한다. 가정용 공유기는 스위치 + 라우터 + 무선AP 역할을 모두 수행하고, 네트워크를 탈 때는 여러 라우터를 거치게 된다. LAN을 구성하는 방식에는 여러 가지가 있다.이더넷 - 유선 통신 방식으로 이더넷 프레임 단위로 데이터를 전송한다. 와이파이 - 무선 통신 방식으로 WI-FI 프레임 단위로 데이터를 전송한다. 무선 통신을 수행할 때는 무선 단말기가 유선 LAN에 접속할 수 있도록 중계해주는 Access Point를 사용한다.즉, 와이파이를 사용하더라도 이더넷에 연결되어야하고, 이더넷을 통해 라우터로 연결..
[Data Communication] 물리 계층에서의 다중화

[Data Communication] 물리 계층에서의 다중화

2025.04.16
여러 사람이 동시에 이야기하면 같은 주파수, 같은 시간에 간섭이 발생해 무슨 말을 하는지 알아듣기 어렵다. 마찬가지로.. 여러 개의 전화기나 컴퓨터도 동시에 서로 같은 전송 매체를 통해 통신하려 하면, 신호가 겹치고 충돌이 발생해 서로의 데이터를 제대로 수신할 수 없다. 케이블, 무선, 광섬유 등 통신 채널은 한정되어있고, 여러 기기가 동시에 사용하려면 한 채널에서 여러 데이터를 보내는 기술이 필요하다.이 기술을 Multiplexing이라고 부르고, 송신 측에서는 Multiplexing으로 데이터를 전송했다면 수신 측에서는 Demultiplexing으로 합쳐진 데이터를 개별 데이터로 분리하는 작업을 수행해야 한다. TDM : 시간 단위로 나눠서 각각 전송하는 기법을 의미한다.FDM : 서로 다른 주파..
[Data Communication] 물리 계층에서의 데이터 전송

[Data Communication] 물리 계층에서의 데이터 전송

2025.04.02
디지털 통신은 컴퓨터가 이해할 수 있는 비트를 주고받는 일인데.. 소리나 영상 같은 아날로그 데이터를 전송하려면 데이터를 비트로 변환해야 한다. 이 과정에서 물리 계층이 개입되고, 이 계층은 전기 신호 / 소리 / 빛 등 아날로그 신호를 비트로 표현하는 역할을 수행한다.물리 계층에서는 유선 케이블을 사용할 때와 무선랜을 사용할 때 비트를 변환하는 방식이 다르다. 유선 케이블을 사용할 때는 라인코딩을, 무선랜을 사용할 때는 사인파를 조작한다.무선에서도 라인코딩을 전혀 사용하지 않는 건 아니지만, 통신 특성 상 유선에서는 디지털 비트를 다른 디지털 신호로 변환하는 라인코딩이 중요하다. 주파수는 두 가지 방식에서 모두 사용하지만.. 무선랜에서 좀 더 중요하게 다뤄진다. 아날로그에서의 대역폭 - 주파수 범위 ..
[Data Communication] Layer Packet Signal

[Data Communication] Layer Packet Signal

2025.04.01
브라우저를 통해 https://www.naver.com/ 으로 접속할 때 무슨 일이 발생할까? 먼저 운영체제가 로컬 DNS 캐시를 확인하고 히트된 경우 해당 IP주소를 바로 사용한다.히트되지 않은 경우 DNS 서버에 질의를 보내는데, 이 때 무선 랜카드와 무선 공유기를 사용한다. (유선의 경우 이더넷 케이블) 무선 공유기(AP)는 와이파이 신호를 받아 이더넷 패킷으로 변환하고 인터넷 라우터로 전달한다.공유기는 NAT로 내부 IP를 공인 IP로 변환해준다.집 인터넷 라우터는 공유기로부터 받은 요청을 ISP 네트워크로 전달한다. 요청 데이터는 광케이블을 통해 ISP 네트워크로 전송되고, ISP 네트워크에서 라우터가 패킷을 분석하고 인터넷으로 보내는데, 이 때 스위치는 패킷을 빠르게 전송하기 위해 적절..
[Nginx] nginx.conf

[Nginx] nginx.conf

2023.12.28
user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; access_log /var/log/nginx/access.log main; sendfile on; tcp_nopush on; keepalive_timeout 65; gzip on; server { listen 80; server_name 127.0.0.1; client_max_body_size 2M; location / { root /usr/share/nginx/html; i..
[Nginx] Timeout

[Nginx] Timeout

2023.12.24
엔진엑스에서의 타임아웃 설정은 크게 클라이언트 / 백엔드 두 가지로 나뉜다. 클라이언트 타임아웃 client_header_timeout 클라이언트가 HTTP 헤더를 서버로 전송하는데 걸리는 최대 시간을 지정한다. 연결이 너무 오래 걸려 서버 리소스를 과도하게 사용하는 연결을 끊어 서버를 보호하고, 의도적으로 헤더를 느리게 전송하는 방식의 공격을 방어한다. 기본 값은 60초이고, nginx.conf의 client_header_timeout 10s; 로 타임아웃 시간을 설정할 수 있다. client_body_timeout HTTP 요청 본문을 서버로 전송하는데 걸리는 최대 시간을 지정한다. header_timeout과 마찬가지로 기본적으로 60초로 설정되고 설정 파일을 통해 수정할 수 있다. 파일 업로드 같..
[Network] 백엔드 아키텍처

[Network] 백엔드 아키텍처

2023.12.21
Listener 네트워크를 통해 들어오는 연결 요청을 대기하고 수신하는 컴포넌트이다. 특정 IP주소와 포트에 바인딩된 소켓을 생성해 그 포트로 들어오는 네트워크 요청을 수신한다. 먼저 운영체제에서 제공하는 네트워크 API를 사용해 네트워크 소켓을 생성하고, 생성된 소켓을 특정 IP와 포트에 바인딩해 해당 소켓이 네트워크 요청을 수신할 수 있도록 한다. Acceptor Listener가 감지한 연결을 운영체제의 네트워크 API 중 accept를 사용해 수락한다. 연결이 수락되면 필요한 세션 정보를 초기화하고 클라이언트와의 통신을 준비한다. Reader 네트워크를 통해 전송된 데이터를 읽고 처리하는 컴포넌트로 데이터를 읽고 애플리케이션에서 사용할 수 있는 형태로 변환한다. 실제 네트워크 요청을 처리하는 컴포..
[Nginx] 내부 구조와 리버스 프록시

[Nginx] 내부 구조와 리버스 프록시

2023.12.21
엔진엑스는 정적 리소스를 제공하는 웹 서버로도 동작할 수 있고 여러 백엔드 서버로 로드밸런싱을 수행하는 리버스 프록시, 메일 프록시로도 동작할 수 있는 다재다능한 웹 서버이다. 리액트로 프론트엔드 웹 애플리케이션을 만들고 사용자들에게 배포 할 때 엔진엑스 웹 서버를 사용할 수 있다. npm build 명령어로 애플리케이션을 번들링하고 엔진엑스를 정적 리소스를 제공하는 웹 서버로 사용하는데, 이 때 root 지시어를 사용해 번들링된 파일이 위치한 디렉토리를 지정하고 모든 서버 요청을 index.html으로 리다이렉트하도록 설정해 SPA 라우팅을 처리한다. server { listen 80; server_name myapp.com; root /app/react/build; index index.html; l..
[HTTP] HTTP 쿠키와 세션

[HTTP] HTTP 쿠키와 세션

2023.06.12
서로 간의 통신을 위한 약속을 프로토콜이라고 한다. 웹에서 프로토콜은 주고 받을 데이터에 대한 형식을 정의한 것으로 생각하면 된다. 데이터를 주고받을 때, 어떤 형식으로 주고받을지 미리 협의 해 놔야 통신이 가능하다. HTTP (Hyper Text Transfer Protocol) 도 프로토콜의 종류 중 하나다. 1. Stateless HTTP는 상태를 유지하지 않는다. 따라서 같은 클라이언트가 같은 요청을 서버에게 2번 보내도 서버는 같은 클라이언트로부터 도착한 요청임을 알 수 없다. 따라서 쿠키와 세션을 사용해 사용자를 구분한다. 쿠키는 클라이언트의 브라우저에서 관리되는 작은 데이터 파일이다. 서버는 HTTP 응답 메세지를 보낼 때 헤더에 Set-Cookie 필드를 생성해 쿠키를 설정한다. 클라이언트..
  • 최신
    • 1
    • 2
  • 다음

정보

시간의화살 블로그의 첫 페이지로 이동

시간의화살

  • 시간의화살의 첫 페이지로 이동

검색

방문자

  • 전체 방문자
  • 오늘
  • 어제

카테고리

  • 분류 전체보기 (612)
    • Algorithm (205)
      • Data Structure (5)
      • Theory && Tip (33)
      • Baekjoon (166)
      • ALGOSPOT (1)
    • Spring (123)
      • Spring (28)
      • Spring Web MVC (20)
      • Spring Database (14)
      • Spring Boot (6)
      • Spring 3.1 (11)
      • Spring Batch (6)
      • Spring Security (16)
      • JPA (12)
      • Spring Data JPA (5)
      • QueryDSL (4)
      • eGovFramework (1)
    • Programming Language (74)
      • Java (19)
      • JavaScript (15)
      • C (25)
      • C++ (12)
      • Python (1)
      • PHP (2)
    • Computer Science (69)
      • Operating System (18)
      • Computer Network (17)
      • System Programming (22)
      • Universial Programming Lang.. (8)
      • Computer Architecture (4)
    • Database (21)
      • Database (7)
      • MySQL (3)
      • Oracle (3)
      • Redis (5)
      • Elasticsearch (3)
    • DevOps (20)
      • Docker && Kubernetes (8)
      • Jenkins (4)
      • Github Actions (0)
      • Amazon Web Service (8)
    • Machine Learning (28)
      • AI Introduction (28)
    • Mobile (28)
      • Android (21)
      • Flutter (7)
    • Solutions (14)
    • Logs (5)
    • 낙서장 (25)

최근 글

나의 외부 링크

메뉴

  • 홈

정보

13months의 시간의화살

시간의화살

13months

블로그 구독하기

  • 구독하기
  • RSS 피드

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. Copyright © 13months.

티스토리툴바