IP(Internet Protocol)
네트워크에서 장치를 식별하는 데 사용되는 고유한 숫자
IP는 인터넷 프로토콜 역할을 수행한다.
프토로콜이란
컴퓨터 내부에서, 또는 컴퓨터 사이에서 데이터의 교환 방식을 정의하는 규칙 체계입니다. 기기 간 통신은 교환되는 데이터의 형식에 대해 상호 합의를 요구합니다. 이런 형식을 정의하는 규칙의 집합을 프로토콜이라고 합니다.즉 통신 규약 및 약속이다.
- 지정한 IP 주소에 데이터 전달
- 패킷(Packet)이라는 통신 단위로 데이터 전달
IP 프로토콜의 한계
비연결성
- 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송
- 패킷을 보내는 상대방이 패킷을 받을 수 없는 상태지만 패킷을 전송
비신뢰성
- 중간에 패킷이 사라지거나 패킷의 순서를 보장하기 힘듬
패킷 순서를 보장할 수 없는 이유
- 패킷이 용량이 되게 큰 경우 대략적으로 1500byte정도로 끊어서 보낸다. 그럼 패킷이 여러 개가 되는 경우 노드의 길이 다를 수도 있다. 그렇게 되면 먼저 보내야 되는 패킷이 늦게 도착할 수도 있다.
TCP, UDP
같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이라면 문제가 발생한다 이러한 이유 때문에 TCP, UDP통신이 생겨났다.
TCP(전송 제어 프로토콜)의 특징
- 연결지향 - TCP 3 way handshake
- 클라이언트에서 서버로 연결하도록 시도한다.(SYN)
- 서버에 연결할 수 있어 라는 메세지**(ACK)를 보내면서 서버에서 클라이언트가 연결을 시도한다.(SYN)**
- 서버에서 클라이언트가 연결되면서**(ACK)** 보내고 싶은 데이터도 함계 전송한다.
- 데이터 전달 보증( 클라이언트가 보낸 데이터 전송이 완료되면 서버에서 데이터를 잘 받았다고 응답해준다. )
- 순서 보장
이게 가능한 이유는 TCP안에는 전송 제어 정보, 순서 정보, 검증 정보가 포함되어 있기 때문에 가능하다.
UDP( User Datagram Protocol )
TCP와 반대로 기능이 거의 없다. 보안과 신뢰성보다 전송 속도와 효율성이 더 중요한 경우 데이터를 전송하기 위해 사용되는 프로토콜이다.
UDP( User Datagram Protocol ) 특징
- PORT와 체크섬정도만 추가된다
- TCP처럼 신뢰성과 안정성이 보장되지 않지만 전송 속도와 효율성이 중요할 시 유용하게 사용할 수 있다
PORT
위키 백과에서 port의 정의는 '네트워크 서비스나 특정 프로세스를 식별하는 논리 단위이다'라고 정의된다 조금 풀어서 이야기하면 평소에 우리가 컴퓨터로 넷플릭스를 볼 때 우리 눈에 보이는 네크워크 접속 말고도 백그라운드에서 돌아가는 수 많은 프로세스들이 수시로 네트워크 연결되어 통신을 한다.
그런데 내 컴퓨터의 물리적인 IP는 분명 하나인데 어떻게 여러 개의 프로세스들이 동시 다발적으로 네트워크에 접속하여 데이터를 주고 받을 수 있는 이유는 바로 PORT때문이다.
즉 같은 IP내에서 프로세스를 구분하는 구분하는 역활을 해준다.
IP와 PORT를 비유하자면
IP가 아파트(pc) PORT는 몇동 몇호인지 구분해주는 것으로 비유할 수 있다
DNS 도메인 네임 시스템(Domain Name System)
도메인은 IP를 대신하는 주소다. 네트워크상에서 IP가 모종의 이유로 변경될 수 있다. 이때 클라이언트가 서버 IP가 변경되는 것을 항상 알 수 없기 때문에 IP대문 DNS서버에 등록된 도메인 이름을 사용한다.
참조: 모든 개발자를 위한 HTTP 웹 기본 지식 - 김영한
'HTTP' 카테고리의 다른 글
[HTTP] HTTP Header - 개념, 표현 헤더, 협상 (0) | 2024.03.13 |
---|---|
[HTTP] 상태 코드 - 상태 코드는 왜 필요할까? 및 종류 (0) | 2024.03.12 |
[HTTP] 웹 브라우저 요청 흐름 (0) | 2024.03.12 |
HTTP 기본 개념- Stateful, Stateless, 비 연결성, 지속 연결 (1) | 2024.03.12 |
HTTP 메서드의 속성 (0) | 2024.03.12 |