[5주차] NAT란
·
외부활동/JSCODE 네트워크
NAT사설 네트워크(Private Network)와 공인 네트워크(Public Network) 간의 IP 주소 변환을 수행하는 기술이다. NAT는 주로 라우터나 방화벽 장비에서 사용된다. 주요 기능IP 주소 절약사설 네트워크에서 사용하는 IP 주소(예: 192.168.x.x, 10.x.x.x 등)를 공인 IP 주소로 변환하여 인터넷과 통신합니다. 이는 IPv4 주소 부족 문제를 완화합니다.보안 강화내부 사설 네트워크의 IP 주소를 외부에 노출시키지 않음으로써 보안을 강화합니다. 외부에서는 변환된 공인 IP만 보입니다.네트워크 분리사설 네트워크와 공인 네트워크를 논리적으로 분리하여 관리가 용이합니다.동작 원리(1) 송신 시 (사설 IP → 공인 IP)내부 디바이스(예: PC, 스마트폰)는 사설 IP 주소를..
[5주차] Routing Protocol
·
외부활동/JSCODE 네트워크
Router다른 네트워크 간 데이터를 보내려면 라우터가 필요하다. 라우터는 네트워크 장비 중 하나로, 서로 다른 네트워크를 연결하고 데이터 패킷을 목적지까지 전달하는 역할을 한다.Routing라우팅은 데이터의 목적지가 연결된 네트워크를 판단하여, 올바른 경로의 라우터로 IP 패킷을 전달하는 동작입니다. 라우터가 전송하는 데이터는 TCP/IP 계층 중 인터넷 계층에 속하는 IP 패킷이며, 따라서 라우팅 동작은 인터넷 계층에서 수행됩니다. 라우팅의 동작 과정:패킷 수신: 라우터가 네트워크로부터 데이터 패킷을 받음.목적지 주소 확인: 패킷의 목적지 IP 주소를 확인.라우팅 테이블 조회: 라우터 내부의 라우팅 테이블을 참고하여 최적 경로를 결정.패킷 전달: 결정된 경로를 따라 패킷을 다음 라우터 또는 목적지 장..
[5주차] IP, IPv4와 IPv6, IP 할당 기관
·
외부활동/JSCODE 네트워크
IPInternet Protocol의 약자로, 인터넷에서 데이터를 송수신하기 위한 규칙입니다. IP는 네트워크 상에서 데이터를 작은 패킷으로 나누어 전송하며, 각 패킷에 발신자와 수신자의 IP 주소를 포함합니다. 이를 통해 패킷이 목적지까지 전달될 수 있도록 주소 지정과 라우팅을 수행합니다. 또한, IP는 신뢰성이 보장되지 않는 비연결형 프로토콜로, 패킷이 유실되거나 순서가 바뀔 수 있기 때문에, 이러한 문제는 TCP와 같은 상위 계층 프로토콜이 처리합니다. 요약하면, IP는 네트워크에서 장치 간 통신을 가능하게 하는 핵심적인 역할을 합니다.IPv4와 IPv6IPv432비트 주소 체계를 사용하며, 약 43억 개의 고유 IP 주소를 제공합니다. IPv4는 사용 목적에 따라 A, B, C, D, E로 나뉩니..
[5주차] 서브넷과 서브넷 마스크
·
외부활동/JSCODE 네트워크
서브넷?서브넷, 즉 서브네트워크는 네트워크 내부의 네트워크입니다. 서브넷은 네트워크를 보다 효율적으로 만듭니다. 서브넷을 통해 네트워크 트래픽은 불필요한 라우터를 통과하지 않고 더 짧은 거리를 이동하여 대상에 도달할 수 있습니다. 서브넷을 나누면 네트워크 트래픽이 같은 서브넷 안에서 직접 처리되므로, 불필요한 라우팅 경로를 제거하여 효율성을 극대화할 수 있는 것입니다서브넷이 필요한 이유는?네트워크 크기를 더 세밀하게 조정할 수 있다. 필요한 만큼 IP를 배정받고 나머지 자원은 절약할 수 있다. 한 만디로, 네트워크 유연성 증가.기존에는 클래스 방식(클래스 A, B, C) 방식을 사용했는데, 클래스 방식은 고정된 서브넷 마스크를 사용해서 네트워크 세분화 제한이 많다.서브넷 마스크란?서브넷 마스크는 IP 주..
[4주차] UDP Checksum
·
외부활동/JSCODE 네트워크
Checksum데이터의 무결성을 검증하기 위한 오류 감지 메커니즘입니다. 전송된 데이터가 손상되었는지 확인을 위해 사용합니다.UDP는 체크섬으로 패킷 오류를 감지하지만, TCP처럼 오류를 제어하지는 않습니다.손상된 패킷은 수신 측에서 폐기되며, 애플리케이션 계층으로 전달되지 않습니다. UDP 체크섬 필드의 특징:16비트 크기의 필드입니다.계산에는 UDP 헤더, 데이터, 그리고 의사 헤더 (pseudo-header)가 포함됩니다.의사 헤더는 IP 주소, 프로토콜 번호, UDP 길이 등을 포함하며, 전송 계층 데이터와 네트워크 계층 데이터를 연계합니다.의사 헤더(Pseudo Header)의 역할:의사 헤더는 데이터 전송 중 IP 계층에서의 문제(예: IP 주소 오류)를 함께 감지하기 위해 사용됩니다. UDP..
TCP
·
외부활동/JSCODE 네트워크
TCP(Transmission Control Protocol)신뢰성과 연결 지향을 특징으로 하는 전송 계층 프로토콜데이터를 정확하고 순서대로 전달하기 위해 다양한 메커니즘을 제공왜 연결 지향이라고 하는거지?TCP는 데이터 전송 전에 송신자와 수신자가 연결을 설정(3-way handshake)하고, 데이터가 제대로 전송되었는지 확인하며, 연결을 종료(4-way handshake)하는 과정이 있기 때문에 연결 지향(Connection-Oriented)이라고 한다.3-way handshake?3-way handshake는 TCP 연결을 설정하기 위해 반드시 필요한 과정이다. 이유는 아래와 같다.양측의 통신 기능 여부 확인초기 시퀀스 번호(ISN) 교환연결 신뢰성 확보3-way handshake 동작 과정A클라..
[4주차] UDP
·
외부활동/JSCODE 네트워크
UDP?UDP를 해석하면 사용자 데이터그램 프로토콜(규약)이라는 뜻인데 풀어 해석하면 아래와 같습니다.        데이터를 데이터그램 단위로 처리하는 프로토콜 여기서 데이터그램이란 독립적인 관계를 지니는 패킷이라는 뜻으로, TCP와 달리 UDP는 비연결형 프로토콜입니다. 즉, 연결을 위해 할당되는 논리적인 경로가 없는데, 그렇기 때문에 각각의 패킷은 다른 경로로 전송되고, 각각의 패킷은 독립적인 관계를 지니게 되는데 이렇게 데이터를 서로 다른 경로로 독립적으로 처리하게 되고, 이러한 프로토콜을 UDP라고 합니다.  TCP와 달리 데이터의 신뢰성, 순서, 재전송을 보장하지 않지만, 빠른 전송 속도와 낮은 오버헤드가 특징입니다.출처: https://mangkyu.tistory.com/15 [MangKyu'..
RESTful하게 개발한다는 건 뭘까?
·
외부활동/JSCODE 네트워크
RESTful 원칙을 준수하여 개발한다는 건RESTful하게 개발했는지 묻는 질문은 REST 아키텍처 스타일을 잘 이해하고 그것을 기반으로 API를 설계했는지를 묻는 것이다. REST (Representational State Transfer)는 웹의 리소스를 클라이언트와 서버가 주고받는 방식에 대한 설계 원칙입니다. RESTful하게 개발했다는 것은 이 원칙을 따랐다는 의미로, 주로 다음을 만족해야 한다.리소스 기반 설계URI는 리소스를 명확히 나타내야 하며, 명사형으로 표현됩니다.예: /users, /orders/123HTTP 메서드의 적절한 사용CRUD 작업에 맞게 HTTP 메서드를 사용합니다.GET: 데이터 조회POST: 데이터 생성PUT/PATCH: 데이터 수정DELETE: 데이터 삭제상태 없음..
[3주차] REST API, 웹 보안
·
외부활동/JSCODE 네트워크
REST와 RESTful APIREST는 HTTP 프로토콜을 기반으로 리소스를 정의하고 조작하는 아키텍처 스타일RESTful은 이 REST의 원칙을 준수하여 설계된 시스템을 의미예를 들어, 웹 시스템에서 아래와 같이 API를 디자인할 수 있습니다.REST(원칙)로 설계한 기본 아이디어:리소스를 URI로 표현하고, 각 작업을 HTTP 메서드로 구분한다.RESTful API 구현:GET /products → 모든 상품 조회POST /products → 새 상품 추가DELETE /products/{productId} → 특정 상품 삭제따라서 REST는 리소스와 메서드의 원칙을 제공하는 개념이고, RESTful은 이를 준수하려고 설계된 구현 방식이라고 이해할 수 있습니다.URL, URI, URNURI: 리소스를..
[3주차] 쿠키, 세션, 토큰, CORS
·
외부활동/JSCODE 네트워크
쿠키와 세션쿠키HTTP의 일종으로 사용자가 어떠한 웹 사이트를 방문할 경우,그 사이트가 사용하고 있는 서버에서 사용자의 컴퓨터에 저장하는 작은 기록 정보 파일이다.HTTP에서 클라이언트의 상태 정보를 클라이언트의 PC에 저장하였다가 필요시 정보를 참조하거나 재사용할 수 있다. 사용 예시방문 사이트에서 로그인 시, "아이디와 비밀번호를 저장하시겠습니까?"팝업창을 통해 "오늘 이 창을 다시 보지 않기" 체크세션일정 시간 동안 같은 사용자(브라우저)로부터 들어오는 일련의 요구를 하나의 상태로 보고, 그 상태를 유지시키는 기술이다.여기서 일정 시간은 방문자가 웹 브라우저를 통해 웹 서버에 접속한 시점부터 웹 브라우저를 종료하여 연결을 끝내는 시점을 말한다.즉, 방문자가 웹 서버에 접속해 있는 상태를 하나의 단위..