김영한 교수님의 HTTP 웹 기본 지식을 보고 정리한 노트이다. 절대 공유 및 배포 금지.
https://github.com/jjj5306/HTTP-web-basic
컴퓨터간의 통신이 필요할 때 매우 먼 거리도 인터넷을 이용해서 통신을 한다. 이 인터넷은 매우 복잡하게 구성되어 인공위성, 해저 케이블 등 무수한 노드를 거치게 된다. 이러한 과정에서 규칙이 필요하다. 그 규칙을 IP, 인터넷 프로토콜이라 부른다.
IP는 IP 주소에 데이터를 전달할 수 있도록 정한 규칙이다. 데이터를 그냥 보내는게 아니라 패킷이라는 단위로 전달한다. IP 패킷에서는 당연하게도 출발 주소와 도착 주소가 포함된다.
비 연결성 : 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷을 전송한다.
비 신뢰성 : 중간에 패킷이 사라지거나 순서대로 오지 않을 수 있다.
패킷을 보낼 때 노드를 거치는데, 이 노드들도 일종의 서버이다. 서버가 중간에 꺼진다거나 하면 패킷이 소실될 수 있다.
또, 패킷의 용량이 크면 임의로 끊어서 전송하는데 쪼개진 패킷들이 항상 같은 경로를 지나지는 않는다. 따라서 무수히 많은 노드를 서로 다른 경로로 지나다보면 패킷의 순서가 섞일 수 있다.
프로그램 구분 : 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이라면 구분할 수 없다. 유튜브를 보면서 게임을 한다거나 하면 프로그램을 구분할지 정해야 한다.
애플리케이션 계층 | HTTP, FTP | 최종 사용자와 상호 작용하는 응용프로그램에 서비스 제공 |
---|---|---|
전송 계층 | TCP, UDP | 데이터의 신뢰성과 흐름 제어 |
인터넷 계층 | IP | IP 주소를 사용하여 패킷을 목적지까지 전달 |
네트워크 인터페이스 계층 | 램카드 등 | 물리적인 하드웨어와 네트워크 매체와의 통신을 다룸 |