[네트워크] SMTP와 POP3 프로토콜
·
CS/네트워크
1. SMTP와 POP3이메일을 주고 받을 때 사용하는 프로토콜. 송신자가 사용하는 프로토콜은 SMTP, 수신자가 사용하는 프로토콜은 POP3이다. 2. 송신자 → 송신자 메일서버 (SMTP)송신자가 이메일을 작성해 전송하면, 이메일 클라이언트(MUA: Mail User Agent)는 SMTP 프로토콜을 사용해 송신자 메일서버(MTA: Mail Transfer Agent)와 TCP 연결(보통 25번 포트)을 설정연결이 성립되면 일련의 SMTP 명령을 통해 송신자 주소, 수신자 주소, 메일 제목 및 본문 등 메일 전체 내용을 송신자 메일서버로 전송전송이 완료되면 QUIT 명령으로 연결을 종료 3. 송신자 메일서버 → 수신자 메일서버 (SMTP)송신자 메일서버는 수신자의 이메일 주소에서 도메인 부분을 확인한..
[네트워크] DHCP 서버
·
CS/네트워크
1. DHCP(Dynamic Host Configuration Protocol) 서버IP 주소를 자동으로 관리하기 위해 등장네트워크에 연결된 사용자(클라이언트)들에게 IP 주소를 자동으로 할당하고, 사용이 끝난 IP 주소를 회수하여 효율적으로 관리하는 역할 2. DHCP IP 할당 방식DHCP를 통한 IP 주소 할당은 주로 임대(Lease) 개념을 기반으로 하며, 다음과 같은 4단계 과정을 거친다. 이 과정은 각 단계의 앞글자를 따서 ‘DORA’(Discover, Offer, Request, Acknowledgement)라고도 부른다.DHCP Discover: 클라이언트가 네트워크에 접속하면, 자신에게 IP 주소를 할당해 줄 DHCP 서버를 찾기 위해 브로드캐스트로 Discover 메시지를 전송한다.DH..
[네트워크] DNS 서버
·
CS/네트워크
1. DNS(Domain Name System) 서버사용자가 입력한 도메인 이름(예: http://www.example.com)을 컴퓨터가 실제로 통신할 수 있는 IP 주소(예: 93.184.216.34)로 변환해주는 역할인터넷의 ‘전화번호부’와 같은 역할을 하여 사람이 기억하기 쉬운 도메인 이름과 컴퓨터가 이해하는 IP 주소 사이를 연결해준다. 2. DNS 동작 방식사용자가 웹 브라우저에 도메인 주소를 입력하면, 브라우저와 운영체제, 그리고 네트워크 상의 여러 DNS 서버들이 협력하여 해당 도메인에 대한 IP 주소를 찾아낸다.브라우저 캐시 → 운영체제 캐시 → 로컬(리졸버) DNS 서버 → 루트 DNS 서버 → TLD(Top-Level Domain) DNS 서버 → 권한(Authoritative) DN..
[네트워크] HTTP 프로토콜
·
CS/네트워크
1. HTTP(HyperText Transfor Protocol) 프로토콜사용자가 URL을 입력하는 행위를 요청(request)라고 하고, 서버는 사용자의 요청에 응답(response)한다.요청과 응답을 위해 HTTP 프로토콜을 사용한다.HTTP 프로토콜은 서버가 어떻게 데이터를 교환할지 정해놓은 규칙으로 80번 포트를 사용한다.문자 형태로 전송되기 때문에 필요한 부분을 파싱(어떤 페이지에서 내가 원하는 데이터를 특정 패턴이나 순서로 추출하여 정보를 가공하는 것)해주어야 한다. 2. HTTP 구조시작 라인헤더(header)공백(1줄)바디(body) - html헤더: 클라이언트와 서버가 통신하기 위한 부가적인 정보호스트: 서버의 도메인 이름과 포트 번호연결: 현재 작업이 끝난 이후에도 네트워크를 연결 상태..
[네트워크] 응용 계층의 역할
·
CS/네트워크
1. 응용 계층의 역할사용자가 사용하는 애플리케이션(응용 프로그램)이 동작하는 곳서비스를 요청하는 측을 클라이언트, 서비스를 제공하는 측은 서버라고 칭한다. 2. 응용 계층 프로토콜프로토콜내용포트 번호HTTP웹 사이트 접속80DNS이름 해석53FTP파일 전송20(데이터 전송)21(명령과 응답 제어)SMTP이메일 송신25POP3이메일 수신110
[네트워크] 전송계층의 로드 밸런서
·
CS/네트워크
1. 로드 밸런서여려 대의 서버를 두고 사용자가 한쪽을 몰리는 것을 분산시켜주는 장치.1대의 서버에서 여러 대로 늘리는 것을 스케일 아웃(Scale Out)이라고 하고, 부하를 분산시켜주는 작업을 로드 밸런싱(Load Balancing)이라고 한다. 2. 로드 밸런싱 방법라운드 로빈(Round Robin): 분배의 가장 기본적인 방식, 각 서버별로 돌아가며 연결을 처리한다.가중 라운드 로빈(Weighted Round Robin): 각 서버별로 돌아가면서 연결을 처리하지만 일부 서버는 큰 트래픽을 몰아 받는 방식랜덤(Random): 무작위로 분배되는 방식해시(Hash): 특정 클라이언트는 특정 서버에서만 처리하는 방식
[네트워크] UDP 구조
·
CS/네트워크
1. UDP(User Datagram Protocol)데이터의 신뢰성 보장보다는 데이터 전송 속도가 빠르다는 장점이 있다. 실시간 방송 등에서 주로 사용한다.2대 이상의 컴퓨터에 동일한 데이터를 전달하는 목적으로 사용되는 브로드캐스트에서 사용한다.헤더는 TCP와 비교했을 때 축약된 정보를 포함하며 송수신자의 포트 번호와 헤더 길이, 검사합 정보를 포함한다.항목설명크기송신자 포트 번호데이터를 보낼 때 사용되는 애플리케이션의 포트 번호16비트수신자 포트 번호데이터를 받을 애플리케이션의 포트 번호16비트헤더 길이UDP 헤더와 데이터를 합한 총 길이16비트검사합데이터의 무결성 검사 용도16비트
[네트워크] TCP 구조
·
CS/네트워크
0. TCP데이터를 세그먼트 단위로 쪼개서 순서를 부여하여 전송한다.세그먼트 순서가 뒤바뀌는 일이 없도록 오류를 제어하는 것이 중요하다. 1. 포트 번호전송 계층은 어떤 애플리케이션을 통과하는지 정의하는 곳이고 그 기능을 하는 것이 포트 번호이다.쉽게 설명해서 컴퓨터의 주소가 IP이면 프로그램의 주소는 포트 번호이다.0~1023번: 잘 알려진 포트(well-known port)로 특정한 쓰임을 위해서 사용되는 포트이다.1024~49151번: 기관이나 기업들이 사용하는 포트로 사전 등록된 포트(registered port)이다.49152~65535번: 일반 사용자들이 자유롭게 사용할 수 있는 포트로 다이내믹 포트(dynamic port)라고 한다.주요 well-known port포트 번호프로토콜서비스/설명..
[네트워크] 3방향 핸드셰이크
·
CS/네트워크
1. 데이터 전달 목적에 따른 전송 계층 통신연결형 통신: 데이터를 정확하게 전달하는 것을 목표로 하는 통신으로, TCP 프로토콜을 사용한다.비연결형 통신: 효율적으로 데이터를 보내는 통신으로, UDP 프로토콜을 사용한다. 2. 3방향 핸드셰이크(3 Way Handshake)TCP 프로토콜이 통신하는 방법으로 통신을 하는 장치 간에 서로 통신할 준비가 되었는지 확인하는 과정이다.송신자는 수신자에게 연결 요청을 위해 SYN(Synchronize Sequence Number)이라는 임의의 숫자를 보낸다.수신자는 ACK와 SYN(임의의 숫자)을 송신자에게 보낸다. 이때 ACK는 앞에서 받았던 SYN에 1이 더해진 숫자이다.마지막으로 송신자가 다시 ACK를 보낸다. 이때 ACK는 앞에 받은 SYN에 1이 더해진..