본문 바로가기

Computer Science/네트워크

(7)
라우팅 알고리즘과 프로토콜 본 포스팅은 이석복 교수님의 네트워크 수업과 성공과 실패를 결정하는 상위 1%의 네트워크 원리를 참고하여 작성한 포스팅입니다. 라우팅 알고리즘이란? 라우팅 알고리즘이란 출발 라우터에서 도착 라우터로 패킷을 보낼 때 최적의 비용으로 보낼 수 있는 라우팅 경로를 결정하는 알고리즘입니다. 네트워크를 아래 그림의 그래프로 추상화한다고 생각해볼 수 있습니다. 위 그림의 예에서, u라는 라우터에서 z라는 라우터까지 가는 경로를 결정해야하는 문제가 발생합니다. 이를 결정하는 알고리즘을 구체화하기 전에, 알고리즘의 분류를 먼저 생각해보겠습니다. Q. Global(전역적인 공통의 정보를 이용) 알고리즘인가? 혹은 decentralized(각 지역의 정보를 종합) 알고리즘인가? Global 모든 라우터가 전체 라우터의 t..
네트워크 계층 - IP, CIDR, NAT 본 포스팅은 이석복 교수님의 네트워크 수업과 성공과 실패를 결정하는 상위 1%의 네트워크 원리를 참고하여 작성한 포스팅입니다. 우리가 네트워크에서 요청을 보내면 HTTP 요청이 작성이 되어서 네트워크를 구성하는 계층들을 거쳐 Multiplexing, De-multiplexing이 일어나면서 데이터를 주고받게 됩니다. 이번 포스팅에서 어플리케이션 계층인 HTTP 프로토콜과 Transport 계층인 TCP 프로토콜에 대한 자세한 내용은 생략하겠습니다. 대략적으로 TCP 프로토콜의 도움으로 데이터의 신뢰성 있는 전송, 네트워크 혼잡 제어, 네트워크 흐름 제어 등이 가능해졌습니다. 사용자의 입장에서 네트워크 속으로 패킷을 보내면 신뢰성있게 잘 전달되고 응답이 잘 돌아온다는 것은 이해했는데, 상대의 호스트까지 어..
MAC 주소와 ARP 프로토콜 MAC 주소란 무엇인가요? IP 주소와 비교하기 IP 주소와 MAC 주소는 공통적으로 네트워크에서 다른 장치를 식별하기 위한 주소라는 점에서는 공통적입니다. IP 주소 논리적 주소, 혹은 인터넷 프로토콜 주소라고 합니다. 네트워크 상에서 컴퓨터, 기타 디바이스를 식별하는 고유 주소입니다. MAC주소와 차이점은 물리적 주소가 아니기 때문에 IP 주소에 연결된 네트워크 하드웨어는 언제든지 변경될 수 있습니다. IP주소는 IPv4와 IPv6 방식이 있는데, 일반적으로 사용되는 IPv4는 32비트 주소로 255.255.255.255와 같이 표현됩니다. IP주소는 인터넷이나 로컬 네트워크와 같은 네트워크를 통해 데이터 패킷이 올바른 목적지 네트워크에 도달하게 하는 라우팅 역할을 수행합니다. MAC 주소 물리적 주..
SOP, CORS - CORS 이슈 해결하기 이번 포스팅에서는 웹 애플리케이션의 보안의 핵심 개념인 SOP(Same Origin Policy)와 CORS(Cross-Origin Resource Sharing)에 대해서 살펴보고, . 이 글에서는 SOP와 CORS에 대해 알아보고, 이들이 웹 보안에 어떻게 기여하는지 살펴보겠습니다. Same Origin Policy (SOP)란? SOP는 웹 보안을 위한 가장 기본적인 정책 중 하나입니다. SOP는 브라우저에서 실행되는 스크립트 언어를 통해 동작하며, 웹 페이지의 자원에 접근하는 규칙을 정의합니다. SOP는 동일 출처(Origin)에서 로드된 문서나 스크립트만이 서로 상호작용할 수 있도록 제한합니다. Origin이란 아래 그림처럼, 프로토콜, 호스트, 포트로 구성되며, Origin이 동일하지 않으면 ..
Socket의 연결 종료와 Timeout 설정하기 - setSoTimeOut Socket 통신에 대해 공부하다가 궁금한 점을 기록한 내용입니다. 틀린 내용이 있다면 편하게 지적해주세요. 스프링에 대해서 학습하다가 간단히 아래와 같은 소켓 통신을 하는 서버 모델을 만들었습니다. 외부로부터 개방되어있는 listen socket은 8080포트로 들어오는 연결을 받아 connection 소켓에 할당합니다. 할당된 소켓은 새로운 스레드에 할당되어 클라이언트와 비동기적으로 통신하고, listenSocket은 다시 새로운 연결을 기다립니다. public class WebServer { public static void main(String args[]) throws Exception { int port = 8080; try (ServerSocket listenSocket = new Serve..
HTTP 요청 전송 및 분석 - 소켓 프로그래밍, TCP 전송의 원리 (Java) 안녕하세요, 저번 포스팅에서 HTTP에 대해서 알아보았습니다. 다시 한번 정리하자면, HTTP는 인터넷에서 데이터를 주고받기 위한 프로토콜 중 하나로, 웹 브라우저와 웹 서버 간의 통신을 담당합니다. HTTP는 클라이언트가 서버에 요청(request)을 보내고, 서버는 클라이언트에 응답(response)을 보내는 구조로 동작합니다. 이러한 구조를 바탕으로 웹 사이트를 방문하거나 파일을 다운로드하게 됩니다. 자세한 내용은 아래 포스팅을 참고바랍니다. https://porolog.tistory.com/25 HTTP 요청 전송 및 분석 with HttpRequest (Java) 이번 포스팅은 브라우저에 URL을 입력했을 때, 일어나는 일 중, HTTP로 요청을 보내고, 그 결과를 서버로부터 받는 http 프로..
HTTP 요청 전송 및 분석 with HttpRequest (Java) 이번 포스팅은 브라우저에 URL을 입력했을 때, 일어나는 일 중, HTTP로 요청을 보내고, 그 결과를 서버로부터 받는 http 프로토콜의 작동을 프로토타입으로 구현해보는 것에 대한 내용입니다. 그 전에 앞서 네트워크에 대한 간단한 내용을 소개하고, HTTP란 무엇인지에 대해 살펴보겠습니다. 먼저, HTTP가 무엇인지에 대해 알아보기에 앞서, HTTP를 '왜' 알아야하는지 알아야겠죠? HTTP가 네트워크에서 어느 부분에 사용되고, 실생활과는 어떤 연관성이 있는지 궁금할 것입니다. 우리 근처에서는 바로 주소창에 URL을 입력할 때가 있겠습니다. (이는 논외로 인터뷰 단골 질문이라고 합니다..) 주소창에 URL을 검색하면 일어나는 일 웹 브라우저의 주소창에 URL(Uniform Resource Locator..