Network

    모두의 네트워크 8장. 네트워크 전체 흐름 살펴보기

    모두의 네트워크 정리 1장. 네트워크의 첫걸음 2장. 네트워크의 기본 규칙 3장. 물리 계층: 데이터를 전기 신호로 변환하기 4장. 데이터 링크 계층: 랜에서 데이터 전송하기 5장. 네트워크 계층: 목적지에 데이터 전달하기 6장. 전송 계층: 신뢰할 수 있는 데이터 전송하기 7장. 응용 계층: 애플리케이션에 데이터 전송하기 8장. 네트워크 전체 흐름 살펴보기 이번 장에서는 OSI 모델의 각 계층 간에 데이터가 전달되고 처리되는 전체 과정에 대해 알아보자. 물리 계층 - 데이터를 전기 신호로 변환하는 데 필요하다. 데이터 링크 계층 - 랜에서 데이터를 송수신하는 데 필요하다. 네트워크 계층 - 다른 네트워크에 있는 목적지에 데이터를 전달하는 데 필요하다. 전송 계층 - 목적지에 데이터를 정확하게 전달하는 ..

    모두의 네트워크 7장. 응용 계층: 애플리케이션에 데이터 전송하기

    응용 계층의 역할 일반적으로 서비스를 요청하는 측을 클라이언트, 서비스를 제공하는 측을 서버라고 한다. 서버 측에는 웹 서버 프로그램과 메일 서버 프로그램 등이 있다. 이러한 애플리케이션은 응용 계층에서 동작한다. 즉, 애플리케이션이 동작하는 계층이라 응용 계층이다. (여기서는 세션 계층, 표현 계층을 모두 포함해 응용 계층이라고 칭한다.) 응용 계층에서는 사용자측의 요청을 전달하기 위해 통신 대상이 이해할 수 있는 메시지로 변환하고 전송 계층으로 전달하는 역할을 한다. 이를 위해서는 응용 계층의 프로토콜을 사용해야한다. HTTP / 웹 사이트 접속 DNS / 이름 해석 FTP / 파일 전송 SMTP / 메일 송신 POP3 / 메일 수신 HTTP란? 클라이언트는 웹 사이트를 보기 위해 서버의 80번 포트..

    모두의 네트워크 6장. 전송 계층: 신뢰할 수 있는 데이터 전송하기

    전송 계층의 역할 물리 계층, 데이터 링크 계층, 네트워크 계층의 3계층이 있으면 목적지에 데이터를 보낼 순 있다. 하지만 데이터가 손상되거나 유실되더라도 이들 계층에서는 아무것도 해 주지 않는다. 목적지에 신뢰할 수 있는 데이터를 전달하기 위해 필요한 계층이 바로 전송 계층이다. 전송 계층에는 오류를 점검하는 기능이 있다. 오류 발생 시 데이터를 재전송하도록 요청한다. 즉, 네트워크 계층은 목적지까지 데이터를 전달하고, 전송 계층에서는 데이터가 제대로 도착했는지 확인한다. 또한 전송 계층에서는 전송된 데이터의 목적지가 어떤 애플리케이션인지 식별하는 기능도 있다. 즉, 웹 브라우저로 전송하는 것인지 메일 프로그램으로 전송하는 것인지를 구별한다. 연결형 통신과 비연결형 통신 전송 계층의 특징은 신뢰성/정확..

    모두의 네트워크 5장. 네트워크 계층: 목적지에 데이터 전달하기

    네트워크 계층의 역할 다른 네트워크에 있는 목적지로 데이터를 전달하려면 네트워크 계층의 기술이 필요하다. 데이터 링크 계층에서는 이더넷 규칙을 기반으로 데이터의 전송을 담당한다. 이 규칙에 따라 같은 네트워크에 있는 컴퓨터로는 데이터를 전송할 수 있지만, 인터넷이나 다른 네트워크로는 데이터를 전송할 수 없다. 따라서 이처럼 네트워크 간의 통신을 가능하게 하는 것이 네트워크 계층의 역할이다. 네트워크 계층을 통해 데이터를 전송하려면 라우터라는 네트워크 장비가 필요하다. 라우터 라우터는 데이터의 목적지가 정해지면 해당 목적지까지 어떤 경로로 가는 것이 좋은지를 알려 주는 기능을 한다. 랜에서는 MAC 주소 만으로도 통신할 수 있지만, 다른 네트워크에는 MAC 주소 만으로는 데이터를 보낼 수 없다. 이 때, ..

    모두의 네트워크 4장. 데이터 링크 계층, 랜에서 데이터 전송하기

    데이터 링크 계층의 역할과 이더넷 이더넷이란? 랜에서 데이터를 주고 받기 위해서는 데이터 링크 계층의 기술이 필요하다. 데이터 링크 계층은 네트워크 장비 간에 신호를 주고받는 규칙을 정하는 계층으로, 랜에서 데이터를 정상적으로 주고받기 위해 필요한 계층이다. 그리고 이 규칙 중 가장 많이 사용되는 규칙이 이더넷이다. 즉, 이더넷은 랜에서 적용되는 규칙이다. 앞서 허브에서는 연결된 모든 포트로 데이터를 보낸다고 했었다. 따라서 이런 경우를 위해 보내려는 데이터에 목적지 정보를 추가해서 보내고 목적지 이외의 컴퓨터는 데이터를 받더라도 무시하게 되어있다. 또한 허브는 앞서 말했든 들어온 데이터를 모든 포트에 그대로 보내기만 하기에 PC 여러대가 동시에 데이터를 보내면 데이터가 충돌할 수 있다. 이를 방지하기 ..

    모두의 네트워크 3장. 물리계층, 데이터를 전기 신호로 변환하기

    전기 신호란? 0과 1로 이루어진 비트열을 전기 신호로 변환하기 위해서는 물리 계층의 기술이 필요하다. 데이터가 전기 신호로 변환되는 과정은 다음과 같다. 송신 측 컴퓨터가 전송하는 0과 1의 비트열 데이터를 전기 신호로 변환해 수신측 컴퓨터에 도착한다. 수신 측 컴퓨터에서는 전기 신호를 0과 1의 비트열 데이터로 복원한다. 0과 1을 어떻게 전기 신호로 변환할까? 컴퓨터는 네트워크를 통해 데이터를 송수신할 수 있도록 랜카드를 포함한다. 이 랜카드가 0과 1을 전기 신호로 변환한다. 케이블의 종류와 구조 네트워크의 전송 매체는 크게 유선과 무선으로 나뉜다. 유선에는 트위스트 페어 케이블, 광케이블 등이 있고 무선에는 라디오파, 마이크로파, 적외선 등이 있다. 트위스트 페어 케이블이란? 일반적으로 랜케이블..

    모두의 네트워크 2장. 네트워크의 기본 규칙

    프로토콜이란? 네트워크에서도 통신하기 위해서는 규칙이 필요하다. 이를 프로토콜이라 한다. 앞서 1장에서 규칙을 지키기 위해 패킷을 사용한다고 했다. 즉, 네트워크에서는 프로토콜로 통신하기 위해 패킷을 사용한다. OSI 모델이란? ISO라는 국제 표준화기구가 있는데, 이 단체에서 OSI 모델이라는 표준 규격을 제정했다. OSI 모델은 네트워크 기술의 기본이 되는 모델이다. 데이터를 송수신하기 위해서는 컴퓨터에서 또다른 컴퓨터로 데이터를 전송한다. 이 때, 컴퓨터 내부에서는 여러 가지 일을 하는데, 이런 일을 일곱개 계층으로 나누어서 한다. 이 7개 계층을 OSI 모델이라고 한다. 1계층 - 물리 계층 시스템 간의 물리적인 연결과 전기 신호를 변환 및 제어한다. 2계층 - 데이터 링크 계층 네트워크 기기 간..

    모두의 네트워크 1장. 네트워크의 첫걸음

    컴퓨터 네트워크란? 한 대만으로는 컴퓨터 네트워크라고 할 수 없지만, 두 대 이상 연결되어 있으면 훌륭한 컴퓨터 네트워크가 되고, 컴퓨터 간에 필요한 데이터(정보)를 서로 주고받을 수 있다. 즉, 이를 간단히 네트워크라고 부를 수 있다. 네트워크가 구축되어있으면 우리는 컴퓨터에서 다른 컴퓨터로 데이터를 보낼 수 있고, 웹 사이트를 열람할 수 있으며, 메일 송.수신과 같은 일을 할 수 있다. 인터넷이란? 전 세계의 큰 네트워크로부터 작은 네트워크까지를 연결하는 거대한 네트워크를 말한다. 패킷이란? 웹 브라우저에서는 사진과 문자를 보여주기 위해 필요한 규칙이 있다. 이 규칙에는 패킷을 사용한다. 패킷은 컴퓨터 간에 데이터를 주고받을 때 네트워크를 통해 전송되는 데이터의 작은 조각을 말한다. 굳이 왜 나눠 보..

    [nginx] 413 Request Entity Too Large 오류

    Spring boot를 활용해 이미지 파일을 주고 받는 api를 구성하였다. 이 때, MultipartFile을 활용하고 yaml 파일을 이용해서 file 크기 등을 명시해주었었다. spring: servlet: multipart: file-size-threshold: 1MB location: C:/Temp max-file-size: 10MB max-request-size: 100MB enabled: true yaml 파일에 작성된 옵션과 관련된 자세한 내용은 여기를 참고하면 된다. 413 Request Entity Too Large 아무튼, 저렇게 10MB로 설정을 해 주었는데, 1MB 이상의 파일을 업로드하니 알 수 없는 에러가 발생했다. 메시지 내용은 별도의 ExceptionHandler가 없는 경..

    [네트워크 원리] 웹 브라우저가 메시지를 만들어 서버에 보내는 과정 (1)

    이 글은 성공과 실패를 결정하는 1%의 네트워크 원리라는 도서를 읽고 학습한 내용을 정리한 글입니다. 들어가며 브라우저에 접속해서 url을 입력하고 검색했을 때, 어떻게 원하는 결과가 화면에 보이는 걸까? 이번 포스팅에서는 브라우저에 URL을 입력한 순간부터 DNS 서버를 통해 IP를 조회하는 과정에 대해 알아보려고 한다. 요약 먼저 이 주제의 전체 포스팅에서 다룰 내용을 전반적으로 요약해보면 다음과 같다. 브라우저에 URL을 입력하면, 그 URL을 해독하는 곳부터 브라우저의 동작이 시작된다. 이는 URL을 해독하여 HTTP Request 메시지를 작성하는 과정을 의미한다. 작성된 HTTP 리퀘스트 메시지를 OS를 통해 웹 서버에 송신해야하는데, 이 때 메시지를 넘기기 위해서는 상대의 IP 주소를 OS에..