<computer_science>/네트워크 Network

[파편조각 - HTTP 웹 기본 지식] 인터넷 네트워크

Rizingblare 2023. 9. 1. 16:33

김영한 강의

-

-

인터넷 통신

- 인터넷에서 컴퓨터 둘은 어떻게 통신할까?

클라이언트 컴퓨터와 서버 컴퓨터 두 대가 바로 옆에 붙어있다면

물리적으로 케이블을 연결하여 "Hello World"와 같은 데이터를 바로 주고 받으면 될 것.

 

하지만 통신이 필요한 컴퓨터 간의 거리가 매우 멀 경우,

예를 들어 나는 한국인데 데이터를 미국이나 영국까지 보내야 할 경우에는

직접 케이블을 연결시켜야겠다는 엄두조차 못낼 것이다.

 

이런 경우 우리는

인터넷 망을 통해서 메세지를 보내야한다.

 

이 경우는 위의 경우처럼 그렇게 단순하지 않다.

수많은 중간 노드 서버들을 거쳐서 데이터를 목적지까지 안전하게 보내야한다.

 

이러한 수많은 복잡한 상황을 잘 헤쳐나가도록 하기 위한 규칙이

바로 인터넷 프로토콜(IP, Internet Protocol)이다.

 

 

- IP (인터넷 프로토콜)

복잡한 인터넷 망을 통해 데이터를 보내기 위해선

위에서처럼 전달하고자 하는 내용만 덜렁 보낼 수는 없다.

 

이외에도 최소한의 규칙 같은 것이 필요하다.

 

여기서 규칙이란

군대에서 07시 30분이 되면 기상하며

주머니에 손을 넣고 걸으면 안 된다는 등의 규칙과는 의미가 사뭇 다르다.

위의 것들은 규칙이라기 보다는 제약사향에 더 가깝다. 

규칙보다는 규약이라는 단어가 원래 의미에 더 가까운 듯 하다.

우리가 편지를 보낼 때도 규약이 존재한다

우표를 사서 붙이고, 받을 사람의 주소를 적고, 보내는 사람의 주소를 쓰는 등.

 

그 중에 하나가 바로 IP 주소를 부여하는 것이다.

우선, 메세지를 보낼 서버 컴퓨터의 IP 주소가 있어야 하며,

클라이언트인 본인도 IP 주소를 부여받아야 할 것이다.

 

따라서,

IP 인터넷 프로토콜의 역할은

지정한 IP Address에서 데이터를 전달하며

패킷Packet이라는 통신 단위로 데이터를 전달하는 것.

 

IP 패킷이란?

출발지 IP와, 목적지 IP, 이외 기타 등등과

전송하고자 하는 데이터가 담긴 통신 단위이다.

 

즉,

우리가 인터넷 통신을 통해 "Hello World"라는 메시지를 보내고 싶다면

해당 메시지를 그대로 보내면 되는 것이 아니라,

앞서말한 출발지 IP, 목적지 IP와 같은 정보를 담은

패킷 헤더와 함께 보내야한다.

 

그렇게 인터넷 망에 던지면 중간 노드 컴퓨터들이

패킷을 읽고 해당 목적지로 보낼 수 있는 컴퓨터로 데이터를 이동시킨다.

그렇게 주고받다보면 결국 목적지 IP인 서버 컴퓨터에 도달하게 될 것.

 

하지만 !!! HOWEVER !!

 

이러한 방식, IP 주소를 부여하고 찾아가는 이 방식,

IP 프로토콜 만으로는 한계가 있다 !!

 

(1) 비연결성 - 패킷을 받을 대상이 없거나, 서비스 불능 상태여도 패킷 전송

-> 컴퓨터가 꺼져있어도 !! 편지를 보내려는데 그 친구가 그곳에 살지 않는 상황

 

(2) 비신뢰성 - 패킷이 중간에 사라진다거나, 패킷이 보낸 순서대로 안 올 수도 있음

-> 중간 노드 컴퓨터가 꺼져버린다거나, 통신선이 끊겨도 아무도 모름

-> 데이터가 길어서 끊어 나눠서 패킷을 보낸다면? 서로 다른 노드를 타고 뒤에 패킷이 더 빨리 도착할 수 도 있삼 

 

(3) 프로그램 구분 - 같은 IP를 사용하는 서버에서 통신 중인 여러 애플리케이션을 구분해낼 방법이 없다.

-> 같은 IP 컴퓨터에서 통신을 위해 하나의 프로그램만 사용하고 있으리란 보장이 없다

 

 

이와 같은 문제의 해결을 돕는 프로토콜이 바로 !!

그 유명한 TCP/UDP 프로토콜 이다.

 

TCP 프로토콜