HTTP, TCP/IP 개념 + 계층

WOOK JONG KIM·2023년 1월 6일
0

Http&Network

목록 보기
1/12
post-thumbnail

HTTP(HyperText Transfer Protool)

웹 브라우저는 웹 브라우저 주소 입력칸에 입력된 URL을 통해 웹 서버로부터 리소스라고 불리는 파일의 정보를 얻는다
-> 이때 서버에 요청을 보내는 브라우저 등을 클라이언트

클라이언트에서 서버까지 일련의 흐름을 결정하고 있는 것이 웹에서 HTTP(HyperText Transfer Protocol)

하이퍼 텍스트란 하이퍼 링크를 나타낼 수 있는 텍스트
-> 즉 하이퍼링크를 통해 사용자가 한 문서에서 다른 문서로 이동할 수 있도록 하는 초월적인 문서

프로토콜이란 일종의 약속 -> 웹은 HTTP라는 약속을 사용한 통신으로 이루어짐

탄생 배경

멀리 떨어져 있는 동료 연구자와 지식을 공용할 수 있도록 시스템을 고안
-> 최초로 고안한 것은 여러 문서를 상호간에 관련 짓는 HyperText에 의해 상호간에 참조할 수 있는 WWW(World wide Web)의 기본 개념이 되는 것

WWW: 인터넷에 연결된 사용자들이 서로의 정보를 공유할 수 있는 공간
-> 초기엔 하이퍼 텍스트를 열람할 수 있는 클라이언트 애플리케이션의 명칭

WWW를 구성하는 기술

  1. 문서 기술 언어 -> SGML을 베이스로 한 HTML(Hyper Text Markup Language)

  2. 문서 전송 프로토콜 -> HTTP 문서의 주소를 지정하는 방법으로 URL(Uniform Resource Locator)등이 제안


TCP/IP(Transmission Control Protocol/Internet Protocol)

인터넷을 포함해 일반적으로 사용하고 있는 네트워크는 TCP/IP라는 프로토콜에 의해 움직임
-> HTTP 또한 그중 하나

TCP/IP계층

애플리케이션 계층, 트랜스 포트 계층, 네트워크 계층(인터넷 계층), 네트워크 접근 계층(링크 계층)으로 나뉨

계층화 이유

인터넷이 하나의 프로토콜로 되어있다면 어디선가 사양이 변경되었을 때 전체를 변경해야 함
-> 반면 계층화가 되어있으면 사양이 변경된 해당 계층만 바꾸면 됨
-> 또한 설계를 편하게 할 수 있음
-> ex) 애플리케이션 계층에서 애플리케이션은 자기 자신이 담당하는 부분만 고려하면 되고, 상대가 어디있는 지, 어떤 루트로 메세지를 전달하는 지, 전달한 메세지가 확실하게 전달되고 있는지는 고려할 필요가 없음


애플리케이션 계층

데이터 단위 : Data/Message

사용자와 가장 가까운 계층으로 사용자가 application과 소통할 수 있게 해줌

응용 프로그램이 인터넷을 이용해 서로 데이터를 주고받기 위해 사용되는 프로토콜

파일 전송, 이메일, FTP, HTTP, SSH, Telent,DNS,SMTP

ex) 응용 계층에서 제공하는 서비스로는 웹브라우저, 이메일 클라이언트, 원격 접속 프로그램


전송 계층

데이터 단위 : Segment 전송 주소 : Port

Segment : 데이터 전송을 위해 데이터를 일정한 크기로 나눈것!

통신 노드 간의 연결 제어 및 자료 송수신 담당

응용 계층에서 전송하는 데이터를 전송할 때, 전송 정확성과 신뢰성을 보장하기 위해 제공하는 계층

ex) TCP(Transmission Control Protocol) & UDP(User Data Protocol), RTP, RTCP


네트워크 계층(인터넷 계층)

네트워크 상에서 패킷(전송하는 데이터의 최소 단위)의 이동을 다룸

컴퓨터가 서로 정보를 주고받을 수 있게 해주는 계층
-> 네트워크 계층에서는 주로 인터넷 프로토콜(IP)이 제공

IP란 인터넷에 연결된 컴퓨터들이 정보를 주고받을 수 있게 해주는 프로토콜
-> ex) IP는 컴퓨터가 서로 정보를 주고 받을 수 있도록, IP를 기반으로 정보를 전송

IP는 전송 중에도 정보가 손실되거나 순서가 바뀌지 않도록 해주는 기능 X
-> 정확성과 신뢰성이 저하될 수 있다

네트워크상 최종 목적지까지 정확하게 연결되도록 연결성 제공

단말을 구분하기 위해 논리적 주소(Logical Address) IP를 할당
-> 출발지와 목적지의 논리적 주소가 담겨있는 IP datagram이라는 패킷으로 데이터 변경
-> 데이터 전송을 위한 주소 지정

라우팅 기능 처리

패킷 단위 : 세그먼트를 목적지까지 전송하기 위해 시작 주소와 목적지의 논리적 주소를 붙인 단위( 데이타 + IP Header )

ex) IP,ARP,ICMP, RARP, OSPF


링크 계층(네트워크 접근 계층)

