인터넷 프로토콜

EEEFFEE·2023년 11월 21일
0

네트워크

목록 보기
9/9

23.11.20 최초 작성

1. HTTP (HyperText Transfer Protocol)

  • 인터넷에서 데이터를 주고받기 위한 프로토콜 중 하나
  • 클라이언트(웹 브라우저)가 서버(웹 서버)에 요청을 보내고, 서버는 클라이언트에게 요청에 대한 응답을 보내는 방식
  • TCP/IP를 기반, 기본으로 80번 포트 사용

1.2 주요 특징

  • 비연결성
    • 클라이언트와 서버간의 연결 유지 X
    • 요청과 응답 후 연결 종료, 이후 다시 연결
  • 상태 정보 유지 안함 (Stateless)
    • 이전 요청과 현재 요청 간 상태 정보 유지 X
    • 클라이언트와 서바 간 통신이 항상 독립적
  • 요쳥-응답구조
    • 클라이언트에서 서버로 요청을 보내고, 서버는 클라이언트에게 요청에 대한 응답을 보내는 방식
    • 요청과 응답은 각각 메시지 형식으로 전송
    • 메시지는 시작줄, 헤더, 본문 등으로 구성

1.3 메시지 포맷

1.3.1 요청 메시지 포맷

  • 요청 라인 (request line) : 요청 메서드(HTTP 동작), 요청 URL, HTTP 버전 정보
  • 요청 헤더 (request header) : 요청에 대한 부가적인 정보
  • 요청 본문 (request body) : 실제 요청 메시지 전달 (없는 경우도 있음)

GET /index.html HTTP/1.1			//request line
Host: www.example.com				//request header
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive

  • Get : 데이터를 서버로 부터 받아올 때 주로 사용
  • POST : 데이터를 생성 / 수정 할 때 주로 사용되는 메소드
  • HEAD : Get과 유사하지만 헤더 정보만 받아 옴
  • PUT : 새 리소스 생성, 대상 리소스의 표현 요청 페이로드로 대체
  • DELETE : 서버의 지정된 리소스 삭제

1.3.2 응답 메시지 포맷

  • 상태 라인(status line) : HTTP 버전, 상태 코드, 상태 메세지
  • 응답 헤더(response header) : 응답에 대한 부가적인 정보
  • 응답 본문(response body) : 실제 응답 메시지

HTTP/1.1 200 OK							//status line
Date: Tue, 30 Mar 2023 01:23:45 GMT		//response header
Server: Apache/2.4.41 (Unix)
Content-Type: text/html;charset=UTF-8
Content-Length: 1147
Connection: keep-alive

2. SMTP (Simple Mail Transfer Protocol)

  • 이메일을 보내는 클라이언트 프로그램이나 메일 서버가 사용하는 프로토콜
  • 수신자는 POP3IMAP과 같은 다른 프로토콜을 사용해 메일 수신
  • 제목, 수신자, 본문과 같은 내용을 포함하는 텍스트 기반의 메시지 포맷
  • HTML, 텍스트, 첨부파일 등 다양한 형식의 내용을 포함 가능
  • 기본적으로 25번 포트 사용
  • 평문의 데이터를 전송할 때 SSL, TLS와 같은 보안 프로토콜을 사용해 데이터 암호화 필요

2.1 SMTP 구조

  • server
    • client에게 전달되는 메일을 보관하는 mailbox
    • 전송할 메일을 임시 보관해 놓는 outgoing message queue
  • client
    • 사용자의 메일을 서버에 전송하는 역할을 맡는 프로그램인 user agent

2.2 메시지 포맷

  • header lines

    • To :
    • From :
    • Subject :
  • blank line

  • body


openssl s_client -starttls smtp -crlf -connect smtp.google.com:25
											//smtp.google.com메일 서버와 TCP 연결
	helo kookmin.ac.kr
	mail from: <sanghwan@cs.kookmin.ac.kr>	//보내는 사람의 이메일 주소
	rcpt to: <sanghwan@kookmin.ac.kr>		//받는 사람의 이메일 주소
	data									//메일 내용 시작
	To: sanghwan@kookmin.ac.kr
	From: sanghwan@cs.kookmin.ac.kr
	Subject: mail test
	Message-ID: <Rp4WnLakyLrOuNp9N067XncNQgzkYx@kookmin.ac.kr>
    										//blank line
	How are you?							//body
	.										//메일 내용 끝
	quit

3. DASH (Dynamic Adaptive Streaming over HTTP)

  • 웹에서 동영상 스트리밍을 효율적을 수행하기 위한 기술
  • 전체 영상을 여러 개의 세그먼트로 분할하고 각 세그먼트를 다양한 비트레이트로 인코딩
  • DASH Manifest 파일 (XML 형식(.mpd))
    • 동영상 콘텐츠와 관련된 메타데이터 포함
    • 사용하는 동영상 품질, 코덱 정보, 세그먼트의 URL, 자막 등

3.1 동작 과정

  1. 초기화 : 사용자가 동영상 재생 시 DASH 클라이언트Manifest 파일 요청

  2. 메니페스트 파일 파싱 : Manifest 파일을 분석해 동영상 품질, 코덱, 세그먼트 URL에 대한 정보 파악

  3. 비트레이트 선택 : 현재 인터넷 속도를 고려해 적절한 비트레이트 선택, 클라이언트는 사용 가능한 대역폭 예측

  4. 세그먼트 다운로드 : 클라이언트가 비트레이트에 해당하는 세그먼트를 차례대로 다운로드

  5. 동영상 재생 : 세그먼트를 버퍼에 저장, 클라이언트가 재생

  6. 적응 스트리밍 : 인터넷 속도 변화 감지 시 비트레이트 재선택

0개의 댓글

관련 채용 정보