모든 개발자를 위한 HTTP 웹 기본 지식 강의를 공부하고 정리한 글입니다.
IP(Internet Protocol)
- 인터넷에서 클라이언트와 서버가 통신하기 위해 존재하는 최소한의 규약
- IP는
패킷(Packet)
이라는 통신 단위로 지정한 IP주소에 데이터를 전달한다.
- IP패킷 정보는
출발지 IP
, 목적지 IP
, 전송 데이터
등으로 구성되어 있다.
- 즉, 전송 데이터와 함께 출발지 IP, 목적지 IP 등을 함께 묶어 패킷 단위로 만든 후 전달한다.
IP 프로토콜의 한계
- 비연결성
- 상대 컴퓨터가 꺼져 있어 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷을 그대로 전송한다.
- 비신뢰성
- 전송 중간에 패킷이 소실되거나 패킷이 순서대로 오지 않을 경우 문제가 발생한다.
- 프로그램 구분
- 하나의 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상인 경우 구분이 불가능하다.
인터넷 프로토콜 스택의 4계층
![](https://velog.velcdn.com/images/enjoy89/post/511e076a-1397-451e-bae8-e7cabb5e8727/image.png)
- 응용 계층(Application Layer) -
HTTP
, FTP
- TCP/UDP 기반의 응용 프로그램을 구현할 때 사용한다.
- 전송 계층(Transport Layer) -
TCP
, UDP
- 통신 노드 간의 연결을 제어하고, 신뢰성 있는 데이터 전송을 담당한다.
- 인터넷 계층(Internet Layer) -
IP
- 통신 노드 간의 IP패킷을 전송하는 기능과 라우팅 기능을 담당한다.
- 비연결 지향적이며 신뢰성이 없고 데이터 전송시 발생하는 문제점을 고려하지 않는다.
- 네트워크 액세스 계층(Network Access Layer)
- OSI 7계층의 물리 계층과 데이터 링크 계층에 해당한다.
- 실제 네트워크와 관련된 LAN 드라이버와 LAN 장비가 이에 속한다.
🔍 채팅 프로그램을 사용하여 메시지 전송시
-
프로그램이 메시지를 생성
-
메시지를 소켓 라이브러리를 통해 전달
-
메시지 데이터를 포함하는 TCP 정보를 생성
-
TCP 데이터를 포함하는 IP 패킷 생성
-
이더넷 프레임이 씌워져 랜카드를 통해 데이터가 전달
TCP/IP 패킷 정보
![](https://velog.velcdn.com/images/enjoy89/post/cb58aefe-3c34-4068-8ce9-063633cf63f7/image.png)
- IP 패킷 정보 안에 TCP 패킷 정보가 포함되어 있다. (이를 IP 패킷이 TCP 데이터를 감싸고 있다고 표현)
- 기존 IP 패킷 정보의 한계인 비신뢰성과 비연결성을 TCP 정보를 추가함으로써 한계를 극복한다.
TCP(Transmission Control Protocol) 특징
UDP(User Datagram Protocol) 특징
- 연결지향 X
- 데이터 전달 보증 X
- 순서 보장 X
- IP와 거의 유사하지만 Port 정보가 포함되어 있고 체크섬 정도 추가
- 애플리케이션에서 추가 작업이 필요
PORT
- 같은 IP 내에서 여러 애플리케이션을 사용할 때 이 중 어디에 데이터를 전송할지 구분하는데 사용
- IP는 목적지의 서버를 찾는 역할, PORT는 같은 IP 내의 목적지 애플리케이션(프로세스)을 찾는 역할이다.
- 0~65535: 할당 가능
- 0~1023: 잘 알려진 포트, 사용하지 않는 것을 추천
- FTP - 20,21
- TELNET - 23
- HTTP - 80
- HTTPS - 443
DSN(Domain Name System)
- IP는 중간에 변경될 수 있고 가독성이 떨어지므로 도메인 명을 IP 주소로 변환하여 사용한다.
- 전화번호부 개념
Reference
https://hahahoho5915.tistory.com/15?category=686226