주로 전기적 접속(Ethernet)과 전자적 접속(Wi-Fi)등의 기술이 제공

데이터 단위 : 프레임

전송 주소 : MAC

물리적으로 데이터가 네트워크를 통해 어떻게 전송되는지 정의

논리 주소(IP)가 아닌 물리주소(ex: MAC(Media Access Control Address) 주소)를 참조해 장비간 전송

MAC 주소란 컴퓨터의 하드웨어 주소

에러 검출 및 패킷의 프레임화 담당

프레임 단위 데이터 구성
-> 최종적으로 데이터 전송을 하기 전 해킷헤더에 MAC주소와 오류 검출을 위한 부분을 첨부

ex) Eternet,PPP, Token Ring


TCP/IP 통신 흐름

TCP/IP로 통신할 시 계층을 순차적으로 거쳐 상대와 통신

송신하는 측은 애플리케이션 계층에서 부터 내려가고, 수신하는 측은 애플리케이션 계층으로 올라감

예시)

송신측 클라이언트의 애플리케이션 계층(HTTP)에서 어느 웹 페이지를 보고 싶다는 HTTP 리퀘스트를 보냄
-> 이때 전송 계층(TCP)에서는 애플리케이션 계층에서 받은 데이터(HTTP 메세지)를 통신하기 쉽게 조각내어(Segment) 안내 번호와 포트 번호를 붙여 네트워크 계층에 전달
-> 네트워크 계층(IP)에서는 수신지 MAC 주소를 추가해서 링크 계층에 전달
-> 네트워크를 통해 송신할 준비 완료

수신 측 서버에서는 링크 계층에서 데이터를 받아들여 순서대로 위의 계층에 전달하여 애플리케이션 계층에 전달
-> 애플리케이션 계층에 도달하게 되면 수신측에서 클라이언트가 발신했던 HTTP 리퀘스트 내용을 받을 수 있음

일반적으로, 수신지 MAC 주소는 패킷의 헤더에 포함되어 전송
-> 네트워크 계층은 수신지 MAC 주소를 추가해서 전달해주는 역할

각 계층을 거칠 땐 헤더라고 불려지는 해당 계층마다 해당 계층에 필요한 정보를 추가함
-> 수신측에선 각 계층을 거칠때마다 해당 계층에서 사용한 헤더를 제거
-> 이렇게 정보를 감싸는 것이 캡슐화


요약 정리

프로토콜 : 서로 다른 하드웨어와 운영체제를 가진 기기끼리 통신하기 위한 규칙
-> 인터넷과 관련된 프로토콜을 모은 것이 TCP/IP

하이퍼 텍스트 : 하이퍼링크를 통해 사용자가 한 문서에서 다른 문서로 이동할 수 있도록 해주는 초월적인 문서

네트워크 : 컴퓨터와 같은 장치들이 서로 연결되어 정보를 주고받을 수 있도록 한 시스템입니다

인터넷 : 컴퓨터가 서로 연결되어 정보를 주고받을 수 있는 전 세계적 규모의 네트워크 시스템입니다

HTTP: 웹 서비스를 제공하기 위한 응용 계층의 프로토콜로서, 웹 브라우저가 리퀘스트를 보내고 웹서버가 이에 대한 응답을 내려줄 수 있도록 해주는 역할을 합니다

TCP/IP : 두 호스트가 교환하는 데이터와 승인 메세지의 형식을 정의하여, 서버와 클라이언트간의 데이터를 신뢰성있게 전달하기 위해 만들어진 규약입니다

애플리케이션 계층: 응용 프로그램이 인터넷을 이용해 서로 데이터를 주고받을 수 있도록 해주는 프로토콜입니다(Data/message)

전송 계층: 통신 노드 간의 연결 제어 및 자료 송수신을 담당하고, 응용 계층에서 전송하는 데이터를 전송할 때, 전송 정확성과 신뢰성을 보장하기 위해 제공하는 계층입니다.(segment, port 번호가 사용됨 ex) 웹서버에 접속할때 사용하는 포트 번호 80, 이메일 서버 25번)
-> 이 처럼 응용 계층의 어플리케이션은 요청한 서비스가 어떤 포트에 연결되어 있는지 알아야 함

포트 번호 : 응용 계층의 어플리케이션이 서버 컴퓨터에 접속할때 사용되는 주소
-> 응용 계층의 어플리케이션은 특정 포트 번호에 연결되어 있음

인터넷(네트워크) 계층 : IP를 기반으로 네트워크 상 최종 목적지 까지 정확하게 연결되도록 연결성을 제공하는 계층(패킷 단위 : 세그먼트를 목적지까지 전송하기 위해 시작 주소와 목적지의 논리적 주소를 붙인 단위)
-> 단말을 구분하기 위해 논리적 주소인 IP를 할당

네트워크 접근 계층: 물리적으로 데이터가 네트워크를 통해 어떻게 전송되는지 정의하는 계층으로, IP와 같은 논리적 주소가 아닌 MAC과 같은 물리적 주소를 바탕으로 장비간 전송을 가능하게 함 ( 프레임, MAC)

profile
Journey for Backend Developer

0개의 댓글

관련 채용 정보