내가 인터넷을 통해 정보를 원하는 곳으로 전달하고자 할 경우, 도착지를 알아야 한다.
나의 주소와 상대의 주소는 어떻게 나타낼 수 있을까?
이때 PC마다의 주소를 지정할 수 있도록 한게 IP 체계이다.
PC마다 지정된 IP 주소가 있기 때문에 우리는 목적지의 IP 주소로 정보를 보낼 수 있다.
HTTP 통신시에는 패킷(Packet)이라는 통신 단위를 사용하는데 간략하게 그림으로 나타내면 아래와 같다.
IP 패킷에는 출발지 IP, 목적지 IP와 같은 수많은 정보들로 이루어져 있다.
IP와 함께 사용하는 PORT 주소는 뭘까?
https://javacoding.tistory.com/163
내가 100.100.100.1 에서 특정 웹 서버인 200.200.200.2로 정보를 보낸다고 할때
패킷안에 출발지와 목적지에 대한 정보가 있기 때문에 노드들은 전달해줄 수 있는 다음 노드에게 패킷을 전달하고 여러 노드를 거쳐 목적지까지 정보가 전송된다.
실제로 우리가 웹 사이트에 접속하거나 API 요청을 할때 IP 주소로 요청을 하는 경우는 드물다. IP 프로토콜의 한계가 있기 때문인데,
IP 전송 방식의 특징을 살펴보면 다음과 같다.
첫 번째는 비연결성이다.
패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷을 목적지까지 전달한다. 목적지 주소가 잘못되어도 목적지까지 정보를 전달하는 것이다. 이런 경우에 목적지에서는 데이터를 전달 받지 못하게 됩니다.
두 번째는 비신뢰성이다.
비신뢰성이란 송신자가 전송한 패킷의 손상여부를 송신자와 수신자가 알 수 없으며 패킷 전달 순서가 보장되지 않는다는 것을 의미합니다.
비연결성은 서로 연결되지 않은 송신자와 수신자간의 데이터를 전달하는 특징이며 비신뢰성은 IP 프로토콜이 전송하는 정보가 정확하게 전달되었는지 확인하지 않는 것이다.
따라서 신뢰성있는 통신을 하기 위해서는 상위 레이어의 TCP와 같은 프로토콜을 활용해야 한다.
https://javacoding.tistory.com/162
참고 강의 : https://www.inflearn.com/course/http-웹-네트워크
'IT > Web' 카테고리의 다른 글
JAVA HttpClient와 CloseableHttpClient 차이점 (0) | 2023.02.03 |
---|---|
PORT 포트번호란 (0) | 2022.08.11 |
TCP란? (0) | 2022.08.10 |
[Springboot/Gradle] JAVA SMTP로 비밀번호 찾기 메일 보내기(NAVER) (0) | 2021.01.03 |
@PostMapping과 @PutMapping의 차이 (0) | 2020.10.15 |