웹 브라우저는 웹 브라우저 주소 입력칸에 입력된 URL을 통해 웹 서버로부터 리소스라고 불리는 파일의 정보를 얻는다
-> 이때 서버에 요청을 보내는 브라우저 등을 클라이언트
클라이언트에서 서버까지 일련의 흐름을 결정하고 있는 것이 웹에서 HTTP(HyperText Transfer Protocol)
하이퍼 텍스트
란 하이퍼 링크를 나타낼 수 있는 텍스트
-> 즉 하이퍼링크를 통해 사용자가 한 문서에서 다른 문서로 이동
할 수 있도록 하는 초월적인 문서
프로토콜이란 일종의 약속 -> 웹은 HTTP라는 약속을 사용한 통신으로 이루어짐
멀리 떨어져 있는 동료 연구자와 지식을 공용할 수 있도록 시스템을 고안
-> 최초로 고안한 것은 여러 문서를 상호간에 관련 짓는 HyperText에 의해 상호간에 참조할 수 있는 WWW(World wide Web)의 기본 개념이 되는 것
WWW
: 인터넷에 연결된 사용자들이 서로의 정보를 공유할 수 있는 공간
-> 초기엔 하이퍼 텍스트를 열람할 수 있는 클라이언트 애플리케이션의 명칭
WWW를 구성하는 기술
문서 기술 언어 -> SGML을 베이스로 한 HTML(Hyper Text Markup Language)
문서 전송 프로토콜 -> HTTP 문서의 주소를 지정하는 방법으로 URL(Uniform Resource Locator)
등이 제안
인터넷을 포함해 일반적으로 사용하고 있는 네트워크는 TCP/IP
라는 프로토콜에 의해 움직임
-> HTTP 또한 그중 하나
애플리케이션 계층, 트랜스 포트 계층, 네트워크 계층(인터넷 계층), 네트워크 접근 계층(링크 계층)으로 나뉨
인터넷이 하나의 프로토콜로 되어있다면 어디선가 사양이 변경되었을 때 전체를 변경해야 함
-> 반면 계층화가 되어있으면 사양이 변경된 해당 계층만 바꾸면 됨
-> 또한 설계를 편하게 할 수 있음
-> 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로 통신할 시 계층을 순차적으로 거쳐 상대와 통신
송신하는 측은 애플리케이션 계층에서 부터 내려가고, 수신하는 측은 애플리케이션 계층으로 올라감
예시)
송신측 클라이언트
의 애플리케이션 계층(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)