육식하는야채의 개발일지
article thumbnail
Published 2024. 3. 11. 22:32
인터넷 네트워크 WEB

IP의 역할

우리가 흔히 말하는 IP는 인터넷프로토콜의 약자이다.

인터넷프로토콜은 말 그대로 인터넷의 규칙이라고 보면 된다.

ip에는 출발지 ip와 도착지 ip가 있는데 이것을 통해서 데이터를 송수신하는 것이다.

그래서 지정한 ip주소에 데이터를 전달할 수 있다.

데이터를 패킷이라는 통신 단위(택배박스)에 나눠담아 전달한다.

ip프로토콜의 한계

1. 비연결성

패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷을 전송한다.

클라이언트가 송수신하는 서버가 패킷을 받을 수 있는 상태인지를 모른다.

 

2. 비신뢰성

중간에 패킷이 사라진다면? - 케이블이 끊어지거나...

패킷이 순서대로 오지 않는다면? - 원래 hello world로 와야하는데 world hello 순서대로오면 전혀 다른 뜻으로 전달된다.

ip프로토콜은 이 두 문제가 해결을 할 수 없다.

 

3. 프로그램 구분

같은 ip를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면 구분을 못한다.

컴퓨터에서 게임하고 영화보고 음악듣고 유튜브를 보면 이게 유튜브에서 오는 데이터인지 게임데이터인지를 구별을 못한다는 뜻

 

TCP/IP의 특징

위와 같은 문제를 해결해 주는 것이 TCP, UDP이다.

거의 대부분이 TCP를 사용하고 있다.

TCP의 특징은 신뢰할 수 있는 프로토콜이다. 왜냐하면 아래와 같이 연결을 확인한 후에 데이터를 보내기 때문이다.

 TCP 3 way handshake이 있는데 이는 아래와 같은 순서로 동작하면서 연결을 확인하고 데이터를 보낸다.

1. 클라이언트가 syn 신호를 보낸다.

2. 서버가 syn신호와 대답하는 ack신호를 보낸다.

3. 클라이언트가 ack신호를 보내서 연결을 한다.

4. 만약 ack신호가 없으면 연결이 안되어있다고 해서 메시지를 보내지 않는다.

5. 문제가 없으면 데이터를 보낸다.

⭐️ 다만 물리적으로 연결이 된 것이 아니라 가상으로 연결된 것이다.

도중에 수 많은 노드가 있지만 그 노드하고 연결이 되어있는지는 모른다.

그렇기 때문에 그냥 연결된건가보다 하고 연결

 

순서보장

패킷이 도착했을 때 순서대로 도착하지 않으면 다 버리고 잘못 온 순서부터 보내라고 한다.

 

프로토콜 계층

네트워크는 위의 그림과 같이 여러겹의 택배포장지로 포장하여 전송한다.

각각의 포장되는 포장지에는 역할이 담겨져 있다.

 

UDP특징

UDP는 TCP와 다르게 별 기능이 없다.

연결지향적이지도 않고 데이터 전달 보증을 하지도 순서보장도 하지 않지만 

단순하고 빠르다.

ip와 비슷하지만 여기에 port와 체크섬정도가 추가되어 ip보다는 낫다.

 

 

PORT란?

ip주소를 아파트단지 주소라고 한다면 port는 몇동 몇호라고 할 수 있다.

위에서 ip의 문제점 중에 하나인 프로그램 구분을 하기 위해 존재한다.

한번에 둘 이상을 연결해야 한다면?

게임과 화상통화, 유튜브를 보고있다면?

클라이언트가 한번에 여러개의 서버와 통신을 해야 한다.

이 때 이게 게임용 패킷인지 유튜브용인지를 확인하는 데 사용된다.

위에 TCP/IP 에서 출발지와 도착지PORT가 포함되어 있다.

포트는 같은 ip내에서 프로세스를 구분한다.

 

포트는 지정된 숫자가 있는 포트도 있고 할당을 해서 사용을 할 수도 있다.

DNS

ip주소는 숫자로 이루어져있어서 읽기가 매우 복잡하고 외우기가 너무 힘들다.

이러한 이유 때문에 등장한 것이 DNS이다.

도메인 네임 시스템이라고 불리는데 쉽게 말하자면 ip주소를 인간의 단어로 매칭시켜놓는 것이다.

우리가 www.naver.com을 주소창에 치면 DNS서버에 등록되어 있는 네이버 ip주소를 DNS서버에서 가져오는 것이다. 

 

DNS를 쓰면 좋은점은?

물론 외우기 어려운 ip주소를 외우지 않아도 되지만 만약 ip주소가 변경되어도

변경된 ip주소를 도메인과 연결만 해놓으면

우리는 변경된 ip주소를 외울 필요없이 똑같이 도메인을 치면 알아서 변경된 ip주소로 안내받을 수 있다는 장점이 있다.

'WEB' 카테고리의 다른 글

비 연결성(connectionless)  (0) 2024.03.18
상태유지(Stateful), 무상태(Stateless)  (0) 2024.03.18
URL와 웹 브라우저 요청 흐름  (0) 2024.03.12
profile

육식하는야채의 개발일지

@육식하는야채

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!