네트워크 CS 2편 (상세)

Android Chen·2022년 3월 24일
0

OSI 7Layer 각 레이어의 역할

  • Application (응용계층) : 실제 라인 메신저로 메세지를 보내는 과정처럼 애플리케이션을 사용하는 과정이 해당하는 계층

  • Presentation (표현계층) : 데이터의 형식을 정의하고 인코딩, 디코딩 기능을 담당하는 계층

  • Session (세션계층) : 응용 프로그램간의 접속을 설정하고 유지하며 통신관리와 동기화를 담당한다. 로그인이 이에 해당된다

  • Transport (전송계층) : 메세지의 전송을 담당하며 흐름제어나 오류복구를 통해 메세지가 안전하게 전달될 수 있도록 한다.

  • Network (네트워크 계층) : 데이터를 패킷 단위로 분할해서 전송하며 전송 과정에서 최적의 경로를 선택하는 역할을 담당한다. 이것을 라우팅기능이라고 한다.

  • DataLink (데이터링크 계층) : MAC주소를 사용하여 신뢰성있는 정보를 전송하기 위한 역할을 수행한다.( 오류제어, 흐름제어, 순서제어 등)

  • Physical (물리계층) : 물리적인 단말을 통해 실제 데이터를 전송한다.

계층별 데이터의 단위

Application, Presentation, Session : Data

Transport : Segment

Network : Packet

DataLink : Frame

Physical : bits

HTTP

  • HTTP란 HyperText Transfer Protocol의 약자로 초기에는 HTML을 전달하기 위해 사용했던 프로토콜이지만 최근에는 PlainText나 XML, JSON등 다양한 형태의 정보도 전송하는 응용계층의 프로토콜이다.

  • HTTP에는 1.0에서 사용하는 방식인 Non-Persistent 방식과 Persistent방식이 존재한다. 기본적으로 HTTP는 클라이언트 - 서버 구조로 데이터를 요청하고 전달한다.

  • HTTP는 기본적으로 TCP를 사용한다. 이 때 클라이언트가 요청한 정보의 전달 이후 연결을 바로 끊어버리는 방식이 HTTP1.0에서 사용하는 방식이다. 따라서 추가로 요청할 정보가 있으면 다시 소켓연결을 시도해야 한다.

  • HTTP1.1에서부터 사용하는 Persistent방식은 서버가 응답을 보낸후 연결을 바로 끊지 않고 열어두는 방식이다. Non persistent 방식은 한번 요청을 보내고 응답받기 위해 TCP 연결이 필요하기 때문에 TCP 연결(1 RTT) + 요청 및 응답(1 RTT)로 총 2RTT의 시간이 걸리지만 Persistent는 연결이 한번이고 요청을 병렬로 보내기 때문에 훨씬 적은 시간이 든다.

HTTP 응답 메세지

  • 1xx : 조건부 응답으로 요청을 받았으니 이어서 작업을 계속하라는 의미이다.

  • 2xx : 요청이 성공적으로 처리되었다는 의미이다.

  • 3xx : Redirection Message로 요청을 완료하기 위해 추가적인 작업이 필요하다는 의미이다. 예를들어 naver.com이 아닌 naver.co.kr을 입력했을때 naver.com으로 이동되는 상황이다.

  • 4xx : 클라이언트 측에서 문제가 있는 상황이다.

  • 5xx : 서버측에서 문제가 있는 상황이다.

profile
https://github.com/Userz1-redd

0개의 댓글