2022. 3. 3. 01:55ㆍ컴퓨터 공학/네트워크
컴퓨터 전공이 아니어도 IP라는 말을 우리는 자주 사용한다. (아닌가?)
그럼에도 우리는 IP가 정확하게 뭔지 모르고 사용할 때가 많다.
그런 의미에서 우리는 오늘 IP에 대해서 알아보려고 한다.
🏴 IP(internet protocol), 가까운 듯 먼 그대
내 컴퓨터와 내 친구 컴퓨터간 통신을 하고 싶다.
그럼 이 두 컴퓨터는 어떻게 통신할 수 있을까?
이 때 사용하는 것이 바로 IP 주소이다.
통신에는 송신자와 수신자가 필요하고, 이 송/수신자 모두 IP 주소를 가지고 있어야 통신이 가능하다.
그럼 IP는 어디다 쓰냐, 바로 IP주소에 데이터 전달의 역할을 한다.
이 데이터는 패킷(Packet)이라는 통신 단위로 전달한다.
그럼 이 통신 단위, 패킷에는 뭐가 들어갈까?
여기에 바로 출발지의 IP, 목적지의 IP, 전송 데이터 등등이 들어간다.
이제 이 데이터를 전송할 차례이다.
어떻게 전송할까?
간단하게 말하면 이 패킷을 인터넷 세상에 던진다.(진짜로)
그러면 각 인터넷의 노드들이 패킷 정보를 읽어서 서버의 목적지에 전달해준다.(진짜라니까)
🏴 IP 프로토콜의 한계
뭔가 개쩌는거 같은 IP도 한계가 있다.
첫 번째로 비연결성이다.
비연결성은 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷을 전송한다는 것이다.
그러니까 실제 상황을 비유하자면 이미 폐업한지 오래 된 삼겹살 식당에
'삼겹살은 거기지' 하면서 찾아갔다가 발돌리는 격이다.
혹은 미용실 문을 열었겠지 OR 예약 손님이 없겠지 하면서 가는 것과 비슷하다.
(난데?)
두 번째는 비신뢰성이다.
좀 치명적인 문제인데, 인터넷 세상에 던진 패킷이 갑자기 사라지거나,
보낸 패킷이 순서대로 도착하지 않는 문제가 생길 수 있다.
이러한 문제는 주로 용량이 큰 데이터에서 발생한다.
보통 메시지가 1500byte를 넘으면, 한번에 보내기 부담스러워서 이를 여러개로 나눈다.
이때 나눠진 메시지가 순서대로 도착하지 않는 문제가 발생할 수 있다는 것이다.
간단히 설명하자면, Hello World라는 응답을 받아야 하는데, World Hello를 받는 것과 같다.
단순 처리라면 사소한 문제 쯤으로 여길 수 있겠지만, 자동화처리 시스템의 경우 엄청난 문제를 불러올 수 있다.
마지막으로 프로그램 구분 문제가 있다.
같은 IP를 사용하는 서버에서 통신하는 응용프로그램이 두개 이상이라면?
얘네를 어떻게 구분할 것인가?
🏴 그래서...
위에서 IP는 패킷이란 단위를 가지고 목적지에 도달해서 데이터를 전송하고, 다시 상태를 응답받는 형태라는 걸 알았다.
그리고 비연결성, 비신뢰성, 프로그램 구분 문제 등을 안고 있다는 것도 알아봤다.
그럼 이 문제들을 어떻게 해결할 수 있었을까?
이를 알려면 TCP/UDP 에 대해서 공부해야한다.
다음시간에 이에 대해서 알아보자.
'컴퓨터 공학 > 네트워크' 카테고리의 다른 글
(네트워크) gRPC로 가는길(1) / HTTP의 역사(1.0, 1.1, 2.0) (0) | 2023.02.26 |
---|---|
(네트워크) 간단한 TCP의 특징과 역사 (0) | 2022.05.02 |
(네트워크) UDP에 관한 짧은 지식 (0) | 2022.04.21 |
TCP가 뭘까? (0) | 2022.03.05 |