2023. 6. 11. 15:24ㆍ네트워크
ip란?
internet protocol의 약자이다.
그렇다면 protocol은 무엇인가?
통신 프로토콜 또는 통신 규약은 컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고 받는 양식과 규칙의 체계이다.
즉 통신 규약 및 약속이다.
즉 ip는 인터넷 상의 통신 규약을 의미한다.

클라이언트에서 서버로 전달될 때는 인터넷 상의 수많은 노드들을 거쳐서 전달된다. 하지만 위에 사진으로만 봤을 때는 어디서 어디로 보내는지 전혀 알 수가 없다.

데이터를 보내기 위해서는 출발지의 주소와 목적지의 주소가 필요하다. 이러한 문제점을 해결하기 위해 ip를 사용한다.
ip를 사용하면 출발지 즉 클라이언트의 ip 주소와 목적지 즉 서버의 ip 주소를 부여하므로 어디로 데이터를 보내야 하는지 알 수가 있다.
ip의 역할은
1. 지정한 ip 주소로 데이터를 보내는 역할
2. 패킷이라는 통신 단위로 전달하는 역할
ip 패킷에는 출발지 ip, 목적지 ip, 데이터 등이 들어 있습니다.


위의 그림은 클라이언트에서 서버로 패킷이 전달되고 서버에서 클라이언트로 패킷을 전달하는 과정이다.
이동 경로는 다를 경우도 있다.


ip 패킷에 서버가 어떤 상태인지 정보가 없다.

패킷이 전달되는 과정에서 서버에 문제가 생겨 패킷이 소실될 수도 있다.

패킷이 전달을 할 때 도착 순서가 보장되어 있지 않기 때문에 순서 문제가 발생할 수 있다.
이러한 문제를 해결하기 위해 tcp를 사용할 수 있다.
tcp란?
전송 제어 프로토콜(Transmission Control Protocol)이다.

tcp는 ip패킷 안에 tcp 세그먼트 넣는 방식으로 사용된다. tcp를 사용하면 ip를 사용해서 발생했던 문제를 해결할 수 있다.

3 way handshake는 어떤식으로 진행할까?

먼저 클라이언트에서 서버로 syn을 보내고 서버에서 문제가 없으면 syn + ack을 클라이언트로 보내준다.
이 과정에서 클라이언트는 데이터를 전송해도 문제가 없다는 것을 확인한다.
클라이언트에서 ack을 보내면서 데이터 전송을 하는 방식이다.

위에서의 클라이언트에서 syn을 보내고 서버에서 syn + ack을 보내는 과정에서 데이터 전달이 보증된다.

순서가 잘못된 경우 3 way handshake를 처음부터 다시 실행한다.

udp는 tcp와 달리 기능이 많지는 않다. 따라서 사용자가 udp에 기능을 추가하여 만들수 있다는 장점이 있다. 실제로 http3.0버전에서 udp를 많이 활용하는 것을 알 수 있다.

같은 ip 내에서 작업을 할 때 프로세스 별로 구분해주기 위해 port를 사용한다.
비유를 하자면 ip는 아파트 port는 동, 호수를 말한다고 생각하면 이해하기 좋다.

우리가 검색을 할 때 ip주소를 이용해서 검색을 하지 않는다. 예를 들어 네이버를 검색한다고 하면 https://www.naver.com/ 이런식으로 검색한다. 이런식으로 도메인명을 통해 검색을 할 수 있도록 해주는 것이 dns이다.
dns는 간단하게 전화번호부라고 이해하면 쉽다.

dns 서버에 도메인 명과 ip를 주소를 저장해놓고 클라이언트가 도메인 명을 통해 검색을 하면 dns 서버에서 도메인명을 이용해 ip주소를 클라이언트에 응답을 주고 ip주소를 이용해 서버에 접속한다.
dns를 사용함으로써 복잡한 ip주소를 외워야 할 필요도 없고 ip주소가 변경되었을 경우에도 도메인명만 안다면 접속할 수 있다.
'네트워크' 카테고리의 다른 글
| 캐시와 조건부 요청 정리 (0) | 2023.06.19 |
|---|---|
| postman을 통한 http 메시지 다루기 (0) | 2023.06.19 |
| http 기본 (0) | 2023.06.12 |
| uri와 웹 브라우저 흐름 정리 (0) | 2023.06.11 |